HttpRuntime.Cache предоставляет только несколько методов, и я думаю, что могу
реализовать эти методы с помощью словаря самостоятельно.
Ты ошибаешься. HttpRuntime.Cache - это гораздо больше, чем просто словарь. Он предлагает политики безопасности потока и срока действия кэша. Он предоставляет возможности использования пользовательской реализации и преимущества распределенного кэширования, что полезно в веб-фермах. Реализация этого с помощью словарей может быть большой работой, в которую вы, вероятно, не захотите рисковать, поскольку вы будете в основном изобретать колеса, и даже если изобретать колеса не мешает вам, шансы на то, чтобы это сделать правильно, невелики.
2) Если HttpRuntime.Cache намного лучше, чем Dictionary, почему некоторые люди
хотел бы реализовать свою собственную структуру кэша.
Люди не хотят этого делать.
3) Как насчет MS Enterprise Cache Block?
Это тяжелая артиллерия, которая не всегда необходима, когда вам нужно простое кеширование, которое может быть достигнуто с помощью того, что фреймворк уже предоставляет вам из коробки.
Примечание: в .NET 4.0 вы должны использовать новое System.Runtime.Caching пространство имен вместо HttpRuntime.Cache
.
Итак, чтобы ответить на ваш вопрос: Should I use HttpRuntime.Cache
Да, если только вы не используете .NET 4.0, в этом случае вам следует использовать классы из нового пространства имен System.Runtime.Caching
.