Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 / Notatka
W programie .NET Framework 3.5 i wcześniejszych wersjach ASP.NET dostarczał implementację pamięci podręcznej w pamięci w przestrzeni nazw System.Web.Caching. 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 można przechowywać w pamięci podręcznej 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ą pamięci podręcznej obiektów w pamięci dla klasy ObjectCache. Możesz użyć MemoryCache klasy dla większości zadań buforowania.
Uwaga / Notatka
Klasa MemoryCache jest wzorowana na obiekcie pamięci podręcznej ASP.NET zdefiniowanym w przestrzeni nazw System.Web.Caching. Dlatego istnieje wewnętrzna logika buforowania, podobna do logiki stosowanej we wcześniejszych wersjach ASP.NET.
Aby zapoznać się z przykładem użycia buforowania w aplikacji WPF, zobacz Przewodnik: buforowanie danych 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 / Notatka
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 omówienie buforowania ASP.NET.
Uwaga / Notatka
Podczas tworzenia nowych aplikacji zalecamy użycie MemoryCache klasy . Interfejs API podany w przestrzeni nazw System.Runtime.Caching jest podobny do interfejsu API podanego w przestrzeni nazw Cache. Dlatego interfejs API będzie ci znany, jeśli używałeś buforowania we wcześniejszych wersjach ASP.NET. Aby zapoznać się z przykładem użycia buforowania w aplikacjach ASP.NET, zobacz Przewodnik: buforowanie danych 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 (schemat ustawień ASP.NET).
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, korzystając z innych urządzeń magazynujących, takich jak dyski, magazyny w chmurze i silniki 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 Obsługa buforowania dla internetowych usług HTTP WCF.
Rozszerzanie buforowania w programie .NET Framework
Buforowanie w programie .NET Framework zostało zaprojektowane tak, aby było rozszerzalne. Klasa ObjectCache umożliwia utworzenie niestandardowej implementacji pamięci podręcznej. Ta klasa udostępnia członków, którzy są dostępni 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 zwiększyć efektywność buforowania, można wykonać następujące czynności:
Utwórz klasę niestandardową, która pochodzi z ObjectCache klasy, a następnie podaj niestandardową implementację pamięci podręcznej w klasie pochodnej.
Utwórz klasę, która pochodzi z MemoryCache klasy i dostosuj lub rozszerz klasę pochodną. Aby zapoznać się z przykładem tego działania, zobacz Buforowanie danych aplikacji przy użyciu wielu obiektów pamięci podręcznej w aplikacji ASP.NET.
Utwórz klasę pochodzącą z OutputCacheProvider klasy i skonfiguruj aplikację tak, aby korzystała z niestandardowego dostawcy wyjściowej pamięci podręcznej.
Aby uzyskać więcej informacji, zobacz wpis Extensible Output Caching with ASP.NET 4 (VS 2010 and .NET Framework 4.0 Series) na blogu Scotta Guthrie'a.