0

私は、このデータ構造をWPF c#.NET4.0Webアプリケーションに実装するための最良の方法を見つけることを目指しています。

アプリの詳細:このアプリケーションには、一度に多くのユーザーがいます。2つのテーブルがリンクされており、どちらも1万行未満のデータベースを使用していますが、時間の経過とともに大きくなります。1つのテーブルで定期的に更新を確認する必要があります。

質問: すべての情報を保持するデータセットを作成しました。私の単体テストでは、データベースからデータセットにデータを入力するのに約0.2秒かかることが示されています。データセットがアプリケーション全体で存続するのであれば、これは時間ではありません。多くのユーザーのアプリケーション全体で存続できますか?

私が考えることができるもう1つの方法は、データに監視可能なコレクションを使用し、それらをシングルトンに格納することです。私がここで見逃している方法や、私にとってよりうまくいく方法はありますか?

4

1 に答える 1

1

ここであなたはいくつかの本当に重要な概念を誤解していると思います。まず第一に、WPFはASP.Netではなく、WPFアプリケーションは「サーバーで実行」されません。WPFアプリケーションは、Internet Explorer内で実行されるXBAPであるかどうかに関係なく、それらを実行するコンピューター(つまり、クライアント)で実行されます。

したがって、各インスタンスは独自のプロセス上の別々のコンピューターで実行されるため、WPFアプリケーションの多くのインスタンス間で「シングルトン」のようなものを共有することはできません。これらのインスタンス間でメモリを共有する実用的な方法はありません。

次に、「Webアプリケーション」が必要な場合、WPFはプロジェクトに適していない可能性があります。WPFはWebテクノロジではなく、HTMLなどのくだらない実装に依存しないリッチなデスクトップアプリケーションテクノロジです。

ここで、WPFが提供する豊富さと素晴らしさ、および開発の容易さを必要とする(または望む)場合は、クライアント/サーバーアプリケーションを実装する必要があります。おそらく、WCFまたはその他の通信テクノロジを使用して、リッチクライアントがサーバーと通信できるようにします。

「サーバー」は、データベースからデータをクエリし、場合によってはそれをメモリにキャッシュしてから、クライアントに送信するアプリケーションです。通常、これにはWCFサービスアプリケーションで十分ですが、要件によっては、その上にさらに多くのレイヤーを実装する必要がある場合があります。

これに加えて、WPFクライアントに10k行の情報を送信する正当な理由はないと思います。そのため、代わりに「チャンク」でデータを送信するために、何らかのページングメカニズムを考え出す必要があります。

あなたが必要としているものについての詳細を提供してください、そして私はあなたにもっと洞察を与えることができます。

于 2012-11-27T17:28:54.290 に答える