对常见客户端与服务器同步任务进行编程
本节中的以下主题为可通过使用 Sync Framework 执行的常见客户端与服务器同步任务提供背景信息、操作步骤以及完整代码示例。在阅读其他主题之前,建议您首先阅读与在服务器数据库中跟踪变更有关的帮助主题,然后至少阅读一篇与同步方向有关的主题。
本节内容
帮助主题中的示例应用程序
每篇帮助主题都至少包含一个控制台应用程序。该应用程序使用 C# 和 Visual Basic 编写,用于演示 API 的特定功能。所有应用程序包括的代码都是首先进行一次同步,然后根据需要变更客户端和服务器,然后再进行一次同步。虽然仅展示针对特定任务或功能的代码示例要更快捷一些,但是在一个还算完整的上下文中查看特定功能的表现更有助于理解 Sync Framework 的工作方式。
每个应用程序都包含以下类以及与要介绍的功能相关的其他类:
Program
:此类设置同步并调用Utility
类的方法。Utility
类负责处理所有与同步非直接相关的功能,例如保存连接字符串信息和变更服务器和客户端数据库等。SampleSyncAgent
:此类派生自 SyncAgent。SampleServerSyncProvider
:此类派生自 DbServerSyncProvider。在与服务器提供程序命令相关的示例中,命令是手动指定的。在其他情况下,使用 SqlSyncAdapterBuilder 类,因为它需要的代码较少。有关服务器提供程序命令的更多信息,请参见如何指定快照同步、下载同步、上载同步和双向同步。SampleClientSyncProvider
:此类派生自 SqlCeClientSyncProvider。
所有完整的应用程序都是双层体系结构,以避免必须使用服务来运行应用程序。但是,代码会分成单独的类,以便更容易了解如何将代码应用于 N 层方案。有关 N 层应用程序的更多信息,请参见如何配置 N 层同步。
所有应用程序的代码都已在 Visual Studio 2008、SQL Server Compact Service Pack 1、SQL Server 2005 Service Pack 2 和 SQL Server 2008 上进行过测试。
运行每个应用程序
执行用于数据库提供程序帮助主题的安装脚本中的“用于脱机方案的自定义变更跟踪”Transact-SQL 脚本。该脚本创建一个数据库、一组表和触发器以及一组存储过程。若要删除并重新插入示例数据,请使用
usp_InsertSampleData
存储过程。从用于数据库提供程序帮助主题的 Utility 类中复制
Utility
类的代码。将此代码粘贴到要运行的每个应用程序中,或者从代码创建一个 DLL,并从每个应用程序中引用该 DLL。添加对以下 DLL 的引用:
Microsoft.Synchronization.dll
Microsoft.Synchronization.Data.dll
Microsoft.Synchronization.Data.Server.dll
Microsoft.Synchronization.Data.SqlServerCe.dll
System.Data.SqlServerCe.dll