1

SQL2005を使用したMicrosoftSyncFramework?出来ますか?OOTBプロバイダーがSQL2008機能を使用していることを示唆しているようです。私は同期プロジェクトに関連していくつかの迅速な勝利を探しています。クライアントアプリは数日間オフラインになります。SQLServer2005でなければならない中央サーバーがあります。.net3.5を使用できます。

基本的に、クライアントアプリは1週間オフラインになる可能性があります。オンラインに戻ったら、データを同期する必要があります。ただし、データをサーバーにプッシュするだけでよいのは良いことです。クライアントに同期して戻るのは、クライアントが変更することのないルックアップデータだけです。つまり、同期の衝突については気にしないということです。

シナリオを単純化するために、このスマートクライアントはオフラインになり、ユーザーはいくつかの観測に関するデータを調査します。彼らはシステムにデータを入力します。ラップトップがネットワークに再接続されると、すべてのデータがサーバーに同期されます。同じことをしている他のクライアントもいるでしょうが、誰もお互いのデータに触れることはありません。次に、サーバーにプッシュされたデータを表示するためのサーバーに関するレポートがいくつかあります。これもClickOnceを使用する必要があります。

私の最大の懸念は、クライアントがオフラインのときに暫定リリースがあることです。このリリースでは、データベースに新しいフィールドが必要になる場合があり、調査に入力するために新しいフィールドが必要になる場合があります。明らかに、古いデータを更新できないため、新しいフィールドはnull許容になります。これは、前提条件として設定するのに適しています。しかし、クライアントが接続し、そのローカルデータスキーマとサーバースキーマが一致しない場合、同期フレームワークはこれを処理できますか?データがサーバーにプッシュされた後、ローカルで破棄されます。

私の問題が理にかなっていることを願っています。

4

1 に答える 1

1

衝突に対処する必要があるアプリケーションに Microsoft Sync フレームワークを使用してきましたが、残念です。*.sdf ファイルは、特定のスキーマ変更 (列の削除など) のためにロックされています。

あなたのシナリオは、同期フレームワークがすぐに使えるように思えます...同期フレームワークはこれらのインスタンスで挿入の問題を引き起こすため、参照整合性を強制しないでください。

スキーマの更新に関しては、Sync Framework フォーラムに従うと、テーブルが最後に見える方法で一時テーブルを作成し、データをコピーしてから、古いテーブルを削除するように指示されます。完了したら、先に進み、新しいテーブルの名前を本来あるべき名前に変更し、同期クラスを処理できるように SQL Server CE に再接続します。

私見ですが、アプリケーションから同期機能を削除することに取り組んでいます。これは、支援というよりも障害であるためです。

于 2009-07-25T11:25:09.170 に答える