From March 1993 through October 1994, I was consulting to the state of Washington, Department of Labor and Industries.  During this period I worked on a project to build the first Windows Client-Server application.  This project was used to prove out the Windows development environment, as compared to all other development done to date on the Mainframe.  The application was developed for auditors conducting audits on businesses throughout the State of Washington.  Auditors were located throughout the state, each with a laptop that was connected to the Banyon vines WAN (Wide Area Network) for updating the master database. When the auditors went out in the field to conduct an audit they needed to take company auditing data with them for updating on-site.

 

The application requirements included; mobile functionality, the need to share data with Microsoft Word for document generation, sharing data with Microsoft Excel for spreadsheet calculations, and connectivity to the central data store, which was a Sybase SQL database on a Unix O/S.  The application used a library check-in/check-out metaphor.  Prior to leaving the office, the auditor would check-out (mark the rows as locked) the audited companies data.  We chose Microsoft Access 1.0 (alpha) as the front end application because it was Windows based and allowed rapid development.  Access also allowed us to link to the Sybase database tables when connected to the WAN and copy the rows to the tables in the local Access database (mdb) when mobility was needed.  When reconnected to the WAN, the data was moved from the local tables into the Sybase database.  From the end users perspective the local versus remote application functionality was pretty seamless.  In fact, from a developer’s perspective all applications would work against the local database or the server database in a fairly seamless method.  This also allowed me the opportunity to do off-site coding for much of the application development life cycle.  We did have server side functionality in the form of stored procedures, triggers and some batch C/C++ code.

 

We used the Host (Word/Excel) extensibility functionality of their OM (object model), OLE and DDE for data and automation between Access, Word and Excel.  The application functionality was the same whether connected or disconnected.  By merely switching the link to local tables or attached tables, we had pretty seamless portability.  Ten years ago we thought we were pioneers (usually the guys with arrows in their backs) but little did we know, we were developing an application that followed what was to be known as a Smart Client application paradigm.