3

データベースサーバーに直接接続するのではなく、ローカルデータストアを持つようにアプリケーションを変更しています。クライアントアプリは、サーバーデータベースとそのローカルデータストアの間で変更を双方向で同期します。MicrosoftSyncFrameworkを使用して同期ソリューションを実装しようとしています。明確にするために、サーバーアプリケーションはなく、データベースサーバーのみがありますが、複数のクライアントがあります。

FullEnumerationSimpleSyncProviderを実装する2つのクラスの実装を開始しました。1つはLocalSyncProviderと呼ばれ、もう1つはServerSyncProviderと呼ばれます。LocalSyncProviderは、ローカルデータストアからアイテムを列挙、挿入、更新、削除する方法を知っており、ServerSyncProviderは、データベースサーバーからアイテムを列挙、挿入、更新、削除する方法を知っています。それぞれが提供されたSqlMetadataStoreを使用し、2つのメタデータストア(1つはローカル用、もう1つはサーバー用)をクライアントのローカルドライブに保存します。これは、各クライアントがローカルデータストア用に独自のメタデータストアを持ち、サーバーデータベース用に独自のメタデータストアを持つことを意味します。

これは実際に機能しますか、サーバーメタデータストアが1つだけ存在する必要がありますか、それとも同期フレームワークを別の方法で使用する必要がありますか?

4

1 に答える 1

0

私たちは同様のアプローチを使用しており、あなたが説明したように機能します。FileSyncProvider違いは、クライアントには を使用し、サーバーには の実装を使用して、データではなくファイルを同期していることFullEnumerationSimpleSyncProviderです。しかし、サーバー上で実行されている Sync Framework コードはなく、2 つの別個のメタデータ ファイルがあり、どちらもクライアントに保存されています。

ただし、最近、注意が必要な問題に遭遇しました。クライアント上のメタデータ ストアが削除された場合、同期フレームワークは、既にサーバー上にあるデータ/ファイルと混同せずにメタデータ ファイルを再構築できないようです。

于 2010-10-01T10:29:57.937 に答える