Caching in .NET Framework-AnwendungenCaching in .NET Framework Applications

Das Zwischenspeichern ermöglicht es Ihnen, Daten für schnellen Zugriff im Arbeitsspeicher zu speichern.Caching enables you to store data in memory for rapid access. Wenn erneut auf die Daten zugegriffen wird, erhalten Anwendungen die Daten aus dem Zwischenspeicher, anstatt sie aus der Originalquelle abzurufen.When the data is accessed again, applications can get the data from the cache instead of retrieving it from the original source. Dies kann die Leistung und Skalierbarkeit verbessern.This can improve performance and scalability. Darüber hinaus macht das Zwischenspeichern Daten verfügbar, wenn die Datenquelle vorübergehend nicht verfügbar ist.In addition, caching makes data available when the data source is temporarily unavailable.

.NET Framework bietet Funktionen zum Zwischenspeichern, die Sie verwenden können, um die Leistung und Skalierbarkeit von Windows Client- und Serveranwendungen, einschließlich ASP.NET, zu verbessern.The .NET Framework provides caching functionality that you can use to improve the performance and scalability of both Windows client and server applications, including ASP.NET.

Hinweis

In den .NET Framework 3,5 und früheren Versionen stellte ASP.net eine in-Memory-Cache Implementierung im System.Web.Caching-Namespace bereit.In the .NET Framework 3.5 and earlier versions, ASP.NET provided an in-memory cache implementation in the System.Web.Caching namespace. In früheren Versionen der .NET Framework war das Zwischenspeichern nur im System.Web-Namespace verfügbar und erforderte daher eine Abhängigkeit von ASP.NET-Klassen.In previous versions of the .NET Framework, caching was available only in the System.Web namespace and therefore required a dependency on ASP.NET classes. In .NET Framework 4 enthält der System.Runtime.Caching-Namespace APIs, die für Web- und nicht-Webanwendungen konzipiert sind.In the .NET Framework 4, the System.Runtime.Caching namespace contains APIs that are designed for both Web and non-Web applications.

Zwischenspeichern von DatenCaching Data

Sie können Informationen mithilfe von Klassen im System.Runtime.Caching-Namespace zwischenspeichern.You can cache information by using classes in the System.Runtime.Caching namespace. Die zwischenspeichernden Klassen in diesem Namespace stellen die folgenden Features zur Verfügung:The caching classes in this namespace provide the following features:

  • Abstrakte Typen, die die Grundlage für das Erstellen von benutzerdefinierten Cache-Implementierungen bereitstellen.Abstract types that provide the foundation for creating custom cache implementations.

  • Eine konkrete speicherinterne Cache-Implementierung von Objekten.A concrete in-memory object cache implementation.

Die abstrakte zwischenspeichernde Basisklasse (ObjectCache) definiert die folgenden zwischenspeichernden Aufgaben:The abstract base caching class (ObjectCache) defines the following caching tasks:

  • Erstellen und Verwalten von Cacheeinträgen.Creating and managing cache entries.

  • Angeben von Ablauf und Entfernung von Informationen.Specifying expiration and eviction information.

  • Auslösen von Ereignissen, die als Reaktion auf Änderungen in Cacheeinträgen ausgelöst werden.Triggering events that are raised in response to changes in cache entries.

Die MemoryCache-Klasse ist eine speicherinterne Cache-Implementierung eines Objekts der ObjectCache-Klasse.The MemoryCache class is an in-memory object cache implementation of the ObjectCache class. Sie können die MemoryCache-Klasse für die meisten Cachingaufgaben verwenden.You can use the MemoryCache class for most caching tasks.

Hinweis

Die MemoryCache-Klasse wird für das ASP.NET-Cacheobjekt modelliert, das im System.Web.Caching-Namespace definiert wird.The MemoryCache class is modeled on the ASP.NET cache object that is defined in the System.Web.Caching namespace. Aus diesem Grund ist die interne Cachinglogik mit der Logik vergleichbar, die in früheren Versionen von ASP.NET bereitgestellt wurde.Therefore, the internal caching logic similar to the logic that was provided in earlier versions of ASP.NET.

Ein Beispiel zum Verwenden der Zwischenspeicherung in WPF-Anwendungen finden Sie unter Exemplarische Vorgehensweise: Zwischenspeichern von Anwendungsdaten in einer WPF-Anwendung.For an example of how to use to caching in a WPF application, see Walkthrough: Caching Application Data in a WPF Application.

Zwischenspeichern in ASP.NET-AnwendungenCaching in ASP.NET Applications

Die zwischenspeichernden Klassen im System.Runtime.Caching-Namespace bieten Funktionen zum Zwischenspeichern von Daten in ASP.NET.The caching classes in the System.Runtime.Caching namespace provide functionality for caching data in ASP.NET.

Hinweis

Wenn die Anwendung auf den .NET Framework 3,5 oder eine frühere Version abzielt, müssen Sie die zwischen Speicherungs Klassen verwenden, die im System.Web.Caching-Namespace definiert sind.If your application targets the .NET Framework 3.5 or earlier, you must use the caching classes that are defined in the System.Web.Caching namespace. Weitere Informationen finden Sie unter Übersicht über die ASP.NET-Zwischenspeicherung.For more information, see ASP.NET Caching Overview.

Hinweis

Wenn Sie neue Anwendungen entwickeln, empfehlen wir die Verwendung der MemoryCache-Klasse.When you develop new applications, we recommend that you use the MemoryCache class. Die API, die im System.Runtime.Caching-Namespace bereitgestellt wird, ist wie die API, die im Cache-Namespace bereitgestellt wird.The API that is provided in the System.Runtime.Caching namespace is like the API that is provided in the Cache namespace. Aus diesem Grund wird Ihnen die API vertraut sein, wenn Sie den Zwischenspeicher bereits in früheren Versionen von ASP.NET verwendet haben.Therefore, the API will be familiar if you used caching in earlier versions of ASP.NET. Ein Beispiel zum Verwenden der Zwischenspeicherung in ASP.NET-Anwendungen finden Sie unter Exemplarische Vorgehensweise: Zwischenspeichern von Anwendungsdaten in ASP.NET.For an example of how to use caching in ASP.NET applications, see Walkthrough: Caching Application Data in ASP.NET.

AusgabezwischenspeicherungOutput Caching

Sie können die MemoryCache-Klasse in ASP.NET verwenden, um manuell Anwendungsdaten zwischenzuspeichern.To manually cache application data, you can use the MemoryCache class in ASP.NET. ASP.NET unterstützt auch das Zwischenspeichern der Ausgabe, das die generierte Ausgabe von Seiten, Steuerelementen und HTTP-Antworten im Arbeitsspeicher speichert.ASP.NET also supports output caching, which stores the generated output of pages, controls, and HTTP responses in memory. Sie können das Zwischenspeichern der Ausgabe deklarativ in einer ASP.NET-Webseite oder mithilfe von Einstellungen in der Datei „Web.config“ konfigurieren.You can configure output caching declaratively in an ASP.NET Web page or by using settings in the Web.config file. Weitere Information finden Sie unter OutputCache-Element für Caching (ASP.NET-Einstellungsschema).For more information, see outputCache Element for caching (ASP.NET Settings Schema).

Mit ASP.NET können Sie das Zwischenspeichern der Ausgabe durch das Erstellen von benutzerdefinierten Ausgabecacheanbietern erweitern.ASP.NET lets you extend output caching by creating custom output-cache providers. Indem Sie benutzerdefinierte Anbieter verwenden, können Sie zwischengespeicherte Inhalte mit anderen Speichergeräten wie Festplatten, Cloudspeichern und verteilter Cache-Engines speichern.By using custom providers, you can store cached content using other storage devices such as disks, cloud storage, and distributed cache engines. Erstellen Sie eine Klasse, die aus der OutputCacheProvider-Klasse abgeleitet ist, und konfigurieren Sie die Anwendung zur Verwendung des benutzerdefinierten Ausgabecacheanbieters, um einen benutzerdefinierten Ausgabecacheanbieter zu erstellen.To create a custom output cache provider, you create a class that derives from the OutputCacheProvider class and configure the application to use the custom output cache provider.

Zwischenspeichern in WCF REST-DienstenCaching in WCF REST Services

Durch .NET Framework können Sie für WCF REST-Dienste den deklarativen Ausgabecache nutzen, der nicht in ASP.NET verfügbar ist.For WCF REST services, the .NET Framework enables you to take advantage of the declarative output caching that is available in ASP.NET. Auf diese Weise können Sie Antworten der WCF REST-Dienstvorgänge zwischenspeichern.This enables you to cache responses from your WCF REST service operations. Wenn ein Benutzer eine HTTP GET-Anforderung an den Dienst sendet, der zum Zwischenspeichern konfiguriert ist, sendet ASP.NET die zwischengespeicherte Antwort zurück, und die Dienstmethode wird nicht aufgerufen.When a user sends an HTTP GET request to a service that is configured for caching, ASP.NET sends back the cached response, and the service method is not called. Wenn der Cache abgelaufen ist, wird beim nächsten Senden einer HTTP GET-Anforderung durch einen Benutzer die Dienstmethode aufgerufen und die Antwort erneut zwischengespeichert.After the cache expires, the next time that a user sends an HTTP GET request, your service method is called and the response is again cached.

Mit .NET Framework können Sie auch den bedingten HTTP GET-Zwischenspeicher implementieren.The .NET Framework also enables you to implement conditional HTTP GET caching. In REST-Szenarios wird eine bedingte HTTP GET-Anforderung häufig von Diensten verwendet, um die intelligente HTTP-Zwischenspeicherung zu implementieren. Dies ist in der HTTP-Spezifikation beschrieben.In REST scenarios, a conditional HTTP GET request is often used by services to implement intelligent HTTP caching as described in the HTTP Specification. Weitere Information finden Sie unter Cacheunterstützung für WCF-Web-HTTP-Dienste.For more information, see Caching Support for WCF Web HTTP Services.

Erweitern von Caching in .NET FrameworkExtending Caching in the .NET Framework

Die Zwischenspeicherung in .NET Framework ist erweiterbar.Caching in the .NET Framework is designed to be extensible. Mit der ObjectCache-Klasse können Sie eine benutzerdefinierte Cacheimplementierung erstellen.The ObjectCache class enables you to create a custom cache implementation. Diese Klasse enthält Elemente, die auf allen verwalteten Anwendungen, einschließlich Windows Forms, Windows Presentation Foundation (WPF) und Windows Communications Foundation (WCF), verfügbar sind.This class provides members that are available to all managed applications, including Windows Forms, Windows Presentation Foundation (WPF), and Windows Communications Foundation (WCF). Sie können dies vornehmen, um eine Cacheklasse zu erstellen, die einen anderen Speichermechanismus verwendet, oder wenn Sie eine präzise Kontrolle über Cachevorgänge erhalten möchten.You might do this in order to create a cache class that uses a different storage mechanism, or if you want granular control over cache operations.

Zur Erweiterung der Zwischenspeicherung können Sie Folgendes tun:To extend caching you can do the following:

Weitere Informationen finden Sie im Eintrag Extensible Output Caching with ASP.NET 4 (VS 2010 and .NET 4.0 Series) (Erweiterbare Ausgabezwischenspeicherung in ASP.NET 4 (VS 2010 und .NET 4.0-Serie)) auf Scott Guthries Blog.For more information, see the entry Extensible Output Caching with ASP.NET 4 (VS 2010 and .NET 4.0 Series) on Scott Guthrie's blog.

Siehe auchSee also