客户端与服务器同步概述

使用 Sync Framework,可以通过双层、N 层和基于服务的体系结构同步来自不同来源的数据。面向客户端与服务器同步的 Sync Framework API 提供了一组用于在数据服务与本地存储之间同步数据的组件,而不是仅仅用于复制数据库及其架构。应用程序正越来越多地用于移动客户端,如便携式计算机和设备。由于这些移动客户端与中央服务器没有连贯或可靠的网络连接,因此对于这些应用程序而言,能够在客户端上使用数据的一份本地副本十分重要。同等重要的一点是:在网络连接可用时,需要能够将数据的本地副本与中央服务器同步。Sync Framework 数据库同步 API 以 ADO.NET 数据访问 API 为蓝本,提供了一种直观的数据同步手段。Sync Framework 对构建依靠连续网络连接的应用程序这一工作进行了合乎逻辑的扩展,使我们得以针对断续连接的网络环境开发应用程序。有关该 API 的体系结构的更多信息,请参见用于客户端与服务器同步的体系结构和类

Sync Framework 与其他技术的对比

Microsoft 为构建在偶尔连接的环境中运行的应用程序提供了多种技术。以下是一些最为重要的技术:

  • 远程数据访问 (RDA)。该技术可用于将 SQL Server Compact 数据库与另一版本的 SQL Server 上的数据库一起同步。

  • 合并复制。这种技术用于同步 SQL Server 的不同版本,其中也包括 SQL Server Compact。

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

主要功能 RDA 合并复制 Sync Framework

使用服务进行同步

支持异类数据库

跟踪增量变更

否1

冲突检测与解决

是2

在客户端上轻松创建数据视图3

自动初始化架构和数据

支持大型数据集

自动传播架构变更

自动对数据重新分区

在设备上使用

1 RDA 支持增量上载,但下载的内容始终是一个更新客户端上的所有数据的快照。

2 合并复制提供内置的冲突解决功能。Sync Framework 为构建冲突解决方案提供了一个框架。有关更多信息,请参见如何处理数据冲突和错误

3 有关更多信息,请参见如何在客户端上创建数据视图

Sync Framework 提供了类似于脱机数据集这样的编程模型的灵活性,并且具有更加丰富的同步功能集(例如可在合并复制中找到的功能)。Sync Framework 的功能强于 RDA。合并复制适合数据库管理员使用,旨在同步 SQL Server 数据库。合并复制提供许多重要功能,并且可通过向导、存储过程以及它自己的 API 进行配置。Sync Framework 则针对开发人员,它使开发人员能够在客户端上轻松创建基于服务器数据库或其他数据源的数据视图。Sync Framework 支持异类数据库和通过服务(例如 Windows Communication Foundation,WCF)进行的同步。如果应用程序需要与非 SQL Server 数据库进行同步,或者必须使用多个单独的组件和通过不同传输或服务进行同步,则可以使用 Sync Framework。

对某些应用程序而言,很容易决定使用哪一种技术:如果必须同步非 SQL Server 数据库的数据源,则使用 Sync Framework。如果您是一名数据库管理员,您希望在不进行过多编程的情况下配置同步,则合并复制可能是更佳选择。最后,您必须仔细考虑应用程序的要求,并确定 Sync Framework API 是否是适用的技术。如果您想做的不仅仅是将架构及其数据从一个数据库复制到另一个数据库,建议您使用 Sync Framework。

备注

RDA 或合并复制不能与 Sync Framework 一起用于客户端数据库中的同一个表。

使用 Sync Framework 文档

Sync Framework 文档中的主题详细介绍了 Sync Framework 数据库同步 API,并且提供了示例代码和 API 参考。在 Microsoft.SynchronizationMicrosoft.Synchronization.DataMicrosoft.Synchronization.Data.SqlServerCeMicrosoft.Synchronization.Data.Server 中可以找到针对客户端与服务器同步的 API 参考。

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

  1. 阅读用于客户端与服务器同步的体系结构和类,了解 API 的体系结构和最重要的类。

  2. 阅读入门:客户端与服务器同步,查看一个简单应用程序的代码。

  3. 阅读有助于开发应用程序的工具,了解可以用来帮助开发应用程序的工具。

  4. 浏览对常见客户端与服务器同步任务进行编程中的主题,大致了解如何处理常见任务。这些主题包含示例代码。在 Sync Framework SDK 和 Code Gallery(代码库)中还提供其他一些示例。

  5. 在阅读了上述章节后,可以开始研究应用程序设计和部署注意事项中提供的设计原则。随着您对 API 越来越熟悉,我们鼓励您开始编写自己的代码:您将会发现,为应用程序添加同步的过程真的是非常简单明了。

请参阅

概念

脱机方案
用于客户端与服务器同步的体系结构和类