As stated earlier one of the announcements in this year’s TechEd Europe keynote was the release of Microsoft Sync Framework. It’s
a comprehensive synchronization platform that enables collaboration and offline scenarios for applications, services and devices
(from “Using the Microsoft Sync Framework File Sync Services” – PDF available on MSDN)
Sounds great, but let’s have a look at in in detail. The framework itself provides a set of interfaces and methods for you to write your own implementations of replication providers. But the real strength lies in the providers that are available from Microsoft.
The first is the FileSync Provider. It allows a number of scenarios to sync changes between two file systems. It has a set of conflict handling, filtering mechanisms, preview state (what data would be synchronized) and extensive error handling. Scenarios such as offline folders, syncing USB drivers or simple two-way backups become very easy with this provider.
The second provider is probably the one you are likely to use most in a enterprise context. There is a cost when using this so-called ADO.net provider, which is that you must modify your database to incorporate versioning, client change auditing and so-called tombstone tables (deleted rows are stored here). The good news is I read somewhere (sorry for the missing source) that there are scripts or tools that will do that for you automatically. Once that’s done you can run a local and server copy of the database and run synchronization between them at very low cost of implementation.
I’m looking forward to taking a deeper look at what’s possible under the hood. Especially what changes between CTP1 and the announced release.