Getting Started with Microsoft Sync Framework

January 10, 2009

Getting Started with Microsoft Sync Framework

The post will introduce the Introduction to Microsoft Sync Framework
Microsoft Sync Framework which,
in my opinion, is going to be
one of the must know technologies
of the near future.

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:
How Synchronization Happens?

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:


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.

DotNetKicks Image
Add comment
facebook linkedin twitter email

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>