Getting Started with Microsoft Sync Framework
What is Microsoft Sync Framework?
Microsoft Sync Framework is a synchronization
platform that enables collaboration and offline
access across multiple data stores. The framework
enables taking data offline by working against a
cached set of data. Then we can submit the
changes to a global database in a batch by using
the framework features, technologies and tools.
The Sync Framework helps to build a sync ecosystems that will be able to
integrate any application (web, win, mobile and etc) with any data from
any store using any protocol over any network by using
custom synchronization providers.
A Little About Microsoft Sync Framework Components
The Sync Framework was designed as a componentized and layered architecture
to allow us to use only what we need to enable sync scenarios. The framework is
divided into the following three main components:
- Core Sync Runtime. The runtime that include all the algorithms and
components which we can use in order to sync our application.
- Sync Provider Framework. The providers are software components that
represents a particular repository of information to be synchronized
(replica). We can write our own custom providers or use the providers that
were shipped in the framework.
- Domain-specific components. An infrastructure to enable rapid development
when using specific stores and protocols like SQL Server or NTFS for example.
How Does it Work in a Nutshell
The next image which is taken from PDC lecture –
TL30: Microsoft Sync Framework: Advances in v2 shows the main issues of how
Microsoft Sync Framework works:
What you can see is the sync flow. The sync providers sits on top of the
data store and represent the repository. They are used to enumerate the items
in a data store and to maintain synchronization metadata and the state of the data
store. When a synchronization is needed a synchronization session is constructed
and with it a sync orchestrator. The sync orchestrator will manage the
synchronization from the source data store to the destination data store.
The destination provider will send its knowledge set to the source provider.
The source provider will compare that knowledge with its change set and will
send the changes to the destination. The destination provider will make sure that
the changes are not conflicting its storage and then will merge them and update its
Built in Sync Services
The following sync services are currently available to use in the Sync Framework v1:
- Sync Services for ADO.NET.
A synchronization provider for synchronizing across databases using ADO.NET.
- Sync Services for File Systems.
A synchronization provider for synchronizing two file system locations.
- Sync Services for FeedSync.
A synchronization provider for synchronizing replicas by creating a FeedSync,
either in RSS or ATOM, which can then be subscribed and used by whoever need
The following resources will help you to start with the Sync Framework:
- Microsoft Sync Framework Developer Center
- Sync Framework Blog
- Microsoft Sync Framework v1.0 Download
- Microsoft Sync Framework Documentation Download
- Microsoft Sync Framework Samples
Lets sum up, in the post I introduced the Microsoft Sync Framework.
The Sync Framework is a rich synchronization platform which will be a very
useful tool for developers in the near future. I urge you to learn it today
and not to be left behind. In the future I’ll write more in the subject of
Microsoft Sync Framework.