We have what is likely a fairly typical scenario: an office with a Windows domain and an intranet where much of the work takes place, and field workers, who collect data in the field and come back to the office occasionally, but are not nearly always connected. All PCs are in a domain, including the field laptops (they use cached credentials when not in the office). We need to replicate data to the field laptops in such a way that each time they connect to the office intranet, they get refreshed. The data consists of two different things: simple reference files and some SQL CE databases. There seem to be so many possible solutions, but no perfect one. I'm sure we're not unique: how have other people solved this?
Some of the possible solutions we've pondered:
- Login script: no good if users don't log out/in.
- Icon on the desktop: requires user interaction.
- Microsoft System Center: overkill - seems like a sledge-hammer on a finishing nail (i.e. too much setup and maintenance).
- SQL replication: just for databases - won't help with other files.
- Azure Mobile Services: would require writing an application.
- A replication app like "Second Copy": requires too much setup and maintenance (individual configuration on each laptop), and is not event-driven.
- Custom app: too much work/will take too long.
There are probably a plethora of other options as well.
Whereas initially we only care about pushing data to the field laptops, an option to do a true synchronization would be preferable. Any thoughts/ideas/suggestions?
As an aside, since SQL CE is dead, we are considering moving this to a different store. Given the above, what would people recommend? Both SQL Express and SQL LocalDB seem like a large footprint for what we need. Essentially, the local database is just a cache. However, the software accessing the database needs to do so transparently, without knowing whether or not it is online/connected. Yes, this seems an ideal use of Azure Mobile Services, but 1) we want to host it ourselves (and setting up/maintaining the Azure services in-house feels like too much work), and 2) it would likely require too much of a retrofit for our older software.
Any help would be appreciated!
Thanks!
Brad.