2010年10月9日 星期六

ASP.NET 狀態管理優缺點比較與建議事項

用戶端狀態管理選項

 

優點

缺點

檢視狀態 不需要伺服器資源
實作簡單
增強安全性功能
效能考量
裝置限制
潛在安全性風險
控制項狀態 不需要伺服器資源
可靠性
全面性
需要部分程式設計工作
隱藏欄位 不需要伺服器資源
廣泛支援
簡單實作
潛在安全性風險
簡單的儲存架構
效能考量
儲存限制
Cookie 可設定的到期規則
不需要伺服器資源
簡化
資料保存性
大小限制
使用者設定的拒絕
潛在安全性風險
查詢字串 不需要伺服器資源
廣泛支援
簡單實作
潛在安全性風險
容量限制

 

用戶端方法狀態管理摘要

狀態管理選項

建議的使用方式

檢視狀態 當您需要儲存網頁將回傳本身的少量資訊時使用。使用 ViewState 屬性會提供基本安全性功能。
控制項狀態 當您需要儲存伺服器來回往返之間控制的少量狀態資訊時使用。
隱藏欄位 您需要儲存網頁將回傳本身或其他網頁的少量資訊,而且不考量安全性的問題時使用。
(注意事項:您只能在送至伺服器的網頁上使用隱藏欄位。)
Cookie 當您需要在用戶端上儲存少量資訊,而且不考量安全性的問題時使用。
查詢字串 當您要將少量資訊從一網頁傳輸至另一網頁,而且不考量安全性的問題時使用。
(注意事項:只有在要求相同網頁,或透過連結要求另一網頁時,才能使用查詢字串。)

 

伺服器端狀態管理選項

  優點 缺點
應用程式狀態 實作簡單
應用程式範圍
應用程式範圍
有限的資料耐久性
資源需求
工作階段狀態 實作簡單
工作階段特定事件
資料保存性
平台延展性
Cookieless 支援
擴充性
效能考量
設定檔屬性 資料保存性
平台延展性
擴充性
效能考量
額外設定的需求
資料維護
資料庫支援 安全性
儲存空間
資料保存性
強固性和資料完整性
協助工具
廣泛支援
複雜度
效能考量

 

伺服器端方法狀態管理摘要

狀態管理選項

建議的使用方式

應用程式狀態 當您正在儲存變更頻率低、由許多使用者使用的全域資訊、而且不考量安全性的問題時使用。
請勿在應用程式狀態中儲存大量資訊。
工作階段狀態 當您要儲存個別工作階段專用且存留期短暫的資訊,同時必須顧慮安全性時使用。
請勿在工作階段狀態中儲存大量資訊。
請注意,工作階段狀態物件會在您應用程式中每個工作階段的存留期期間建立並維護。
在擁有許多使用者的應用程式中,這可能會佔用大量的伺服器資源並且影響延展性。
設定檔屬性 當您儲存在工作階段過期後需要保存的使用者特定資訊,並且在後續造訪應用程式需要再度擷取時使用。
資料庫支援 當您儲存大量資訊、管理交易、或是資料必須不受應用程式和工作階段重新啟動的影響時使用。
資料採擷是重要的,而且也必須顧慮安全性。

 

參考資料: ASP.NET 狀態管理建議事項

沒有留言:

張貼留言