簡易カスタム プロバイダーの実装

Sync Framework には、ドメイン固有の API (ファイル同期プロバイダーなど) からあらゆる種類のデータ ストアを同期できる柔軟なコア API まで、さまざまな API が用意されています。簡易プロバイダー API は、この API 群の中で中堅に位置しています。コア API に匹敵するパフォーマンスと柔軟性が得られますが、コア API よりも習得が容易でコードの量も少なく、変更追跡がほとんどサポートされないレプリカに特に適しています。簡易プロバイダー API は拡張可能ですが、主に次の 2 種類のレプリカを対象としています。

  • 変更追跡をまったくサポートしないレプリカ。このタイプのレプリカは、"完全列挙プロバイダー"** (同期のたびに、同期元レプリカのすべての項目を列挙するプロバイダー) 使用します。

  • アンカー ベースの変更追跡をサポートするレプリカ。このタイプのレプリカは "アンカー ベース プロバイダー"** を使用します。このプロバイダーは、特定のアンカーが設定された後 (一般的には特定の時点) で変更された同期元レプリカの項目を列挙します。

カスタム プロバイダーの詳細については、「カスタム プロバイダーの基礎」を参照してください。特に「簡易プロバイダーか標準プロバイダーかの選択」のセクションを熟読してください。

主要インターフェイスと重要なオプション

簡易プロバイダー インターフェイスは、マネージ コードとネイティブ コードで使用できます。マネージ コードは、Microsoft.Synchronization.SimpleProviders.dll の Microsoft.Synchronization.SimpleProviders 名前空間に存在します。詳細については、Microsoft.Synchronization.SimpleProviders の説明を参照してください。ネイティブ コードは providerframework.dll に存在し、anchorenumerationprovider.h および fullenumerationprovider.h が必要になります。詳細については、「Sync Framework の簡易プロバイダー コンポーネント」を参照してください。

簡易プロバイダーの主要インターフェイスは次のとおりです。

マネージ インターフェイス アンマネージ インターフェイス

FullEnumerationSimpleSyncProvider

IFullEnumerationSyncProvider インターフェイス

AnchorEnumerationSimpleSyncProvider

IAnchorSyncProvider インターフェイス

FullEnumerationContext

IFullEnumerationCallback インターフェイス

AnchorEnumerationContext

IAnchorChangeDetectionCallback インターフェイス

ItemEnumerationContext

 

プロバイダー インターフェイスは開発者によって実装されます。UpdateItem マネージ メソッドや UpdateItem アンマネージ メソッドなどのプロバイダー メソッドは、同期セッション中に変更を選択して適用するために Sync Framework ランタイムによって呼び出されます。これらの各メソッドについて、レプリカ、項目ストア、アプリケーションのニーズに合わせた実装を作成する必要があります。たとえば、更新メソッドは同期先データ ストアで更新を実行し、アプリケーションで更新が必要なビジネス ロジックを適用できるか、適切に応答できることが必要です。コンテキスト インターフェイスとコールバック インターフェイスは Sync Framework により実装され、同期セッションのコンテキストにアクセスする手段となります。主要インターフェイスだけでなく、簡易プロバイダー API にも次の機能に関する重要なオプションが用意されています。

簡易プロバイダーを作成する際のデザイン上の注意事項の詳細については、「簡易カスタム プロバイダーのデザインに関する注意事項」を参照してください。

マネージ簡易プロバイダーの作成の詳細については、「マネージ簡易プロバイダーを作成する方法」を参照してください。

参照

リファレンス

Microsoft.Synchronization.SimpleProviders

概念

カスタム プロバイダーを使用したデータ ストアの同期
Sync Framework 2.0 の新機能
Sync Framework の簡易プロバイダー コンポーネント