
Comparing Sync Services for ADO.NET to Other Technologies
Microsoft offers several technologies that are designed for applications that perform synchronization. Therefore, it is useful to compare Sync Services for ADO.NET to other technologies that are used in offline and collaborative scenarios.
Offline Synchronization
The most significant Microsoft technologies for offline synchronization are as follows:
-
Remote Data Access (RDA). This is used to synchronize a SQL Server Compact 3.5 database with a database on another edition of SQL Server. For more information, see SQL Server Compact 3.5 Books Online.
-
Merge replication. This is used to synchronize different editions of SQL Server, including SQL Server Compact 3.5. For more information, see Merge Replication Overview and Selecting the Appropriate Type of Replication.
Use the following table to help you determine which technology is appropriate for the applications that you want to build.
|
Key feature
|
RDA
|
Merge replication
|
Sync Services
|
|---|
|
Synchronize by using an n-tier or service-oriented architecture
|
No
|
No
|
Yes
|
|
Supports heterogeneous databases
|
No
|
No
|
Yes
|
|
Incremental change tracking
|
No1
|
Yes
|
Yes
|
|
Conflict detection and resolution
|
No
|
Yes2
|
Yes
|
|
Easily create data views on the client
|
No
|
No
|
Yes
|
|
Automatically initialize schema and data
|
Yes
|
Yes
|
Yes
|
|
Supports large data sets
|
Yes
|
Yes
|
Yes
|
|
Query processor is locally available
|
Yes
|
Yes
|
Yes
|
|
Automatically propagate schema changes
|
No
|
Yes
|
No
|
|
Automatically repartition data
|
No
|
Yes
|
No
|
|
Use on devices
|
Yes
|
Yes
|
Yes
|
1 RDA supports incremental uploads, but downloads are always a snapshot that updates all the data on the client.
2 Merge replication provides built-in conflict resolution; whereas, Sync Services for ADO.NET provides a framework for building a conflict resolution scheme.
Collaborative Synchronization
The most significant technology to compare in terms of collaborative synchronization is peer-to-peer transactional replication, which is used to synchronize two or more SQL Server Enterprise databases. Sync Services for ADO.NET and transactional replication both support peer-to-peer synchronization: transactional replication is best suited for maintaining high availability and scaling read activity across multiple servers, whereas Sync Services for ADO.NET is best suited for applications in which users work collaboratively with the same data.
The following table can help you to determine which technology is appropriate for the applications that you want to build. For more information about peer-to-peer transactional replication, see Peer-to-Peer Transactional Replication.
|
Key feature
|
Peer-to-peer transactional replication
|
Sync Services
|
|---|
|
Synchronize by using an n-tier or service-oriented architecture
|
No
|
Yes
|
|
Supports heterogeneous databases
|
No
|
Yes
|
|
Incremental change tracking1
|
Yes
|
Yes
|
|
Conflict detection and resolution2
|
Yes
|
Yes
|
|
Automatically initialize schema and data
|
Yes
|
Yes
|
|
Supports large data sets
|
Yes
|
Yes
|
|
Query processor is locally available
|
Yes
|
Yes
|
|
Automatically propagate schema changes
|
Yes
|
No
|
|
Use on devices
|
No
|
Not in this version
|
|
Use with SQL Server Compact 3.5
|
No
|
Not in this version
|
1 Sync Services for ADO.NET uses net change tracking, in which the last version of a row is synchronized. With peer-to-peer transactional replication, all changes to a row are applied in order at each peer.
2 Replication provides built-in conflict resolution; whereas, Sync Services for ADO.NET provides a framework for building a conflict-resolution scheme.
Deciding Which Technology to Use
Sync Services for ADO.NET provides the flexibility of a programming model like offline datasets and a richer synchronization feature set like that found in replication. Sync Services for ADO.NET functionality is superior to RDA. Replication is intended for database administrators and is designed primarily to synchronize SQL Server databases. Replication provides significant functionality with configuration available through wizards, stored procedures, and its own API. Sync Services for ADO.NET is intended for developers and supports heterogeneous databases and synchronization over services, such as Windows Communication Foundation (WCF). If an application involves synchronizing with non-SQL Server databases or if an application must have separate components to enable synchronization over different transports or services, use Sync Services for ADO.NET.
For some applications, the decision to use a technology is easy: If you must synchronize a data source other than a SQL Server database, Sync Services for ADO.NET is the solution. If you are a database administrator who wants to configure synchronization without much programming, replication might be a better choice. Ultimately, you must carefully consider the application requirements and determine whether the Sync Services for ADO.NET API is the appropriate technology to use. If you want to move beyond replicating a schema and its data from one database to another, we recommend that you use Sync Services for ADO.NET.