首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

Enterprise Library 實戰系列(九):快取應用程式區塊——入門篇

     編輯:關於.NET

前言

本系列第九篇,感謝讀者支持與建議。本系列著重入門指引,後續將補充類別設計與總結篇。

一、快取區塊概述

提供方便、可擴展的快取機制,支援記憶體快取與後端儲存(資料存取區塊或 Isolated Storage)。無需修改即可使用,內建可配置過期與清除策略。

解決的問題

  • 效能:資料貼近使用者,避免重複建立/傳輸
  • 擴展性:節省資源,提升系統承載
  • 可用性:本地快取可容忍網路/硬體故障

適用情境

  • 頻繁存取靜態或極少變動資料
  • 資料建立/存取/傳輸成本高
  • 來源不可用時仍需資料可用

支援應用類型

WinForms、Console、Windows Service、Enterprise Services、ASP.NET Web App/Web Service。每個應用程式域獨擁快取,不可跨域共用。執行緒安全、異常安全、可擴展。

二、快取儲存類型

  • 記憶體駐留:資料量小、頻繁存取、需極高速度
  • 磁碟駐留:資料量大、重新取得成本高、需跨進程重啟保留

三、使用三步驟

1. 組態工具建立快取區塊

Cache Manager 參數

關鍵參數:

  • ExpirationPollFrequencyInSeconds:過期輪詢頻率(建議用效能計數器調優)
  • MaximumElementsInCacheBeforeScavenging:最大項目數
  • NumberToRemoveWhenScavenging:每次清除數量

2. 建立 Isolated Storage 快取

Isolated Storage

3. 複製組態檔

copy "$(ProjectDir)\*.config" "$(TargetDir)"

4. 加入參考

using Microsoft.Practices.EnterpriseLibrary.Caching;
using Microsoft.Practices.EnterpriseLibrary.Caching.Expirations;
using Microsoft.Practices.EnterpriseLibrary.Data;

5. 新增快取項

Database db = DatabaseFactory.CreateDatabase("Database Instance");
IDataReader dr = db.ExecuteReader(CommandType.Text, "Select * from Products");
this.myDr = dr;

CacheManager myCacheManager = CacheFactory.GetCacheManager();
myCacheManager.Add("MyDataReader", this.myDr); // 預設優先級 Normal、無過期

6. 讀取快取項

IDataReader toBeDisplay = (IDataReader)myCacheManager.GetData("MyDataReader");
if (toBeDisplay != null)
{
    while (toBeDisplay.Read())
        this.listBox.Items.Add(toBeDisplay.GetValue(2));
}

注意:型別必須正確,且必須檢查 null。

7. 移除快取項

myCacheManager.Remove("FileKey");

結語

入門篇涵蓋基本增刪查。進階篇將介紹時間/通知過期、快取加密、移除通知、載入策略、清除機制等進階主題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved