Caching in .NET Framework-Anwendungen

Mithilfe der Zwischenspeicherung können Daten für einen schnellen Zugriff im Arbeitsspeicher abgelegt werden. Wenn wiederholt auf die Daten zugegriffen wird, können Anwendungen die Daten aus dem Cache anstatt aus der ursprünglichen Quelle abrufen. Dadurch kann die Leistung und Skalierbarkeit verbessert werden. Zudem bietet die Zwischenspeicherung den Vorteil, dass Daten auch zur Verfügung stehen, wenn die Datenquelle vorübergehend nicht verfügbar ist.

Das .NET Framework stellt Funktionen für die Zwischenspeicherung bereit, die Sie verwenden können, um die Leistung und die Skalierbarkeit von Windows-Clients und Serveranwendungen zu verbessern. Dies schließt auch ASP.NET-Anwendungen mit ein.

Hinweis Hinweis

Im .NET Framework 3.5 und früheren Versionen hat ASP.NET eine in-Memory Cacheimplementierung im Arbeitsspeicher im System.Web.Caching-Namespace bereitgestellt. In früheren Versionen des .NET Frameworks war das Zwischenspeichern nur im System.Web-Namespace verfügbar und erforderte daher eine Abhängigkeit von ASP.NET-Klassen. Im .NET Framework 4 enthält der System.Runtime.Caching-Namespace APIs, die für Web- und für Nicht-Webanwendungen geeignet sind.

Der System.Runtime.Caching-Namespace enthält Klassen, die Ihnen beim Zwischenspeichern von Informationen helfen. Die Klassen für die Zwischenspeicherung in diesem Namespace stellen folgende Funktionen bereit:

  • Abstrakte Typen, die die Grundlage für das Erstellen benutzerdefinierter Cacheimplementierungen bilden.

  • Eine konkrete Implementierung eines Objekt-Caches im Arbeitsspeicher.

Die abstrakte Basisklasse für die Zwischenspeicherung (ObjectCache) definiert die folgenden Aufgaben für die Zwischenspeicherung:

  • Erstellen und Verwalten von Cacheeinträgen.

  • Angeben von Laufzeit- und Entfernungsinformationen.

  • Initiieren von Ereignissen, die als Reaktion auf Änderungen in den Cacheeinträgen ausgelöst werden.

Die MemoryCache-Klasse ist eine Objektcacheimplementierung im Speicher der ObjectCache-Klasse. Sie können die MemoryCache-Klasse für die meisten Aufgaben der Zwischenspeicherung verwenden.

Hinweis Hinweis

Die MemoryCache-Klasse ist dem ASP.NET-Cacheobjekt nachempfunden, welches im System.Web.Caching-Namespace definiert ist. Daher ist die interne Logik mit der Zwischenspeicherungslogik vergleichbar, die in früheren Versionen von ASP.NET bereitgestellt wurde.

Ein Beispiel zum Verwenden der Zwischenspeicherung in einer WPF-Anwendung finden Sie unter Exemplarische Vorgehensweise: Zwischenspeichern von Anwendungsdaten in einer WPF-Anwendung.

Die Zwischenspeicherungsklassen im System.Runtime.Caching-Namespace stellen Funktionen zum Zwischenspeichern von Daten in ASP.NET bereit.

Hinweis Hinweis

Wenn Ihre Anwendung mit dem .NET Framework 3.5 oder einer älteren Version entwickelt wurde, müssen Sie die Zwischenspeicherungsklassen aus dem System.Web.Caching-Namespace verwenden. Weitere Informationen finden Sie unter ASP.NET Caching Overview.

Hinweis Hinweis

Wenn Sie neue Anwendungen entwickeln, empfohlen wir die Verwendung der MemoryCache-Klasse. Die API, die im System.Runtime.Caching-Namespace bereitgestellt wird, gleicht der API im Cache-Namespace. Daher wird Ihnen die API vertraut sein, wenn Sie die Zwischenspeicherung bereits in früheren Versionen von ASP.NET verwendet haben. Ein Beispiel zur Verwendung der Zwischenspeicherung in ASP.NET-Anwendungen finden Sie unter Walkthrough: Caching Application Data in ASP.NET.

Dd997357.collapse_all(de-de,VS.110).gifAusgabecache

Um manuell Anwendungsdaten zwischenzuspeichern, können Sie die MemoryCache-Klasse in ASP.NET verwenden. ASP.NET unterstützt auch die Ausgabezwischenspeicherung, die die generierte Ausgabe von Seiten, Steuerelementen und HTTP-Antworten im Arbeitsspeicher ablegt. Sie können die Ausgabezwischenspeicherung deklarativ auf einer ASP.NET-Webseite oder über die Einstellungen in der Datei Web.config konfigurieren. Weitere Informationen finden Sie unter outputCache-Element für caching (ASP.NET-Einstellungsschema).

Mit ASP.NET können Sie die Ausgabezwischenspeicherung erweitern, indem sie benutzerdefinierte Ausgabecacheanbieter erstellen. Wenn Sie benutzerdefinierte Anbieter verwenden, können Sie die zwischengespeicherten Inhalte auf anderen Speichergeräten wie z.B. auf Festplatten, in einem Cloud-Speicher oder mithilfe verteilter Cachemodule speichern. Um einen benutzerdefinierten Ausgabecacheanbieter zu implementieren, leiten Sie eine eigene Klasse von der OutputCacheProvider-Klasse ab und konfigurieren Sie die Anwendung so, dass sie diese neue Klasse verwendet.

Bei WCF REST-Diensten können Sie mit dem .NET Framework die Vorteile der deklarativen Ausgabezwischenspeicherung nutzen, die in ASP.NET verfügbar ist. Auf diese Weise können Sie Antworten der WCF REST-Dienstvorgänge zwischenspeichern. Wenn ein Benutzer eine HTTP GET-Anforderung an einen Dienst sendet, der für eine Zwischenspeicherung konfiguriert ist, sendet ASP.NET die zwischengespeicherte Antwort zurück, und die Dienstmethode wird nicht aufgerufen. Wenn ein Benutzer das nächste Mal eine HTTP GET-Anforderung sendet Sobald der Cache abgelaufen ist, wird die Dienstmethode erneut aufgerufen und die Antwort erneut zwischengespeichert.

Mit dem .NET Framework können Sie auch eine bedingte HTTP GET-Zwischenspeicherung implementieren. In REST-Szenarien werden bedingte HTTP GET-Anforderungen häufig von Diensten verwendet, die intelligente HTTP-Zwischenspeicherungen implementieren, wie sie in der HTTP-Spezifikation beschrieben sind. Weitere Informationen finden Sie unter Zwischenspeichern der Unterstützung für WCF-Web-HTTP Dienste.

Die Zwischenspeicherung im .NET Framework wurde so entworfen, dass sie erweitert werden kann. Die ObjectCache-Klasse ermöglicht die Erstellung einer benutzerdefinierte Cacheimplementierung. Diese Klasse stellt Member bereit, die für alle verwalteten Anwendungen verfügbar sind, einschließlich Windows Forms, Windows Presentation Foundation (WPF) und Windows Communications Foundation (WCF). Möglicherweise möchten Sie eine Cacheklasse erstellen, die einen anderen Speichermechanismus verwendet oder eine präzise Kontrolle der Cachevorgänge gestattet.

Zum Erweitern der Zwischenspeicherung können Sie wie folgt vorgehen:

Weitere Informationen finden Sie im Eintrag Erweiterbares Ausgabecaching mit ASP.NET 4 (In VS 2010 und .NET 4.0-Reihe) in Scotts Guthrie's Blog.

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft