2011-11-03 47 views
2

什麼是所有的緩存選項\在Web的應用程序BLL層可能級別asp.net各種緩存選項

(我的理解,我們可以使用會話字典只有在ASPX和ASCX後面的代碼。對吧?)

+0

這真的是一個懸而未決的問題。只要BLL層是ASP.NET請求的一部分,會話就完全可用於BLL層。 (或類似的實施會議)。至於你的問題:有大量的緩存可能性。查看BCL中的新緩存支持。這可能是一個很好的開始>> http://msdn.microsoft.com/en-us/library/dd985642.aspx – Polity

回答

1

該會話在ASP.NET Web應用程序的任何級別都可用作存儲介質,但涉及訪問它的許多類都是密封的並且不容易嘲弄(HttpContext,HttpSessionState等),並且它被認爲是不好的練習讓您的業務邏輯「知道」應用程序的託管方式。我建議在通用ICache接口後面隱藏任何緩存實現,如果您在另一個應用程序中重新使用BLL,則可輕鬆切換。

提供給你幾個選項:

使用HttpContext.Items(http://www.4guysfromrolla.com/articles/060904-1.aspx)

會話緩存每個請求高速緩存A使用HttpContext.Session(如果你的應用程序是負載平衡的,並且你沒有粘性會話必須做額外的工作來確保一致的會話狀態(例如使用SqlSessionState))。

使用HttpContext.Cache或HttpRuntime.Cache的應用程序緩存(如果您的應用程序負載均衡且沒有粘性會話,則必須執行額外的工作以確保一致的應用程序緩存)。

希望這會有所幫助。