表现层系列:页面架构模型

几个开源项目的页面架构模型

下面几个项目

Asp.Net Forums

CnForumns

CnBlogs(包括博客园,博客堂等)

OpenLab

CommunityServer

hiDotNet

等等,这几个开源项目其实都是源于一个项目CommunityServer,该开源项目由Telligent Systems, Inc.公司和微软公司联合开发设计,体现了.Net的强大开发功能,很多设计模型仿照微软fcl类库进行设计和开发。其中最值得推敲的机制是它重写了页面结构模型,不是采用微软推荐的在页面模型写codebehind的方式来开发,下面分析一下页面模型:

 

  1. 之所以这么设计是为了便于换肤,后台控制代码是唯一,前台皮肤文件为ascx文件可以自行编辑更改,配置替换等等。
  2. 页面的模型为自定义控件型态页面:即将每个页面实现写成自定义控件,每个自定义控件派生自一个皮肤基类。然后自定义控件在CreateChildControlsInitSkin:重载的方法)时,动态加载ascx(根据皮肤配置)控件,加载完ascx控件后,对ascx页面子控件初始化(包括赋值,定义控件委托事件等等),也即自定义控件的CreateChildControls替代了原来页面的Page_Load功能。
  3. ascx作为皮肤动态识别UI控件,在用户控件中可以再嵌套使用用户控件和用户自定义控件

 

你可能感兴趣的:(.net,UI,asp.net,微软)