一般的なクライアントとサーバーの同期タスクのプログラミング

ここでは、Sync Framework を使用して実行できる一般的なクライアントとサーバーの同期タスクの背景情報、手順の内容、および完全なコード例について説明します。まずサーバー データベースの変更の追跡に関するトピックを一読し、同期の方向に関するトピックを少なくとも 1 つ確認してから、他のトピックを参照することをお勧めします。

このセクションの内容

操作方法に関するトピックのサンプル アプリケーション

操作方法に関する各トピックには、少なくとも 1 つのコンソール アプリケーションが含まれています。このアプリケーションは C# と Visual Basic の両方で記述されており、API の特定の機能を示しています。すべてのアプリケーションには、一度同期して、必要に応じてクライアントとサーバーを変更し、再度同期するコードが含まれます。特定のタスクや機能のコード例のみを示す方が簡単ですが、特定の機能を完全なコンテキストで確認すると、Sync Framework の動作を理解しやすくなります。

各アプリケーションには、次のクラスに加え、説明している機能に関連する他のクラスも含まれます。

  • Program : このクラスは、同期を設定し、Utility クラスからメソッドを呼び出します。Utility クラスでは、接続文字列情報の保持やサーバー データベースとクライアント データベースへの変更など、同期に直接関連しないすべての機能を処理しています。

  • SampleSyncAgent : このクラスは SyncAgent から派生しています。

  • SampleServerSyncProvider : このクラスは DbServerSyncProvider から派生しています。サーバー プロバイダーのコマンドが関連している例では、コマンドを手動で指定します。それ以外の場合は、必要となるコードが少ないため、SqlSyncAdapterBuilder クラスを使用します。サーバー プロバイダーのコマンドの詳細については、「スナップショット、ダウンロード、アップロード、および双方向の各同期を指定する方法」を参照してください。

  • SampleClientSyncProvider : このクラスは SqlCeClientSyncProvider から派生しています。

すべての完全なアプリケーションは、アプリケーションの実行にサービスを使用しなくて済むように、2 層構造になっています。ただし、N 層のシナリオにコードを適用する方法がわかりやすくなるように、コードは複数のクラスに分割されています。N 層アプリケーションの詳細については、「N 層同期を構成する方法」を参照してください。

すべてのアプリケーションのコードは、Visual Studio 2008、SQL Server Compact Service Pack 1、SQL Server 2005 Service Pack 2、および SQL Server 2008 でテスト済みです。

各アプリケーションを実行するには

  1. データベース プロバイダーのセットアップ スクリプトに関するトピック」の「オフライン シナリオのカスタム変更追跡」にある Transact-SQL スクリプトを実行します。このスクリプトにより、データベース、一連のテーブルとトリガー、および一連のストアド プロシージャが作成されます。サンプル データを削除して再挿入するには、usp_InsertSampleData ストアド プロシージャを使用します。

  2. データベース プロバイダーの Utility クラスに関するトピック」から Utility クラスのコードをコピーします。実行する各アプリケーションにこのコードを貼り付けるか、コードから DLL を作成して、その DLL を各アプリケーションから参照します。

  3. 次の DLL への参照を追加します。

    • Microsoft.Synchronization.dll

    • Microsoft.Synchronization.Data.dll

    • Microsoft.Synchronization.Data.Server.dll

    • Microsoft.Synchronization.Data.SqlServerCe.dll

    • System.Data.SqlServerCe.dll

参照

概念

オフラインのシナリオ