Mobile users
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.