Sync Services for ADO.NET provides the ability to synchronize data from disparate sources over two-tier, N-tier, and service-based architectures. It is a set of DLLs that provides a composable API. Rather than just replicating a database and its schema, the Sync Services API provides a set of components to synchronize data between data services and a local store.

Sync Services uses a hub-and-spoke model. All changes from each client are synchronized with the server before the changes are sent from the server to other clients (clients do not exchange changes directly with each other). Sync Services provides snapshot, download-only, upload-only, and bidirectional synchronization.

  • Snapshot and download-only synchronization are typically used to store and update reference data, such as a product list, on a client. Data changes that are made at the server are downloaded to the client database during synchronization. Snapshot synchronization refreshes data every time that the client is synchronized. It is appropriate when you do not want to track incremental changes, or the server cannot do so. Download-only synchronization downloads only the incremental changes that have occurred since the previous synchronization.

  • Upload-only synchronization is typically used to insert data, such as a sales order, on a client. Inserts and other data changes that were made in the client database are uploaded to the server during synchronization.

  • Bidirectional synchronization is typically used for data, such as customer contact information, that can be updated at the client and server. Any conflicting changes must be handled during synchronization.

Client Database

The client database for Sync Services applications is SQL Server Compact 3.5. Sync Services provides an infrastructure to track incremental changes in the client database. This infrastructure is enabled the first time any table is synchronized by using a method other than snapshot synchronization. 

Sync Services and any other synchronization technology cannot be used on the same table in the client database

Server Database

The server database can be any database for which an ADO.NET provider is available. 

For more information about Sync Services for ADO.NET, see Synchronization Services for ADO.NET documentation.