Microsoft Sync Framework and Windows Phone 7

0
135

Application models based on traditional client-server and web-based technologies tend to have little need for synchronizing data between
locations. In most cases, all instances of clients—such as Windows® Forms applications or web browsers—access a single store that holds
the data used by the application (although this store may itself be a server farm). However, the increasing use of cloud-based data stores
and mobile devices means that the capability to synchronize or replicate data across separate locations and devices is becoming even more
vital.

Synchronization between databases has been a common requirement for a while, and technologies to achieve this are available and
widely used. However, they are often closely tied to a specific scenario and do not support more general client application scenarios. The following are some examples of the capabilities that are becoming essential for distributed applications:

  • Synchronizing data between geographically separated cloudbased data repositories and applications
  • Synchronizing data between one or more on-premises databases or applications and one or more cloud-based databases or applications
  • Synchronizing data between rich client applications and the data source to maximize interactivity and usability of the application
  • Synchronizing data between mobile and occasionally connected devices and the application data store to allow off-line operation

Some of these requirements can be satisfied using relational database replication and synchronization technologies, generally where
there is a database available on the client computer (which, in some cases, may be SQL Server® Compact Edition or another file-based
database mechanism). However, there is an increasing requirement to synchronize data for devices and clients that do not have a local database mechanism available. Typical examples of this are mobile phones and similar small form factor devices.

The Microsoft® Sync Framework aims to provide an extensible and easy-to-use mechanism for synchronizing data between almost
any type of data source and client. In the context of this guide, it specifically enables synchronization between Windows Azure™ technology platform services and Windows Phone 7 devices.