asp.net 2.0“插件”說(shuō)
在 asp.net 2.0的新特性中,最“耀眼”的也就是母版頁(yè)、主題/皮膚、
成員資格和角色管理、用戶自定義屬性以及 webpart之頁(yè)面?zhèn)€性化設(shè)置。
除了前兩項(xiàng),其余都是建立在***provider提供的服務(wù)之上。
這些provider(類)在微軟文檔中一般是這樣定義的:為...提供...服務(wù),
似乎與一般的控件類等一樣,拿來(lái)用就是了。其實(shí)這些provider(類)
已經(jīng)十分強(qiáng)烈地暗示微軟.net的一個(gè)發(fā)展方向,
這個(gè)方向就是(你的網(wǎng)站)應(yīng)用程序“插件”化。
“插件”是老小弟為了形象方便地說(shuō)明問(wèn)題而借用的,并不一定精確嚴(yán)密
并且與微軟文檔中“插件”概念是不同的。
下面老小弟從軟、硬件這兩個(gè)角度簡(jiǎn)單地說(shuō)說(shuō)稱其為“插件”的緣由:
從硬件角度考慮:如果想象一下pc,是不是可以把web.config 看作是“主板”,
而這些provider就是插在主板上的顯卡、聲卡、網(wǎng)卡...。更抽象一些可以認(rèn)為
這些provider其實(shí)相當(dāng)于驅(qū)動(dòng)程序driver。微軟為我們提供了microsoft品牌的
sqlmembershipprovider、sqlroleprovider、sqlprofileprovider、sqlpersonalizationprovider
等provider,也允許我們?cè)趙eb.config中重新指定來(lái)替換它們(相當(dāng)于設(shè)置cmos或做“跳線”)。
這就好比不論那種品牌何種型號(hào)的顯卡(或聲卡、網(wǎng)卡等)只要符合兼容性標(biāo)準(zhǔn),就可以插到主板上使用。
從軟件角度考慮:自從eclips推出后,開(kāi)發(fā)平臺(tái)上的“插件”也跟了火了一把(瀏覽器上可早就有了),
一時(shí)間java程序員都在寫“插件”了。
.net這邊因?yàn)橛衯s.net所以沖擊不是很大,不過(guò)“插件”我們也是一樣用到了。
不知各位兄弟是否注意到vss就是以“插件”形式與vs.net集成的,
更純粹的例子就是borland togather for .net。從這些集成到ide的“插件”上
我們可以看出“插件”提供的是一種功能擴(kuò)展和升級(jí)/替換,現(xiàn)在依托這些provider,
我們自己開(kāi)發(fā)的網(wǎng)站程序也能“插件”化了。譬如:如果不需要頁(yè)面?zhèn)€性化設(shè)置
(webpart)功能,我們就不必“安裝”personalizationprovider
(其實(shí)應(yīng)該反過(guò)來(lái)說(shuō),需要什么功能才“安裝”什么provider,不過(guò)現(xiàn)在都是統(tǒng)統(tǒng)預(yù)先裝好的)。
那么以后應(yīng)用程序開(kāi)發(fā)是不是就像電腦市場(chǎng)裝機(jī)一樣,拼拼裝裝就可以了呢?
回答是肯定的:微軟在展示其vsts(visual studio team system)產(chǎn)品時(shí),就這樣玩了一把,
一行代碼也不用寫,就拼裝出一個(gè)網(wǎng)站來(lái),并且性能/壓力等測(cè)試成績(jī)也不差
(當(dāng)然里面并不是只用了“插件”,估計(jì)怎么也得叫個(gè)構(gòu)件什么的)。
真是比mda還要mad啊(開(kāi)個(gè)玩笑)!
回答也是否定的:在老小弟看來(lái),這終究是個(gè)實(shí)驗(yàn)室產(chǎn)品,微軟工程師是在理想狀態(tài)下
變的一次“魔術(shù)”,一方面我們沒(méi)有微軟工程師那么專業(yè),另一方面每個(gè)應(yīng)用都有其特殊
的業(yè)務(wù)需求,說(shuō)白了就是不一定套用的上。另外,微軟提供的sql系列provider都是按2層架構(gòu)
實(shí)現(xiàn)的,是難以融入當(dāng)今流行的多層架構(gòu)的,為此,微軟在
http://msdn.microsoft.com/asp.net/downloads/providers/default.aspx?pull=/library/en-us/dnaspp/html/asp2prvdr01.asp
提供了這些provider的樣本代碼 下載,以便我們能拆成多層實(shí)現(xiàn)。
新聞熱點(diǎn)
疑難解答
圖片精選