Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Кэширование позволяет хранить данные в памяти для быстрого доступа. При повторном доступе к данным приложения могут получать данные из кэша, а не извлекать их из исходного источника. Это может повысить производительность и масштабируемость. Кроме того, кэширование делает данные доступными при временной недоступности источника данных.
Платформа .NET Framework предоставляет функции кэширования, которые можно использовать для повышения производительности и масштабируемости клиентских и серверных приложений Windows, включая ASP.NET.
Замечание
В .NET Framework 3.5 и более ранних версиях ASP.NET предоставлял реализацию кэша в памяти в пространстве имен System.Web.Caching. В предыдущих версиях .NET Framework кэширование было доступно только в пространстве имен System.Web и, следовательно, требуется зависимость от классов ASP.NET. В .NET Framework 4 System.Runtime.Caching пространство имен содержит API, предназначенные для Веб-приложений и не Веб-приложений.
Кэширование данных
Сведения можно кэшировать с помощью классов в System.Runtime.Caching пространстве имен. Классы кэширования в этом пространстве имен предоставляют следующие функции:
Абстрактные типы, предоставляющие основу для создания пользовательских реализаций кэша.
Реализация конкретного кэша объектов в памяти.
Абстрактный базовый класс кэширования (ObjectCache) определяет следующие задачи кэширования:
Создание записей кэша и управление ими.
Указание сведений об истечении срока действия и удаления.
Активация событий, создаваемых в ответ на изменения записей кэша.
Класс MemoryCache — это реализация кэша объектов класса ObjectCache в памяти. Вы можете использовать класс MemoryCache для большинства задач кэширования.
Замечание
Класс MemoryCache моделируется по объекту кэша ASP.NET, определенному в пространстве имен System.Web.Caching. Таким образом, внутренняя логика кэширования аналогична логике, предоставленной в более ранних версиях ASP.NET.
Пример использования кэширования в приложении WPF см. в пошаговом руководстве. Кэширование данных приложения в приложении WPF.
Кэширование в приложениях ASP.NET
Классы кэширования в System.Runtime.Caching пространстве имен предоставляют функциональные возможности кэширования данных в ASP.NET.
Замечание
Если ваше приложение предназначено для .NET Framework 3.5 или более старой версии, необходимо использовать классы кэширования, определенные в пространстве имен System.Web.Caching. Дополнительные сведения см. в разделе ASP.NET Обзор кэширования.
Замечание
При разработке новых приложений рекомендуется использовать MemoryCache класс. API, предоставляемый в пространстве имен System.Runtime.Caching, похож на API, предоставляемый в пространстве имен Cache. Поэтому API будет знаком, если вы использовали кэширование в более ранних версиях ASP.NET. Пример использования кэширования в приложениях ASP.NET см. в пошаговом руководстве. Кэширование данных приложения в ASP.NET.
Кэширование выходных данных
Чтобы вручную кэшировать данные приложения, можно использовать MemoryCache класс в ASP.NET. ASP.NET также поддерживает кэширование выходных данных, в которых хранятся созданные выходные данные страниц, элементов управления и HTTP-ответов в памяти. Вы можете настроить кэширование выходных данных декларативно на веб-странице ASP.NET или с помощью параметров в файле Web.config. Дополнительные сведения см. в разделе outputCache Element для кэширования (схема параметров ASP.NET).
ASP.NET позволяет расширить кэширование выходных данных путем создания пользовательских поставщиков кэша выходных данных. С помощью настраиваемых поставщиков можно хранить кэшированное содержимое с помощью других устройств хранения, таких как диски, облачное хранилище и подсистемы распределенного кэша. Чтобы создать поставщик пользовательского кэша выходных данных, создайте класс, производный от OutputCacheProvider класса, и настройте приложение для использования поставщика пользовательского кэша выходных данных.
Кэширование в службах REST WCF
Для служб REST WCF платформа .NET Framework позволяет использовать декларативное кэширование выходных данных, доступное в ASP.NET. Это позволяет кэшировать ответы из операций службы REST WCF. Когда пользователь отправляет HTTP-запрос GET в службу, настроенную для кэширования, ASP.NET отправляет кэшированный ответ, а метод службы не вызывается. После истечения срока действия кэша в следующий раз, когда пользователь отправляет HTTP-запрос GET, вызывается метод службы, а ответ снова кэшируется.
Платформа .NET Framework также позволяет реализовать условное кэширование HTTP GET. В сценариях REST условный HTTP-запрос GET часто используется службами для реализации интеллектуального кэширования HTTP, как описано в спецификации HTTP. Дополнительные сведения см. в разделе "Поддержка кэширования для веб-служб WCF Web HTTP".
Расширение кэширования в .NET Framework
Кэширование в .NET Framework предназначено для расширения. Класс ObjectCache позволяет создать пользовательскую реализацию кэша. Этот класс предоставляет элементы, доступные всем управляемым приложениям, включая Windows Forms, Windows Presentation Foundation (WPF) и Windows Communications Foundation (WCF). Это можно сделать для создания класса кэша, использующего другой механизм хранения, или, если требуется детализированный контроль над операциями кэша.
Чтобы расширить кэширование, можно выполнить следующее:
Создайте пользовательский класс, производный от ObjectCache класса, а затем предоставьте производную реализацию кэша в производном классе.
Создайте класс, производный от MemoryCache класса, и настройте или расширьте производный класс. Пример этого см. в разделе Кэширование данных приложения с помощью нескольких объектов кэша в приложении ASP.NET.
Создайте класс, производный от OutputCacheProvider класса, и настройте приложение для использования поставщика пользовательского кэша выходных данных.
Дополнительные сведения см. в записи Расширяемый кэширование выходных данных с помощью ASP.NET 4 (VS 2010 и .NET Framework 4.0 серии) в блоге Скотта Гатри.