协作同步概述

通过 Sync Framework 可以在对等方之间同步数据,其中每个对等方都可以与任何其他对等方同步,而变更不必通过中央集线器来传递。像脱机同步一样,在应用程序没有稳定或可靠的网络连接时可以使用对等同步,但是这部分 API 的重点是协作应用程序。例如,在一个允许用户共享项目备注的应用程序中,项目团队成员通常需要一份可以处理的数据的本地副本。当他们进行变更时,他们可以与其他团队成员同步,以交换变更。

Sync Framework 数据库同步 API 以 ADO.NET 数据访问 API 为蓝本,提供了一种直观的数据同步手段。Sync Framework 对构建依靠稳定网络连接的单个用户的应用程序进行了合乎逻辑的扩展,使我们得以针对协作的网络环境开发应用程序。有关该 API 的体系结构的更多信息,请参见用于协作同步的体系结构和类

Sync Framework 与其他技术的对比

Microsoft 为执行同步的应用程序提供了多种技术。就对等同步而言,可对比的最重要的技术是对等事务复制。这种技术用于同步两个或更多 SQL Server Enterprise 数据库。尽管比较这两种技术很有用,但应注意对等事务复制专用于提供可伸缩性和高可用性的服务器到服务器的同步,而 Sync Framework 专用于支持协作应用程序的客户端到服务器的同步以及客户端到客户端的同步。

下表可帮助您决定哪一种技术最适合您要构建的应用程序。

主要功能 对等事务复制 Sync Framework

使用服务进行同步

与其他类型的数据存储区同步1

增量变更跟踪2

冲突检测和解决3

自动初始化架构和数据

支持大型数据集

自动传播架构变更

1数据库可以与 Sync Framework 支持的其他数据源(例如,Web 服务、文件系统或自定义数据存储区)交换信息。

2 Sync Framework 使用净变更跟踪,在其中同步行的最新版本。在对等事务复制中,对每一对等方按顺序应用对一行所做的所有变更。

3 复制内置冲突解决功能;因此,Sync Framework 为构建冲突解决方案提供了一个框架。

Sync Framework 提供了类似于脱机数据集这样的编程模型的灵活性,并且具有更加丰富的同步功能集(与复制中提供的功能集类似)。复制适合数据库管理员使用,旨在同步 SQL Server 数据库。复制提供许多重要功能,并可通过向导、存储过程及其自身的 API 进行配置。Sync Framework 则面向开发人员,支持与其他类型的数据存储区进行同步以及跨服务(如 Windows Communication Foundation,WCF)进行的同步。

对于某些应用程序,很容易做出使用某种技术的决定:如果必须使用多个单独的组件以通过不同传输或服务进行同步,或者对数据源而不是数据库进行同步,则应使用 Sync Framework。如果您是一名数据库管理员,您正准备设计一个具有可伸缩性和高可用性的系统,或者希望在不进行过多编程的情况下配置同步,则复制可能是更好的选择。最后,您必须仔细考虑应用程序的要求,并确定 Sync Framework API 是否是适用的技术。如果您想做的不仅仅是将架构及其数据从一个数据库复制到另一个数据库,建议您使用 Sync Framework。

使用 Sync Framework 对等文档

Sync Framework 文档中的主题介绍了 Sync Framework 数据库同步 API,并且提供了示例代码和 API 参考。可以在 Microsoft.SynchronizationMicrosoft.Synchronization.DataMicrosoft.Synchronization.Data.SqlServerSqlCeSyncProvider 中找到针对对等同步的 API 参考。

如果要获得更多信息,建议您按以下顺序阅读文档:

  1. 阅读用于协作同步的体系结构和类,了解 API 的体系结构和最重要的类。

  2. 阅读如何配置和执行协作同步 (SQL Server),查看一个简单应用程序的代码。

  3. 浏览同步其他与 ADO.NET 兼容的数据库中的主题,大致了解如何处理非 SQL Server 数据库的同步。

这些主题包含示例代码。在 Sync Framework SDK 和 Code Gallery(代码库)中还提供其他一些示例。

请参阅

概念

协作方案
用于协作同步的体系结构和类