Microsoft Sync Framework (MSF) – FAQ

What is Microsoft Sync Framework?

Microsoft Sync Framework is a comprehensive synchronization platform enabling collaboration and offline access for applications, services and devices. Developers can build sync ecosystems that integrate any application, any data from any store using any protocol over any network. With Microsoft Sync Framework, developers can:

  • Easily build collaboration and offline capabilities into new and existing applications, services, and devices
  • Roam and share information in any data store, over any protocol, and in any network configuration
  • Leverage sync capabilities exposed from Microsoft assets and platforms to boost productivity and performance

When will Microsoft Sync Framework be available?

Microsoft Sync Framework 2.0 is currently available for download. Microsoft Sync Framework 1.0 is also included in SQL Server 2008 as well as Visual Studio 2008 SP1.

What languages are supported by Microsoft Sync Framework?

Currently, Chinese (Simplified), Chinese (Hong Kong SAR), English, French, German, Italian, Japanese (Japan), Korean, Portuguese (Brazil), Russian, Spanish (Traditional Sort) are supported languages by Microsoft Sync Framework.

How much does Microsoft Sync Framework cost?

Microsoft Sync Framework is free on Windows and Windows Mobile devices. Support for other platforms is available through commercial licensing and porting kits

What is included in Microsoft Sync Framework?

Microsoft Sync Framework includes the following components:

  • Microsoft Sync Framework SDK – An SDK which allows developers to create custom providers enabling new applications, services, and data stores to participate in the synchronization ecosystem.
  • Database synchronization providers – A set of ADO.NET-based providers that allow synchronizing relational data using REST style interfaces, enabling data to be taken offline.
  • File synchronization provider – A ready-to-configure provider capable of representing any Win32-compatible file system (e.g., FAT, NTFS, and removable devices). This provider handles challenges such as change detection on FAT volumes, name-name collision resolution, update-delete conflicts, and the ability to preview a synchronization action.
  • Web synchronization components – Full support for producing and consuming RSS and ATOM feeds from any synchronization provider.
  • Metadata storage service – A component that can be used by developers for storing sync metadata such as versions, anchors, and change detection information. This component greatly simplifies the development of custom providers that do not have a natural place to store metadata.

What platforms does Microsoft Sync Framework support?

Out of the box, Microsoft Sync Framework supports Windows platforms including Windows Server 2003, Windows Server 2008, Windows XP, Windows Vista, Windows 7, and Windows Mobile. Support for other platforms is available through commercial licensing and porting kits.

What data stores can be synchronized using Microsoft Sync Framework?

Microsoft Sync Framework supports synchronization of any content such as email, contacts, calendar, audio, video, settings and files/folders.

I can’t make changes to my data store; is that a problem?

No, Microsoft Sync Framework uses a rich metadata model to enable collaboration and offline scenarios. The metadata can exist anywhere, meaning no application or data store changes are required.

Can Microsoft Sync Framework enable synchronization to remote offices?

Yes; using database synchronization providers, information from corporate servers can be synchronized down to remote office or retail store databases. Remote office workers can then access information locally while information is being exchanged between the remote office and the corporate server’s databases.

What is a provider?

A provider enables a data source to participate in Microsoft Sync Framework synchronization process, allowing offline access and collaboration of application, data and services. A number of providers have been included out of the box that support many common data sources. The following providers are included:

  • Database synchronization providers: Synchronization for ADO.NET enabled data sources
  • File synchronization provider: Synchronization for files and folders
  • Web synchronization components: Synchronize data sources by producing and consuming FeedSync-compliant feeds such as RSS and ATOM feeds
  • Developers can ultimately use any of the out-of-the-box providers or can create custom providers to exchange information between devices and applications.

Can I build my own provider to access my data?

Yes; Microsoft Sync Framework provides an SDK allowing developers to create custom providers that enable new applications, services, and data stores to participate in a synchronization community.

Does Microsoft Sync Framework support peer-to-peer synchronization?

Yes; Microsoft Sync Framework allows any applications, devices, or services to participate in true peer-to-peer or hub/spoke topologies.

How does Microsoft Sync Framework handle data conflicts?

Microsoft Sync Framework detects conflicts during synchronization and then passes them to the provider. Within the provider, developers are free to implement a variety of policies for the resolution of items in conflict. Below are some examples of commonly used resolution policies:

  • Source wins: Changes made by the source data store always win in the event that a conflict is detected.
  • Destination wins: Changes made by the destination data store always win.
  • Merge: Merge the two changes together. Inventory counts are an example where you might want to merge (sum) the values together from two replicas rather than choosing one as the correct value.
  • Log conflict: Log or defer the conflict.

How does Microsoft Sync Framework compare to timestamp-based synchronization?

Microsoft Sync Framework automatically handles all of the complicated issues associated with timestamp-based synchronization, such as deferred conflicts, failures, interruptions, and loops. Microsoft Sync Framework enables developers to focus on the applications and ignore the complexities associated with synchronization.

Can I synchronize information between my mobile device and my Oracle or IBM database?

Yes; Microsoft Sync Framework database synchronization providers enable any ADO.NET-enabled relational database (such as Oracle and IBM) to participate in synchronization.

Can I synchronize information between devices using Bluetooth and Infrared

The Sync Framework’s transport-agnostic architecture allows integration of sync into a variety of protocols, including over-the-air and embedded devices. As such, with Microsoft Sync Framework, you can use any existing architectures and protocols, including Bluetooth and Infrared, to synchronize data between devices and servers.

What changes should I make to my data store to make synchronization work?

Microsoft Sync Framework relies on a metadata repository to store information required for synchronization. Although developers are encouraged to store this information in the existing data store, it is not required. The metadata can be stored in an external data store, on the file system, or by using the metadata storage service, a Microsoft Sync Framework component that enables developers to store the sync metadata in a lightweight database.

Does Microsoft Sync Framework use managed or unmanaged code?

Microsoft Sync Framework can be used from managed or unmanaged code.

Does Microsoft Sync Framework support background and scheduled synchronization?

Background and scheduled synchronization is not supported out of the box. However, a number of APIs, such as the State and Notification APIs within Windows Mobile, can be used within the provider to enable background and scheduled synchronization.

What happened to Sync Services for ADO.NET, Sync Services for File Systems, and Sync Services for FeedSync?

These components have been renamed in Microsoft Sync Framework 2.0:

  • Sync Services for ADO.NET components are now referred to as database synchronization providers
  • Sync Services for File Systems components are now referred to as the file synchronization provider
  • Sync Services for FeedSync components are now referred to as Web synchronization components