Welcome

首页 / 软件开发 / .NET编程技术 / 保持同步 - 使用Sync Framework创建同步提供程序

保持同步 - 使用Sync Framework创建同步提供程序2011-07-05 MSDN / Joydip KanjilalMicrosoft Sync Framework 是一个功能完善的平台,用于同步脱机和联机数据,便于应用程序、服务和设备等进行协作和脱机访问。 它独立于协议和数据库,并提供了支持以下功能的技术和工具:设备漫游、共享功能,以及离线提取网络化数据,然后在以后的某个时间进行同步的功能。

使用 Sync Framework 构建的应用程序可以在网络上使用任何协议从任何数据源同步数据。 它是一个功能完善的同步平台,便于应用程序、服务和设备进行脱机和联机数据访问。 Sync Framework 具有可扩展的提供程序模型,可供托管和非托管代码用来同步两个数据源之间的数据。

本文将介绍同步的概念,以及如何将 Sync Framework 集成到项目中。 具体而言,我们将介绍数据同步基础、Sync Framework 的体系结构组件以及如何使用同步提供程序。

要使用 Sync Framework 和本文中的代码示例,需要安装 Visual Studio 2010 和 Sync Framework 运行时 2.0 或更高版本。 您可以从 Sync Framework 开发人员中心下载该运行时(包含在 Microsoft Sync Framework 2.0 可再发行组件包中)。

Sync Framework 基础

Sync Framework 包含四个主要组件:运行时、元数据服务、同步提供程序和参与方。

Sync Framework 运行时提供用于在数据源之间同步数据的基础结构。 它还提供一个 SDK,开发人员可以对其进行扩展以实现自定义提供程序。

元数据服务提供存储同步元数据(包含同步会话期间使用的信息)的基础结构。 同步元数据包括版本、锚点和更改检测信息。 在自定义提供程序的设计和开发过程中,也会使用同步元数据。

同步提供程序用于在副本或端点之间同步数据。 副本是一个同步单元,用于标识实际的数据存储。 举例来说,如果同步两个数据库之间的数据,每个数据库都称为一个副本。 副本是用唯一标识符(称为副本键)标识的。 此处的端点也称为数据存储。 本文稍后将更深入地讨论提供程序。

参与方指的是可以检索待同步数据的位置。 参与方可以是完整参与方、部分参与方和简单参与方。

完整参与方是指具备以下功能的设备:可以创建新的数据存储,可以存储同步元数据信息,可以在设备自身上运行同步应用程序。 完整参与方包括桌面计算机、便携式计算机和 Tablet。 完整参与方可以与其他参与方同步数据。

部分参与方是指可以创建新的数据存储和存储同步元数据信息,但不能在设备自身上运行同步应用程序的设备。 USB 存储设备或智能手机可以是部分参与方。 请注意,部分参与方可以与完整参与方同步数据,但不能与其他部分参与方同步数据。

简单参与方包括不能存储新数据或执行应用程序,只能提供所请求信息的设备。 RSS 源、Amazon 和 Google Web 服务都属于简单参与方。

同步提供程序

同步提供程序是一个组件,它可以参与同步过程,使一个副本与其他副本同步数据。 每个副本都应该有一个同步提供程序。

要同步数据,需要启动一个同步会话。 应用程序连接会话中的源和目标同步提供程序,以便于副本间进行数据同步。

同步会话期间,目标提供程序向源提供程序提供关于其数据存储的信息。 源提供程序确定哪些源副本更改对于目标副本而言是未知的,然后将此类更改的列表推送给目标提供程序。 目标提供程序检测自己的项与该列表中的项之间是否存在任何冲突,然后将更改应用到自己的数据存储。 Sync Framework 引擎为所有这些同步过程提供了便利。

Sync Framework 支持三个适用于数据库、文件系统和源同步的默认提供程序:

适用于支持 ADO.NET 的数据源的同步提供程序

适用于 RSS 和 Atom 源的同步提供程序

适用于文件和文件夹的同步提供程序

您还可以扩展 Sync Framework,从而创建自己的自定义同步提供程序,在设备和应用程序之间交换信息。

数据库同步提供程序(以前在 Sync Framework 1.0 中称为 ADO.NET 同步服务)支持启用了 ADO.NET 的数据源的同步。 通过构建未连接数据应用程序,可以在支持 ADO.NET 的数据源(如 SQL Server)之间进行同步。 它支持漫游、共享和离线提取数据。 任何使用数据库提供程序的数据库都可以与 Sync Framework 支持的其他数据源(包括文件系统、Web 服务,甚至是自定义数据存储)一起参与同步过程。

Web 同步提供程序(以前的 FeedSync 同步服务)支持同步 RSS 和 ATOM 源。 在 FeedSync 之前,这一技术称为简单共享扩展,最初是由 Ray Ozzie 设计的。 请注意,Web 同步提供程序不会替代现有技术,如 RSS 或 Atom 源。 它只是提供了一种向现有 RSS 或 Atom 源添加同步功能的简单方法,以便独立于所用平台或设备的其他应用程序或服务使用这些源。

文件同步提供程序(以前的文件系统同步服务)支持对系统中的文件和文件夹进行同步。 它可用于在同一系统或网络中不同系统之间同步文件和文件夹。 您可以在采用 NTFS、FAT 或 SMB 文件系统的系统中同步文件和文件夹。 提供程序使用 Sync Framework 元数据模型实现文件数据的对等同步,同时支持任意拓扑(客户端/服务器、交错和对等),还支持可移动介质。 此外,文件同步提供程序还支持增量式同步、冲突和更改检测、在操作的预览和非预览模式中同步,以及在同步过程中筛选和跳过文件。