Announcing Sync Framework 4.0 October 2010 CTP

We are extremely happy to announce the availability of Sync Framework 4.0 October 2010 CTP. To learn more about this release please take a look at our PDC session recording "Building Offline Applications using Sync Framework and SQL Azure".

The Microsoft Sync Framework 4.0 October 2010 CTP is built on top of Sync Framework 2.1 and it extends the Sync Framework capabilities of building offline application to any client platform that is capable of caching data. The release enables synchronization of data stored in SQL Server/SQL Azure over an open standard network format by a remote synchronization service handling all sync specific logic. Moving all synchronization logic off the client enables clients, which do not have the Sync Framework runtime installed, to cache data and participate in a synchronization topology. Earlier versions of Sync Framework required Windows systems with Sync Framework runtime installed on them as clients. This CTP allows other Microsoft platforms such as Silverlight, Windows Phone 7, and Windows Mobile and non-Microsoft platforms such as HTML5, iPhone, Android and other devices with no Sync Framework runtime installed on them as clients.

The major new features included in this CTP are:

  • Protocol: In this release, we apply the principles of OData to the problem of data-sync and add synchronization semantics to the protocol format. Clients and the service use the protocol to perform synchronization, where a full synchronization is performed the first time subsequently followed by smaller incremental synchronization. The protocol is designed with the goal to make it easy to implement the client-side of the protocol and all the synchronization logic will be running on the service side. It is intended to be used to enable synchronization for a variety of sources including, but not limited to, relational databases and file systems.
  • Server and Client Components: The release includes server components that make it easy for you to build a synchronization Web service that exposes data from SQL Server or SQL Azure via the Sync protocol. The CTP release includes client component’s that make it easy for you to build offline applications on Silverlight for desktop and Windows Phone 7 platforms.
  • SyncSvcUtil.exe utility: The release includes a command-line tool, SyncSvcUtil.exe, which helps you with defining and developing sync services and clients.
  • Business Logic Extensibility on Server: The release allows you to plug in to the synchronization runtime on the service and enable custom business logic configuration using SyncInterceptors.
  • Diagnostic Dashboard: The release supports a diagnostic dashboard to diagnose the health of the deployed sync services.
  • Samples and Tutorials: The CTP ships with samples that include a sample service exposing a ToDo list data model as a synchronization service. It also ships the Silverlight, Windows Phone 7, Windows Mobile 6.5 and HTML5 clients that synchronize with the service to show you how to use the components and the protocol. The documentation for CTP contains tutorials, which walk you through creating and consuming a sync service that you can deploy to an on-premise Windows Server or Windows Azure.

The following features will be available in few weeks after PDC10 as a refresh to this release. We will keep you updated on this release on Sync Framework forums and Sync Framework Blog. (Update on 11/16, we just refreshed the bits with the two new features!)

  • Tooling Wizard UI: This adds a UI wizard on top of the command line based SyncSvcUtil utility. This wizard allows you to select tables, columns, and even rows to define a sync scope, provision/de-provision a database and generate server-side/client-side code based on the data schema that you have. This minimizes the amount of code that you have to write yourself to build sync services or offline applications.

  • iPhone Sample: This sample shows you how to develop an offline application on iPhone/iPad with SQLite for a particular remote schema by consuming the protocol directly.

For more details please visit

(In this release we decided to bump the version of all binaries to 4.0, skipping version 3.0 to keep the version number consistent across all components in the release.)