ASP.NET 2.0的Web Part Framework

最近ASP.NET 2.0实在没有什么新消息,也没什么惊人动态,在没有新闻的情况下,看来祭司只好自己创造新闻啰,今天要谈的是ASP.NET 2.0的Web Part Framework。  Web Part Framework就是指Web组件,为什么要谈它呢?主要是有个小故事,有个读者问我他想用Web Part,但可不可以不要用SQL Server资料库?!他问的当时我小楞了一下,因为ASP.NET 2.0的东西太多了,多到我也不可能记住所有的细节,于是我调出第二十章Web Part Framework,我重新拉回Web Part Framework架构图运作的记忆,我一分钟内当下告诉他~不可能!为何祭司是这样子笃定?请来看看祭司书中是如何解说Web Part Framework架构。

  首先来看Web组件的意义与作用:

  Web组件英文原文是“Web Parts”,这个名词乍看之下真是令人一头雾水,没错!真的无法令人直觉联想到底是什么东西,祭司先用白话解译一下观念,其实Web组件就是有一堆预先定义好的〝网页零件〞(我觉得Part翻成零件比较贴切),而透过这些〝网页零件〞让使用者可以拼拼凑凑修改调整成他喜欢的网页样式与Layout配置(感觉有点像乐高积木可以自由拼凑组合),不像传统网页内容设计好之后就是固定的,固定就是固定!管你使用者是天皇老子或总经理看到的内容跟我们小职员看到的是一模一样,好听点是一律平等,难听点是没人性,完全抹煞掉不同身份、性别、星座使用者所可能会喜欢的外观样式偏好;而有了Web组件使用者可以结合个人化机制来达成自行设定外观或样式等等风格,使用者自订的Web组件内容会被储存在个人化机制之中,即使关闭浏览器离开网站,下次登入时系统会自动从个人化机制中调出您上次所定义的风格样式,并套用在您登入的网页,如何?很有意思吧!

  Web组件架构:

  在进一步解释Web组件架构前,先来看下面Web组件架构图。

  Web组件架构图

  从上面的Web组件架构图中可以看到共分为三层:(1)最底层是个人化机制(2)中间层是UI结构化元件(3)最上层是Web组件UI控制项,最上层会依赖中间层,而中间层又依赖最底层,这是什么意思呢?因为它们必须互相搭配才能运作,说明如下:

  (1)个人化机制(最底层)

  因为Web组件既然是让使用者能够自订编辑其个人偏好的网页外观、样式或组成,当然要有一个机制可以针对使用者帐号来记忆其对Web组件所做的种种设定与变更,故“个人化机制”扮演的就是这个角色;而使用者下次登入时,Web组件系统也会自动从个人化中读出相关资料与设定,再一一还原成使用者上一次所设定的网页外观设定。

  (2)UI结构化元件(中间层)

  UI结构元件依赖于个人化,并提供所有Web组件控制项所需的核心结构和服务。UI结构化元件主要包含两大类的东西,一是WebPartManager控制项,另一个是Zone,而每个组件页面都一定必须要有一个WebPartManager控制项,以便管理与协调在此页面中所有的Web组件控制项,Zone则是容纳实际的Web组件控制项,并负责对Web组件控制项做Layout配置,及提供标题、外观、样式给Web组件控制项。

  (3)Web组件UI控制项(最上层)

  Web组件UI控制项是实际呈现及作用的控制项,其实它不过就是几种类型的〝伺服端的控制项〞,包括了:Web组件控制项、ASP.NET伺服器控制项Web组件控制项、使用者自订控制项与自订伺服器控制项等等,而这些控制项必须放在相对应的Zone区域容器之中以便受到管理,所以这层的控制项又依赖中间层的理由。

  所以以此架构图所解说,Web Part必须依赖最底层是Personalization个人化机制,而个人化又一定要资料库,所以我一分钟内很清楚地回答他不可能!Web Part还是需要资料库的。

  注:因为ASP.NET 2.0东西真的太多,且祭司记性不太好,所以真的需要一本好的技术手册供我参考,而供自己参考的技术手册一来品质要好,二来深广度要够,三来所有知识的秘密都必须写出来,总没有人在防自己的吧...哈哈,所以祭司一直跟你们说这本书不但是供你们参考,也是祭司本人的重要参考,真的不是盖你们的啦,也不唬烂的,我已经真的常常在参考了!