Buforowanie w aplikacjach .NET Framework

Buforowanie umożliwia przechowywanie danych w pamięci w celu uzyskania szybkiego dostępu. Po ponownym korzystaniu z danych aplikacje mogą pobierać dane z pamięci podręcznej zamiast pobierać je z oryginalnego źródła. Może to zwiększyć wydajność i skalowalność. Ponadto buforowanie udostępnia dane, gdy źródło danych jest tymczasowo niedostępne.

Program .NET Framework udostępnia funkcje buforowania, których można użyć do poprawy wydajności i skalowalności aplikacji klienckich i serwerowych systemu Windows, w tym ASP.NET.

Uwaga

W programie .NET Framework 3.5 i starszych wersjach ASP.NET zapewnić implementację pamięci podręcznej w pamięci w System.Web.Caching przestrzeni nazw. W poprzednich wersjach programu .NET Framework buforowanie było dostępne tylko w System.Web przestrzeni nazw i w związku z tym wymagało zależności od klas ASP.NET. W programie .NET Framework 4 System.Runtime.Caching przestrzeń nazw zawiera interfejsy API przeznaczone zarówno dla aplikacji internetowych, jak i nienależących do sieci Web.

Buforowanie danych

Informacje o pamięci podręcznej można buforować przy użyciu klas w System.Runtime.Caching przestrzeni nazw. Klasy buforowania w tej przestrzeni nazw zapewniają następujące funkcje:

  • Typy abstrakcyjne, które stanowią podstawę do tworzenia niestandardowych implementacji pamięci podręcznej.

  • Konkretna implementacja pamięci podręcznej obiektów w pamięci.

Abstrakcyjna klasa buforowania podstawowego (ObjectCache) definiuje następujące zadania buforowania:

  • Tworzenie wpisów pamięci podręcznej i zarządzanie nimi.

  • Określanie informacji o wygaśnięciu i eksmisji.

  • Wyzwalanie zdarzeń zgłaszanych w odpowiedzi na zmiany w wpisach pamięci podręcznej.

Klasa MemoryCache jest implementacją ObjectCache pamięci podręcznej obiektów w pamięci klasy . Możesz użyć MemoryCache klasy dla większości zadań buforowania.

Uwaga

Klasa MemoryCache jest modelowana na obiekcie pamięci podręcznej ASP.NET zdefiniowanym System.Web.Caching w przestrzeni nazw. W związku z tym wewnętrzna logika buforowania podobna do logiki podanej we wcześniejszych wersjach ASP.NET.

Aby zapoznać się z przykładem użycia buforowania w aplikacji WPF, zobacz Przewodnik: Buforowanie dane aplikacji w aplikacji WPF.

Buforowanie w aplikacjach ASP.NET

Klasy buforowania w System.Runtime.Caching przestrzeni nazw zapewniają funkcjonalność buforowania danych w ASP.NET.

Uwaga

Jeśli aplikacja jest przeznaczona dla programu .NET Framework 3.5 lub starszego, należy użyć klas buforowania zdefiniowanych w System.Web.Caching przestrzeni nazw. Aby uzyskać więcej informacji, zobacz ASP.NET Buforowanie Omówienie.

Uwaga

Podczas tworzenia nowych aplikacji zalecamy użycie MemoryCache klasy . Interfejs API podany w System.Runtime.Caching przestrzeni nazw jest podobny do interfejsu API podanego Cache w przestrzeni nazw. W związku z tym interfejs API będzie znany, jeśli użyto buforowania we wcześniejszych wersjach ASP.NET. Aby zapoznać się z przykładem używania buforowania w aplikacjach ASP.NET, zobacz Przewodnik: Buforowanie dane aplikacji w ASP.NET.

Buforowanie danych wyjściowych

Aby ręcznie buforować dane aplikacji, możesz użyć MemoryCache klasy w ASP.NET. ASP.NET obsługuje również buforowanie danych wyjściowych, które przechowuje wygenerowane dane wyjściowe stron, kontrolek i odpowiedzi HTTP w pamięci. Buforowanie danych wyjściowych można skonfigurować deklaratywnie na stronie sieci Web ASP.NET lub przy użyciu ustawień w pliku Web.config. Aby uzyskać więcej informacji, zobacz outputCache, element do buforowania (ASP.NET Ustawienia Schema).

ASP.NET umożliwia rozszerzenie buforowania danych wyjściowych przez utworzenie niestandardowych dostawców wyjściowej pamięci podręcznej. Za pomocą dostawców niestandardowych można przechowywać zawartość w pamięci podręcznej przy użyciu innych urządzeń magazynujących, takich jak dyski, magazyn w chmurze i aparaty rozproszonej pamięci podręcznej. Aby utworzyć niestandardowego dostawcę wyjściowej pamięci podręcznej, należy utworzyć klasę pochodzącą z OutputCacheProvider klasy i skonfigurować aplikację do używania niestandardowego dostawcy wyjściowej pamięci podręcznej.

Buforowanie w usługach REST WCF

W przypadku usług REST WCF program .NET Framework umożliwia korzystanie z deklaratywnego buforowania danych wyjściowych, które jest dostępne w ASP.NET. Dzięki temu można buforować odpowiedzi z operacji usługi REST WCF. Gdy użytkownik wysyła żądanie HTTP GET do usługi skonfigurowanej do buforowania, ASP.NET wysyła z powrotem buforowane odpowiedzi, a metoda usługi nie jest wywoływana. Po wygaśnięciu pamięci podręcznej następnym razem, gdy użytkownik wyśle żądanie HTTP GET, metoda usługi zostanie wywołana i odpowiedź zostanie ponownie buforowana.

Program .NET Framework umożliwia również implementowanie warunkowego buforowania HTTP GET. W scenariuszach REST warunkowe żądanie HTTP GET jest często używane przez usługi do implementowania inteligentnego buforowania HTTP zgodnie ze specyfikacją HTTP. Aby uzyskać więcej informacji, zobacz Buforowanie Support for WCF Web HTTP Services (Obsługa internetowych usług HTTP WCF).

Rozszerzanie Buforowanie w programie .NET Framework

Buforowanie w programie .NET Framework jest przeznaczony do rozszerzania. Klasa ObjectCache umożliwia utworzenie niestandardowej implementacji pamięci podręcznej. Ta klasa udostępnia elementy członkowskie, które są dostępne dla wszystkich zarządzanych aplikacji, w tym Windows Forms, Windows Presentation Foundation (WPF) i Windows Communications Foundation (WCF). Można to zrobić, aby utworzyć klasę pamięci podręcznej korzystającą z innego mechanizmu magazynu lub jeśli chcesz uzyskać szczegółową kontrolę nad operacjami pamięci podręcznej.

Aby rozszerzyć buforowanie, można wykonać następujące czynności:

Aby uzyskać więcej informacji, zobacz wpis Extensible Output Buforowanie with ASP.NET 4 (VS 2010 and .NET Framework 4.0 Series) na blogu Scotta Guthrie'a.

Zobacz też