Building online/offline synchronization capabilities with the Microsoft Sync Framework

Although many applications are being built today with Web based (ASP.NET and other) architectures in mind, there is still a major requirement/need in the industry for semi-connected applications. The bases of a semi-connect (often called occasionally connected) applications is that when you are connected to the network, your application works against a Enterprise Data Set/System (E.g., database, file system, email system, etc.) and when you disconnect you get a local copy of your work. Upon returning/reconnecting to the network, a synching process would be undertaken to make sure that your work gets reintegrated into the Enterprise data set.  One of the most famous instances of a occasionally connected application is Microsoft Outlook.  When you are connected to a network (LAN, WAN or over some wireless connection) Outlook allows you to work directly against the outlook store, where as when you are leaving (i.e, disconnected) you take whatever email, contacts, etc. that you have synchronized with your local (.PST file) Outlook mail store.  When you reconnect, Outlook will (automatically in most cases) reconnect and synchronize your local Outlook mail store with the Enterprise mail store.

image

With this in mind, Microsoft has undertaken building a common framework for developers to build semi/occasionally connected applications within .NET, so that we as developers do not have to "roll our own" version of a similar framework, with all of the architectural work, development and debugging required.

From the Microsoft site:

Microsoft Sync Framework is a comprehensive synchronization platform that enables collaboration and offline access for applications, services and devices. It features technologies and tools that enable roaming, sharing, and taking data offline. Using Microsoft Sync Framework, developers can build sync ecosystems that integrate any application, with any data from any store using any protocol over any network.

To read the overview about the framework, read: Introduction to the Microsoft Synch Framework Runtime (Click here to read)

Thus far Microsoft has released two parts of this overall framework:

Microsoft Sync Services for the File System

Microsoft Sync Framework is a comprehensive synchronization platform that enables collaboration and offline access for applications, services and devices. Sync Services for File Systems is one of the providers included out-of-the-box that enables synchronization of files between devices. This document will explain the File Systems provider and provide a basis of understanding to learn how to build new providers to synchronize new data stores.

To read about it and see code examples (Click here)

Microsoft Sync Services for ADO.NET

The ability to support mobile and remote workers is becoming more and more important for organizations every day. It is critical that organizations ensure users have access to the same information they have when they are in the office. This document explains how Sync Services for ADO.NET which is a part of the Microsoft Sync Framework (MSF) enables synchronization of information between database systems and how Sync Services for ADO.NET helps developers avoid many of the common issues associated with taking data offline.

To read about it and see code examples (Click here)

Downloads

  • Overview document about the Microsoft Sync Framework .PDF file (Click here)
  • Sync Services for ADO.NET v 2.0 CTP1 (Click here)
  • Microsoft Sync Services for ADO.NET Samples (Book online) (Click here)
  • Sync Services for File Systems Whitepaper (Click here)

~ Robert Shelton