Microsoft Sync Framework 2.0 Software Development Kit (SDK)

Select Language:
Microsoft Sync Framework is a comprehensive synchronization platform that enables collaboration and offline scenarios for applications, services, and devices. Using Microsoft Sync Framework, developers can build applications that synchronize data from any source using any protocol over any network.
  • Note:There are multiple files available for this download.Once you click on the "Download" button, you will be prompted to select the files you need.


    File Name:





    Date Published:


    File Size:

    23.3 MB

    46 KB

    25.4 MB

    23.7 MB

    35 KB

      Sync Framework 2.0 Overview
      Sync Framework 2.0 expands on the capabilities offered by Sync Framework 1.0:

      • Adds features that cater to new scenarios or scenarios that were difficult to support.

      • Reduces the amount of work required to develop providers.

      • Supports more data sources with new built-in providers.

      The major new features and improvements included in Sync Framework 2.0 are:

      In Core Components:
      • Simple Providers: Reduce the amount of work required to develop providers, especially when the data source has very few synchronization-related capabilities, such as change-tracking. The goal is to enable a developer to write a provider without having to become a synchronization expert. The majority of the code that is required for a simple provider is limited to that responsible for interacting with the data source. Simple providers support many complex synchronization scenarios, such as filtering, concurrency and constraint conflict handling, and anchor-based enumeration.

      • Flexible Filtering: Change unit filters and custom filters have been added to the custom provider components. These filters, in addition to the item filters from Sync Framework 1.0, enable you to filter your data in whatever way is most useful. Filter negotiation allows the source and destination providers to negotiate the filter used during the synchronization session. Change unit filters enable a provider to specify that, while the replica it serves stores all items in the synchronization scope, the replica stores a reduced representation of each item. For example, when an item is a contact a device might store only the name and phone number of the contact as compared to the complete contact stored on a PC. Custom filters enable you to define a filter in whatever way is most appropriate, including filters that allow an item to move into or out of the filter as the item data changes. For example, a media storage device stores only songs that are rated as three stars or better. When the rating on a song changes from four stars to two stars, the song moves out of the filter. Filter negotiation allows a destination provider to specify the filter to be used by the source provider during change enumeration; the source provider can accept or reject a filter. If a source provider does not support the requested filter then the destination provider can choose to receive all of the data and do the filtering itself.

      • Improved Conflict Handling: Additional conflict scenarios are supported, such as reporting constraint conflicts, managing logged conflicts, and resolving conflicts by using a last-writer-wins policy. Constraint conflicts are conflicts that violate constraints that are put on items or change units, such as the relationship of folders or the location of identically named data within a file system. Sync Framework includes components to help resolve constraint conflicts and apply the resolution to the destination replica. Conflict logging is enhanced by Sync Framework components that help manage the log, such as by removing obsolete conflicts. A last-writer-wins conflict resolution policy can be used to resolve concurrency conflicts (in which an item is updated by more than one replica) by keeping the most recently made change, regardless of where the change was made. Sync Framework supports this policy by enabling an application to retrieve the time a change was made on the source and destination replicas. The application can then compare the two times and apply the last change.

      • Data Conversion between Providers: In some scenarios, synchronization providers synchronize the same type of data (such as sales data), but the data format that each provider requires is different. To address this scenario, Sync Framework enables you to implement interfaces that convert data to the format that each provider requires. In addition to data conversion APIs that can be used for any type of custom provider, Sync Framework also includes conversion APIs specifically for the file synchronization provider.

      • Change Application Service: Increases the flexibility and usefulness of the change applier component of Sync Framework. By performing the same actions as the standard change applier, but in a more granular way, the change application service gives a destination provider the ability to use only the features that it requires.

      • Tracing: Enables you to trace the execution of several components, which is useful during application debugging. This download provides the .tmf files that can be used to view a trace, flush the logger, and format the binary trace file. For more information about how to trace Sync Framework execution, see “Tracing Sync Framework Components” in the documentation that installs with the Sync Framework SDK.

      In Database Providers:
      • New Database Providers (SQL Server and SQL Server Compact): Enable hub-and-spoke and peer-to-peer synchronization for SQL Server, SQL Server Express, and SQL Server Compact. Sync Framework automatically creates all of the commands that are required to communicate with each database. You do not have to write synchronization queries as you do with other providers. The providers support: flexible initialization options; batching of changes based on data size; and maintenance tasks, such as metadata cleanup and server database restore.

      • Robust Memory-Based Batching: Previous versions of Sync Framework and Sync Services for ADO.NET provided a way for developers to define their own batching logic but there were a lot of limitations, including significant complexity, excessive chattiness, out of memory issues, and restrictions on usage. Sync Framework 2.0 addresses all of these issues by providing a more complete and robust batching API. Developers no longer have to write batching logic themselves because Sync Framework divides changes into batches based on several properties in the API. Batches are now defined by memory consumption rather than the number of rows synchronized, which has eliminated out-of-memory issues for most common scenarios.

      • Provisioning and Management APIs: Provisioning and initialization activities that were previously exposed only through Visual Studio tooling have now been added to the database provider APIs. This includes the ability to provision an existing database by adding the change-tracking tables and triggers that are required by Sync Framework. It also includes the ability to start with an empty database, create the user schema, and provision that schema based on another server or client database that has already been provisioned.

      • Performance Improvements: The new database providers in this release have been thoroughly tested in large-scale scenarios in which a single server supports thousands of clients with hundreds of concurrent synchronization operations. This testing resulted in a large number of internal performance improvements that enable Sync Framework database providers to perform as well as other Microsoft technologies like Remote Data Access (RDA) while offering a wide range of capabilities that compete with end-to-end solutions like merge replication.

      For more information about new features, see “What's New in Sync Framework 2.0” in the documentation that installs with the Sync Framework SDK, or click the link: What's New in Sync Framework 2.0

      To download the Microsoft Sync Framework 2.0 redistributables and bootstrapper, rather than the SDK package, click on the link: Microsoft Sync Framework 2.0 Redistributable Package

  • Supported Operating System

    Windows 7, Windows Server 2003, Windows Server 2008, Windows Vista, Windows XP

    • Supported Operating Systems: Windows Server 2003 and R2; Windows Server 2008 and R2; Windows XP SP3; Windows Vista; Windows 7.

    • .NET Framework: Managed components require .NET Framework 2.0 SP1 or .NET Framework 3.x.

    • Note that SQL Server 2005 SP2 or greater is required when using the Sync Framework Database Providers.

    • Important: Please uninstall all prerelease versions of Sync Framework prior to installing this release version. This includes Sync Framework 2.0 CTP1 and Sync Framework 2.0 CTP2. Sync Framework 2.0 can be installed and will operate side-by-side with Sync Framework 1.0. Please ensure that you download and install the SDK appropriate for your system. For example, SyncSDK-v2.0-x86-ENU.msi includes the Sync Framework components for x86 machines.

    • Make sure you have the latest service pack and critical updates for the version of Windows that you are running. To find recent security updates, visit Windows Update.