The 3 major challenges we faced were:
- Not everyone works from a desk in an office.
- Not everyone has an Internet connection available all day long.
- Everyone needs to work all day long.
What was needed was a stable framework that allowed for online and offline use.
A system that could recover from connectivity issues. One that allowed for application
changes over time. Ohh, yeah, and one that was reasonably priced and thoroughly
tested.
After evaluating the level of effort to write custom code to do the job, we landed
on SQL Server 2005 Replication for Offline Mode.
The right tool for the job
Each offline user has a partial copy of the database on their local machine. They
work locally, and sync on demand (as well as on launch, on a timer, and on close.
Yeah, we're a little paranoid.) Conflicts are resolved at the server, and pushed
back to subscribers on the next sync. Schema changes are propagated during the sync
routine as well.
In online mode, we use .NET Remoting, a technology that allows code to run across
several machines. In our case, we use the CSLA Framework as the underlying base
classes for the business logic layer. CSLA provides CRUD routines, business rules,
and n-level undo essentially for free, along with several other features.
Although the application is technically still in development, we have dozens of
users around the globe gleefully using the V.1 build. (Ok, so they're not gleefully
using it, they're at work. But, they're not calling support with any complaints,
either.)
* Update: V.1 is now in production, and V.2 is under development. Updates include
improvements in the UI for Tablet PCs, the use of data compression to improve speed,
and several new dashboard-style reports.
Start building ROI:
Return on InteractiveTM