Consistent Page Style

Web UI一直是令Web开发人员的关注并头痛的方面. 撇开特殊的Flash等, Web UI的构成与HTML息息相关. 通常一个WebSite都是由一些展示或者交互的静态或动态页面构成. 许多年以前类似DreamWeaver的工具就提供了静态WebSite的管理功能, 通过Page的Template来使整个网站有统一的Style. 而在那个遥远的时代, 我们在ASP, PHP中也使用include的方式或者global template variable来使页面具有统一的风格, 并且使Page无需都具有重复内容的Bad Smell.
开发人员总是在寻找最大粒度(WebSite/WebApp)及最小粒度(HTML)及数据(Model)之间的中间载体来使重用, 解藕和开发效率达到最高.

1. ASP.Net
MasterPage + Server Control (Costom Load Templates, 即Control与ascx并不耦合, 这时ascx就相当于template)
这几乎成了ASP.Net开发的标准方式. 在.Net 1.1的时候.Text就采用这样的结构来达到既有统一Style又有不同Theme的UI. 而应用Spring.Net那样从IoC框架也可以使MasterPage的更换更为方便.

2. Java
Java的Web UI开发是百花齐放, Web Framework数不胜数. 但一般的如用jsp, freemark为模板的时候通常还是用include文件比较多, 但include毕竟是相对陈旧的解决方案, 我个人经常会结合IoC来创建MasterPage接口和具体实现类, 这样在要改变风格的时候通过IoC可以较快改变, 但这样做的粒度较大, 无法像ASP.Net中的MasterPage那样更加灵活. 但Java的世界太多的解决方案了, 一个叫SiteMesh的东西非常的优秀及实用, 通过Decoration模式来对页面进行Decorate.

3. PHP
PHP随着开发技术的发展而发展着. 几年前的那种html和代码混写的开发模式在现在的PHP中已经是不被采取的了. 而PHP中之前所流行的所谓的模板技术也不再让人满足, 视图回归PHP本身的做法日益增多, 如Zend Framework中默认的视图处理, 然而对于视图的耦合依旧没有被PHP开发者所重视, 这点也可以在Zend Framework中看到, 而在Java中, 将View绑定到Model的做法几乎已经是看不见了 (在diggmore中, 这样的耦合已经被改变). 而在PHP中, 在开发人员追求统一Style的时候基本上还是采用include和global variable方式. 在灵活性及耦合上实在没有办法与masterpage和sitemesh比. 这点可以从某种程度上IoC在PHP并没有被广泛应用有关.

Random Posts

2 Responses to “Consistent Page Style”

  • xsharp Says at September 5th, 2006 10:17 am :

    个人对WebUI的一点见解:
    现在网络越来越个性化,样式的花哨差不多必然的了,有的时候需要制作较多样式(在一些服务性公司尤其多这样的需求),基于进度和成本考虑,觉得视图的处理最好是分二级:

    第一级面向开发人员
    这一级侧重业务视图处理,技术上有一定难度等级。

    第二级面向Web设计人员
    这一级实际上是对第一级的封装,但不失灵活,不要有非浏览器支持的语言(含有服务器端代码可能会使Web设计人员产生),技术上要求较低(比如要求HTML,JS之类的)。正在吹的web2。0我觉得应该是在这个层次解决的问题。

  • Eunge Says at September 21st, 2006 9:46 pm :

    Binzy是傻人,照婚纱的时候头发都没理好,哈哈哈~~~

Leave a Reply