在 ASP.NET 2.0的新特性中,最“耀眼”的也就是主版頁面、主題/皮膚、成員資格和角色管理、使用者自訂屬性以及 WebPart之頁面個人化。除了前兩項,其餘都是建立在***Provider提供的服務之上。
這些Provider(類)在微軟文檔中一般是這樣定義的:為...提供...服務,似乎與一般的控制項類等一樣,拿來用就是了。其實這些Provider(類)已經十分強烈地暗示微軟.NET的一個發展方向,這個方向就是(你的網站)應用程式“外掛程式”化。
“外掛程式”是老小弟為了形象方便地說明問題而借用的,並不一定精確嚴密並且與微軟文檔中“外掛程式”概念是不同的。
下面老小弟從軟、硬體這兩個角度簡單地說說稱其為“外掛程式”的緣由:
從硬體角度考慮:如果想象一下PC,是不是可以把web.config 看作是“主板”,而這些Provider就是插在主板上的顯卡、音效卡、網卡...。更抽象一些可以認為這些Provider其實相當於驅動程式Driver。微軟為我們提供了Microsoft品牌的SqlMembershipProvider、SqlRoleProvider、SqlProfileProvider、SqlPersonalizationProvider等Provider,也允許我們在web.config中重新指定來替換它們(相當於設定CMOS或做“跳線”)。這就好比不論那種品牌何種型號的顯卡(或音效卡、網卡等)只要符合相容性標準,就可以插到主板上使用。
從軟體角度考慮:自從Eclips推出後,開發平台上的“外掛程式”也跟了火了一把(瀏覽器上可早就有了),一時間Java程式員都在寫“外掛程式”了。.NET這邊因為有VS.NET所以衝擊不是很大,不過“外掛程式”我們也是一樣用到了。不知各位兄弟是否注意到VSS就是以“外掛程式”形式與VS.NET整合的,更純粹的例子就是Borland Togather for .NET。從這些整合到IDE的“外掛程式”上我們可以看出“外掛程式”提供的是一種功能擴充和升級/替換,現在依託這些Provider,我們自己開發的網站程式也能“外掛程式”化了。譬如:如果不需要頁面個人化(WebPart)功能,我們就不必“安裝”PersonalizationProvider(其實應該反過來說,需要什麼功能才“安裝”什麼Provider,不過現在都是統統預先裝好的)。
那麼以後應用程式開發是不是就像電腦市場裝機一樣,拼拼裝裝就可以了呢?
回答是肯定的:微軟在展示其VSTS(Visual Studio Team System)產品時,就這樣玩了一把,一行代碼也不用寫,就拼裝出一個網站來,並且效能/壓力等測試成績也不差(當然裡面並不是只用了“外掛程式”,估計怎麼也得叫個構件什麼的)。真是比MDA還要MAD啊(開個玩笑)!
回答也是否定的:在老小弟看來,這終究是個實驗室產品,微軟工程師是在理想狀態下變的一次“魔術”,一方面我們沒有微軟工程師那麼專業,另一方面每個應用都有其特殊的業務需求,說白了就是不一定套用的上。另外,微軟提供的Sql系列Provider都是按2層架構實現的,是難以融入當今流行的多層架構的,為此,微軟在
http://msdn.microsoft.com/asp.net/downloads/providers/default.aspx?pull=/library/en-us/dnaspp/html/asp2prvdr01.asp
提供了這些Provider的樣本代碼下載,以便我們能拆成多層實現。