1

作成した一般的なビジネス オブジェクトを使用する ASP.net アプリケーションがあります。これらのビジネス オブジェクトは、他のいくつかの Windows サービスまたはコンソール アプリケーションでも使用されます。

私が直面している問題は、クラス「foo」とクラス「bar」があり、それぞれに関数 loadClient() がある場合、foo.loadClient() と bar.loadClient() を呼び出すと、各リクエストがヒットすることです。データベース。ある種のキャッシュを実装すると、DB への不要なラウンドトリップが減ると思います。

これがキャッチです。ASP.net アプリで受信する各 HTTP 要求に固有のキャッシュが必要です。つまり、新しいリクエストはまったく新しいキャッシュを取得します。それらの 90% はユーティリティであるため、キャッシュは他のコンソール アプリケーションの存続期間にわたって存在できます。

System.Web.Cache を使用できることはわかっていますが、ミドルウェアを System.Web ライブラリに結び付けたくありません。

それがそれを説明することを願っています。誰かが私を正しい方向に向けることができますか? ありがとう!

4

4 に答える 4

1

リクエストの存続期間中にオブジェクトを再利用していますか? そうでない場合、モデルは、ポストバックごとに新しいオブジェクトのセットも作成し、キャッシュの必要性を排除することを示唆しています。通常、オブジェクトがリクエスト間で共有されている場合、キャッシュは価値があります

非 Web 固有のキャッシュ ソリューションを使用する限り、Microsoft Caching Application Block は非常に堅牢で使いやすいことがわかりました。

于 2009-09-25T06:23:27.720 に答える
1

Velocity プロジェクトで略奪できると思います。

http://msdn.microsoft.com/en-us/data/cc655792.aspx - 簡単な記事があります

于 2009-09-25T08:12:49.183 に答える
0

Microsoft は、System.Web.Caching の代わりに System.Runtime.Caching.MemoryCache を推奨しています。これは、Abhijeet Patel によって提案された MS Caching Application Block のコンテキストで使用できます。

見る:

于 2016-01-28T16:48:19.407 に答える
0

プロセス間キャッシュを探している場合、それは困難です。

ただし、ミドルウェアを System.Web に関連付けたくない場合は、ミドルウェアと system.web の間のブリッジとして機能する 1 つのインターフェイス ライブラリを作成できます。

将来、それを他のキャッシュマネージャーに結び付けたい場合は、ブリッジインターフェイスライブラリを書き直して、ミドルウェアを実際のキャッシュマネージャーから完全に独立させます。

于 2009-09-25T06:19:55.980 に答える