Friday, October 17, 2008

SWFox: Retrofitting Client Server Access

I'm not much of a "live" blogger, but I thought I would post my raw notes from the first session I attended today; Retrofitting Client/Server access, by Toni Feltman. It was a good class, and one I attended in order to learn the obstacles Visual FoxPro developers face when moving to client/server, and how Advantage can better address these concerns. It was nice to see a handful of pain points mentioned when migrating to other servers that do not exist when using Advantage.

These are my raw notes and observations:

RETROFITING CLIENT SERVER
Toni M. Feltman - F1 Technologies
Roughly 28 attendees (20% of conf attendees)
---------------------------------
Why moving to C/S
- tables too large, heard this a lot at the booth, Rick mentioned we should to show Advantage using a 6 or 7 GB table during our vendor session to drive home the point that we don't have a table size limit.
- security
- performance

Picking datasource:
- mssql
- oracle
- Advantage - she mentioned is one of the easiest ways to convert to C/S
- db2, sybase, others

Talked about the overhead in getting server set up, "tuned", hiring a DBA, etc. Need quick demo on how easy Advantage is to install and how it self tunes. Also talk about lower cost of ownership because of this.

Moving the data:
- Moving the data isn't necessary with Advantage. Our upsize wizard simply creates an Advantage .add that matches the existing DBC, it doesn't modify or import the dbf tables.

Remote Data Access Methods:

- remote views: maybe not the best, but the easiest, which we have seen with customers porting to Advantage. Those with remote views have been able to port to Advantage very easily.
- USE statment now pulls entire table to the server. Very poor performance unless you filter the data/view.
- don't have to write update/insert, normal data movement still posts records
- little more difficult to make the connection path dynamic

- cursor adapters
- Toni's favorite way to get to remote data.
- have to manually call TableUpdate to post changes
- easy to make connection path dynamic

- sql passthrough
- easy to make connection path dynamic
- stored procedure calls
- still have to pick a data access technology to execute them, but you then put all business logic in the procedures, the VFP app doesn't execute UPDATE or INSERT statements, the procedures do.

Coverage Log - logs what forms, tables, etc are used. How often lines of code are hit, etc. Basically a coverage profiler. Built into VFP. Could be useful when troubleshooting or when identifying areas of app that need tuning or have data access code that needs to be modified.

Showed cool form usage log. Windows hook to an event for formShow. Keeps log of forms used by the application. Not as nice as a full usage of menu items, but this is a quick an easy approach to get a high-level overview of form usage.

Connection sharing is important. By default you don't get this. Need to save connection handle and reuse it if you don't want to be using a lot of connections or connecting/disconnecting all the time.

She stressed remote servers don't have the concept of EMPTY(), which can make dealing with NULL values and empty values a bit of a pain when migrating to client/server. Advantage does support the EMPTY expression, however.

No comments:

Post a Comment