日期:2010-11-21  浏览次数:20428 次

ASP.NET 2.0“插件”说

在 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的样本代码 下载,以便我们能拆成多层实现。