I have an app that uses SQL Enterprise to store all data in 4 different DB's. I needed to build in the ability to work "offline" for my users. I accomplished this through Merge Replication to local SQL Express installs for everyone. This "Works" but feels like the sledge hammer approach.
For instance, I am replicating all 14000 people to every DB when any individual user may only EVER interact with a 100 or so. That's not even counting the fact that they would NEVER interact with more then 5 ish in between connections to the Central DB's.
What I am looking for is tips, pointers, and, maybe, a nice tutorial on Sync Framework 2(with Databases). First hand accounts on what worked for you and why would also be most welcome. I have yet to come across a clear and concise(not to mention current) tutorial for working with Sync Framework.
My specifics are MS SQL Server 2005 or 2008, any version. Any .Net version(3.5 or 4). The current data layer is all LinqToSQL. There are not any Sprocs currently in use.
My thoughts, so far, are to only sync each workers assigned caseloads and associated data. Ideally, we would go straight to a "Check In/Check Out" format where they select the members they plan to go visit and it then syncs the necessary data.
As a bonus, could someone tell me what this is referred to as? I come across "Occasionally Connected" all the time but that seems inaccurate. It would be more accurate to call them "Occasionally DIS-Connected", thoughts?
This is essentially called Distributed Computing.
In any such system that I've worked on, I've typically used a N-Tier Architecture to allow for occasional connecting of a client program to the database server on the back-end for CRUD operations. Any work that the client does is considered connection-less, as they do not interact with the server until they save their changes.
Using this kind of approach you should be able to make an application that allows them to connect for a moment to get some data, perform some work on the data and then propagate any changes (CRUD) to the server (database).
I would have to say that using Merge replication with Local Sql Express installs is for sure a sledge hammer approach. Don't feel too bad about it, we all do it from time to time :P.
EDIT
I have not used Sync Framework myself, but it seems nice. Check out the Sync Framework Developer Center for some more information on it.