1. 程式人生 > >.NET應用框架:快取

.NET應用框架:快取

原文地址 快取使得你可以快速的獲取記憶體中儲存的資料。當再次訪問資料的時候,應用程式將從快取中獲取資料,而不是從資料的原始源獲取。這樣操作可以提高系統的效能和擴充套件性。此外,當資料來源臨時不可用的時候,快取使得資料還是可用的。 你可以用.NET提供的快取功能提高應用的效能和擴充套件性,快取功能可以在windows客戶端應用中使用,也可以在ASP.NET這種服務端應用中使用。

Note

在.NET Framework3.5和更早的版本中,ASP.NET提供了一個記憶體快取的實現,放在System.Web.Caching名稱空間下。所以在之前版本的.NET框架中,快取只能通過System.Web名稱空間獲取,因此需要依賴一個ASP.NET類。在.NET Framwork4中,在System.Runtime.Caching名稱空間下的快取介面,Web應用和非Web應用都可以使用。

Caching Data 你可以使用System.Runtime.Caching名稱空間下的類快取資料。提供了下面的功能: 提供了一些抽象的型別,你可以繼承這些抽象的型別,實現自己的快取。 一個具體的實現好的記憶體快取。 抽象基類提供了下面的功能:
  • 建立並管理快取。
  • 指定過期和收回。
  • 在快取資訊改變的時候觸發事件。
MemoryCache類是一個實現ObjectCache類的記憶體快取,你可以用它來完成大部分的工作。 MemoryCache類的原型定義在System.Web.Caching空間中的ASP.NET快取物件,因此,內部的快取邏輯和早期的ASP.NET提供的快取邏輯很相似。 在ASP.NET應用中使用快取 使用System.Runtime.Caching中提供的快取類可以給ASP.NET應用提供快取功能。

Note

如果你的ASP.NET應用是以.NET 3.5或者更早的版本為基礎,你必須使用System.Web.Caching空間下的快取類。

如果你是開發一個新的應用,推薦使用MemoryCache類。因為System.Runtime.Caching空間提供的介面和System.Web.Caching空間提供的介面很相似,如果你使用過早期版本的ASP.NET的話,你會感覺很親切。 輸出快取 需要手動快取應用中的資料,你可以在ASP.NET中使用MemoryCache類。ASP.NET也支援輸出快取,在記憶體中儲存已經生成的頁面、控制元件和http響應。你可以在ASP.NET頁面中配置輸出快取,也可以在web.config中配置。 ASP.NET也允許你通過建立自定義輸出快取provider來擴充套件輸出快取。在自定義的provider中,你可以使用其他儲存裝置,例如:磁碟,雲端儲存,分散式快取,來儲存輸出快取的內容。 建立自定義provider,你需要繼承OutputCacheProvider類,並且在web.config中配置使用你自定義的provider。 擴充套件.NET Framework中的快取
.NET Framework中的快取被設計成可擴充套件的。ObjectCache類使得你可以建立自己的快取實現。這個類提供了一些所有託管應用,例如:windows froms,wpf,wcp,都可用的成員。你可以建立自己的快取,提供一個不同的儲存機制,或者是你想要更小粒度的控制快取的操作。 可以通過下面的方式實現一個自定義快取:

參考文獻