介紹ASP.NET Provider
ASP.NET Providers 相信大家都已經(jīng)非常熟悉,它為我們開發(fā) ASP.NET 應(yīng)用程序提供了方便。
比如在 Visual Studio 控件工具箱中的 Login 部分,就是基于 Membership provider、Session provider 和 Profile provider,大大地簡化了我們在開發(fā)過程中處理與用戶相關(guān)的功能。
ASP.NET Provider 架構(gòu)示意圖
ASP.NET Provider 的類結(jié)構(gòu)圖
Azure Provider 是什么
Azure 上的應(yīng)用程序也是 ASP.NET 應(yīng)用程序,所以它也支持 ASP.NET Provider 模型。不同的是,我們平時(shí)用的 Provider 是基于關(guān)系數(shù)據(jù)庫的(如SQL Server),而“云端”上 Provider 自然也需要使用“云端”的數(shù)據(jù)解決方案——Windows Azure Storage。
云平臺(tái)是基于分布式計(jì)算的。這就意味著,你的同一個(gè)應(yīng)用程序可能會(huì)分布在不同的機(jī)器上。所以包括 Session 在內(nèi)的各種用戶數(shù)據(jù)不能放在 host 主機(jī)上,必須通過 Windows Azure Storage 來統(tǒng)一管理。
微軟認(rèn)為:基于 Windows Azure Storage 的 provider 比傳統(tǒng)SQL provider 具有以下優(yōu)勢:
在保持與 SQL provider 完全相同的使用方法(不用做任何代碼修改)的基礎(chǔ)上,
并行處理更強(qiáng)悍。
分頁查詢更方便。
計(jì)算能力更牛X。
運(yùn)行更穩(wěn)定。
Azure Provider 的原理
在 Windows Azure SDK(March 2009 CTP)中,微軟已經(jīng)提供了可直接使用的 Azure 版 ASP.NET Provider。包括 membership, role,profile,session state 4 種providers。
打開 Azure 版 ASP.NET Provider 項(xiàng)目,非常一目了然。以下的 4 個(gè)文件與 4 種 provider一一對應(yīng)。
拿 TableStorageMembershipProvider 來說,它其實(shí)是繼承了 MembershipProvider 類,override 了 MembershipProvider 類里與數(shù)據(jù)操作相關(guān)的方法,將它們換成使用 Windows Azure Table Storage 版本的。
public class TableStorageMembershipProvider : MembershipProvider配置使用 AzureProvider:
剛才說了,從傳統(tǒng)的 SQL Provder 轉(zhuǎn)換到使用 Azure Provider,不用做任何代碼上的改動(dòng),只需要更改配置文件就可以了。
【編輯推薦】