Synchronizing Data: Inside the Microsoft Sync Framework

Download this episode

Download Video


The Microsoft Sync Framework is a comprehensive synchronization platform that enables collaboration and offline scenarios for applications, services and devices. It supports any kind of data type and any kind of data store. The framework was designed to be transfer protocol independent and to allow the developers to map any kind of network topology.

Here, Software Developers Aaron Greene, Andrei Maksimenka and Niner intern Christian "LittleGuru" Liensberger sit down with me to dig into the details of the Sync Framework and explore the complexities of sync, generally. As usual, the conversation winds down many roads and it's a great discussion (yes, it's a tad long, but find some time. It's worth it...). It's always a pleasure to chat with the folks who write the platforms and frameworks we depend on to get our algorithms written in efficient ways. The Sync Framework enables several interesting scenarios, most of which have yet to be thought up.Thanks guys! 

Oh, and by the way, I hear that LittleGuru is doing a smashingly great job in his role as a PM for the Sync Framework team. Right on, LittleGuru! Go Niners! Smiley


Check out the Microsoft Sync Framework team blog. The team is very much engaged with developers who use our framework and monitor the forums very closely. Aaron and Andrei spend a good deal of time on the forums, just as many devs do in support of their products around the company.



Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • User profile image

      If I have two systems that need to sync data and have an intermittent link and I use this framework, can the system exchange data in real time when connected, or would they have to poll? 
    • User profile image

      The Sync Framework is data and protocol agnostic, therefore it's up to your implementation when to start a sync session. For example, your sync application can be written in such a way that once a connection between endpoints is detected, you can start sync session right away. From the Sync Framework's perspective, both providers are running in the same process on the same machine. A provider can be written to support remote processing over arbitrary protocol and transport. You can find Sync Framework samples at All information about Sync FX is available at

    • User profile image
      Thanks guys.

      1) Have never got a good answer why Mesh does not use Sync Framework as its api, instead of developing another one?

      2) Does SyncFx have ability to talk across NATs like Mesh does?  How does name rez work to devices over the net and connecting to them?  Is there a MS rendezvous point or something?  tia
    • User profile image
      cool Smiley i'll be checking this out

      the blog link doesnt seem to work btw :/
    • User profile image
      Ion Todirel
      nice, that pseudo-sequence diagram rocked

      way to go for asking about their background (where/when they started in what team etc.), we should do this in all videos Tongue Out nice video

      Sync Framework Blog
    • User profile image

      Very interesting post and nice discussion.
      I would also like to see where MS is going with all their Sync technologies, is there going to be some unified platform eventually?

      You could use SQL Server Merge replication for most of the scenarious, it is very flexible and out of the box, it works with mobile devices  Compact Edition and Express versions of SQL Server.  Deploying stored procedures and making changes is easy and fast, just put it on a publisher and all clients get it, depending on the rules. When disconnected it works locally, when connected, SQL server automatically detects connection and starts synchronizing and it takes little effort to configure and no need to learn new API, which could change several months from now.

      And there is Live Mesh for other things (like files), and I think Live Mesh team promised to open their APIs as well.

      The good thing about Sync Services is that you don't need SQL Server license for Database Publisher and you don't need to replicate to the cloud.

      Could you please point any other benefits, advantages, or disadvantages?


    • User profile image
      Hi  staceyw,

      1) Mesh has a slightly different requirements and therefore they use FeedSync as the default data and synchronization metadata representation format. The primary reason I believe was that Mesh wanted to use open and Web specific RSS/Atom-based format. That's what FeedSync is perfect for. This aligns well with the Sync FX which abstracts itself away from the protocol and data format business. For example, Sync FX supports interop with FeedSync (i.e. you can consume or produce a FeedSync RSS/Atom feed) and transforms Sync FX's sync metadata such as knowledge to/from FeedSync sync metadata.

      2) Sync FX is not any transport specific, therefore if sync providers choose to use NAT-friendly transport then yes.

    • User profile image
      Hi ivan_,

      Some existing MS sync technologies such as Mesh (FeedSync) and Sync FX are compatible on sync metadata level, therefore one can think of them as different ways to achieve the same goal. FeedSync is all about open Web standards such as RSS/Atom and Sync FX is a generic framework for building arbitrary sync solutions. I can't comment on SQL Server Merge replication now.

      For overview of benefits please refer to, particularly

    • User profile image
      Oh, I see, thanks for the explanation!
    • User profile image

      I need help with doing something like this... I have an application that runs on a WinCE device and which needs to sync files with a server that is running on a Windows OS. I have seen the applications that sync files on desktops running the Sync framework. My question is this...Is there a port of the File synchronization provider for WinCE that can be used via Compact Framework applications? If there isn't one then are there any other ways to achieve this?

    • User profile image

      Stop hack the program!!!

    • User profile image

      Stop hack the program!!!

    Comments closed

    Comments have been closed since this content was published more than 30 days ago, but if you'd like to send us feedback you can Contact Us.