web-dev-qa-db-ja.com

HttpRuntime.Cacheを使用する必要がありますか?

私はasp.netの初心者であり、キャッシュについていくつか質問があります。

  1. HttpRuntime.Cacheはいくつかのメソッドのみを提供し、私はこれらのメソッドを自分でディクショナリで実装できると思います。
  2. HttpRuntime.CacheがDictionaryよりもはるかに優れている場合、なぜ一部の人々は独自のキャッシュフレームワークを実装したいのでしょうか。
  3. MS Enterprise Cache Blockはどうですか?
32
Domi.Zhang

HttpRuntime.Cacheはいくつかのメソッドのみを提供し、私はこれらのメソッドを自分でディクショナリで実装できると思います。

あなたは間違っていると思います。 HttpRuntime.Cacheは、単なる辞書ではありません。スレッドセーフとキャッシュの有効期限ポリシーを提供します。これは、カスタム実装を使用する可能性を提供し、Webファームで役立つ分散キャッシュの利点を提供します。これをディクショナリで実装することは、基本的にはホイールを再発明することになるし、ホイールを再発明しても問題が解決されないため、ベンチャーしたくない多くの作業になる可能性があります。

2)HttpRuntime.Cacheがディクショナリよりもはるかに優れている場合、なぜ一部の人々は独自のキャッシュフレームワークを実装したいのでしょうか。

人々はそれをしたくないでしょう。

3)MS Enterprise Cache Blockはどうですか?

これは重い砲であり、フレームワークがすでに提供している機能で実現できる単純なキャッシュが必要な場合は、必ずしも必要ではありません。

備考:.NET 4.0では、HttpRuntime.Cacheではなく、新しい System.Runtime.Caching 名前空間を使用する必要があります。

だからあなたの質問に答えるには:Should I use HttpRuntime.Cache

はい。NET4.0を使用している場合を除き、新しいSystem.Runtime.Caching名前空間のクラスを使用する必要があります。

86
Darin Dimitrov