3

私の wpf クライアントは、起動時にサーバーから大量のデータをロードしています。そのため、クライアント側でキャッシュ戦略を実装したいと考えています。

.NET Framework 4 の新しい System.Runtime.Caching 名前空間について知っています。残念ながら、メモリ キャッシュしかありません。クライアントを起動するたびに大量のデータをロードしたくありません。だから私は永続的なクライアントキャッシュを探しています。

あなたはそれについてどう思いますか?

もう 1 つのアイデアは、クライアント キャッシングに OODB (db4o や VelocityDB など) を使用することでした。これは悪い考えですか?クライアントキャッシングの経験はありません。

回答と提案をありがとうございます。

よろしく、プロ

4

1 に答える 1

2

クライアント側でデータを保存する方法はあまり重要ではありません。ただし、目的のためにIsolatedStorageを調べます。さらに難しいのは、キャッシュがいつ古くなったかを判断することです。これは、実際に System.Runtime.Caching が得意とすることです。サーバーのデータはまったく変更されますか?それとも、アプリケーションの新しいリリース後にのみ変更されますか? 新しいリリース後にのみデータが変更される場合は、それをリソースとしてアプリケーションのセットアップに含めることができます。そうでない場合は、サーバー上の変更されたデータを確認する時間であることをクライアントに伝えるタイムアウトまたはシグナルが必要です。データの遅延読み込みを既に検討しましたか? そうすれば、おそらくアプリケーションの起動時に遅延がまったく発生せず、目立たなくなります。また、完全なデータをクライアントにロードする必要さえなくなるでしょう。

タイムアウトについて: 私たちのアプリケーションでは、最初に読み込まれたときに各参照リストに設定される固定のタイムアウトがあり、キャッシュから要求されるたびにそのタイムアウトがチェックされます。有効期限が切れている場合、リストが返される前にキャッシュが透過的に更新されます。クライアント側のデータはしばらくの間古くなる可能性があるため、これはトレードオフです。私たちの場合は重要ではなく、すべてのリストがそれ自体に責任を負い、外部からタイムアウトを設定するために各リストの状態を追跡する中央レジストリが必要ないため、これを受け入れます。

于 2012-10-03T07:36:17.567 に答える