В то время как другие упоминали встроенный ASP.NET Cache (System.Web.Caching), обратите внимание, что .NET 4.0 представляет совершенно новую инфраструктуру кэширования, предназначенную для работы вне пространства имен System.Web.Caching:
System.Runtime.Caching
http://msdn.microsoft.com/en-us/library/system.runtime.caching(VS.100).aspx
Теперь, это гораздо больше зверя, чем простой элемент кэша System.Web.Caching. Но вы получаете преимущество, заключающееся в том, что у вас есть несколько хранилищ кэша, блокировка объектов / ключей кэша и возможности расширения для создания собственных поставщиков внешнего кэша, например, для новой распределенной системы кэширования Microsoft от Microsoft. Он поставляется со встроенным поставщиком MemoryCache.
Это действительно не так сложно использовать. Прямо из статьи MSDN о встроенном провайдере MemoryCache (опять же, вы можете реализовать свой собственный), используя его в приложении WinForms (вы измените код для своего веб-приложения):
http://msdn.microsoft.com/en-us/library/system.runtime.caching.memorycache.aspx
ObjectCache cache = MemoryCache.Default;
string fileContents = cache["filecontents"] as string;
if (fileContents == null)
{
CacheItemPolicy policy = new CacheItemPolicy();
List<string> filePaths = new List<string>();
filePaths.Add("c:\\cache\\example.txt");
policy.ChangeMonitors.Add(new
HostFileChangeMonitor(filePaths));
// Fetch the file contents.
fileContents =
File.ReadAllText("c:\\cache\\example.txt");
cache.Set("filecontents", fileContents, policy);
}
Label1.Text = fileContents;
Я реализовал NCache (упомянутый выше), а также Memcached. Я могу вам сказать, что Microsoft Velocity - это действительно способ разделения данных и установки избыточности внутри самих разделов кэша (очень круто). Не говоря уже о том, что это бесплатно!