ASP.NET 2.0插件说
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的样本代码 下载,以便我们能拆成多层实现。待续...