8

マルチユーザー環境の場合:すべてのクライアントがお互いの変更を確認できるようにするにはどうすればよいですか?これを行うための最良の方法は何ですか?

以前、私はC#アプリケーションを作成し、それを2台のPCにインストールしました。中央のSQLExpressサーバーに接続しました(クライアントアプリケーションは、Entity Framework Code FirstをORMとして使用していました)。client1がデータベースにレコードを追加したとき、これはclient2に直接表示されませんでした。client2がすべてのデータを再度フェッチした場合(ハードリフレッシュ)にのみ、変更が表示されました。

今、私はこの「同期」(?)をどのように実行できるか、または実行する必要があるかについての解決策を探しています。私はEntityFrameworkCode Firstを使用するのが好きです。まず、ソリューションがこれを維持できればいいのですが。また、アプリケーションはまだ非常に初期の段階にあります。中央データベースとそれに接続する複数のクライアントがあると思いましたが、これが良い解決策かどうかはわかりません。提案/ソリューションで、クライアントが接続する(およびサーバーアプリケーションがデータベース処理を行う)中央サーバーアプリケーションが必要な場合、これは問題ありません。

可能であれば、基本的なサンプルソリューションまたは常に最新のデータを操作する方法を示すいくつかの基本的なコードが非常に役立つ可能性があります。

同様の質問:

前もって感謝します

4

2 に答える 2

2

それは、環境と管理しているデータ、および必要なアーキテクチャによって異なります。

クライアントが操作できるデータのコピーを持っていても問題ない/許容できる場合は、中央サーバーに接続していないときにデータを操作する必要がある場合は、同期フレームワークを使用できます。

通常どおり中央の SQL Server を用意し、同期フレームワークを使用してクライアントと同期します。

異なるクライアントなどによって同じデータに加えられた変更を解決する方法を決定する「プロバイダー」を作成します。

クライアント マシンに SQL Express (または LocalDB (SQLCE の新しい名前)) を配置する必要があります。

次に、Entity Framework モデル/コードを実行して、中央データベースではなくローカル データベースにアクセスします。

http://blogs.msdn.com/b/sync/archive/2008/06/24/sample-sql-express-client-synchronization-using-sync-services-for-ado-net.aspx

それ以外の場合は、いくつかの「層」を設計および実装し、分散型インターネット/データベース アーキテクチャ/SOA に従う必要があります。

素敵な無料リソース:

http://msdn.microsoft.com/en-us/library/ff650706.aspx

http://mtechsoa2011.blogspot.co.uk/2011/04/soa-vs-distributed-internet_27.html

役に立つ本:

http://www.amazon.co.uk/Service-Oriented-Architecture-Concepts-Technology-Computing/dp/0131858580/ref=sr_1_1?s=books&ie=UTF8&qid=1343295432&sr=1-1

于 2012-07-25T19:59:59.357 に答える