江右东流

关于

对于web程序架构的一点想法

[ 架构  思考  Coding  ]

20 Feb 2006

最近在做的项目对于架构的要求很高,经历了多次编写、更新的工作后,终于整理出了一个比较好的层次结构。 于是今天尝试着在ASP里验证一下效率,非常理想。

结构的最核心是一个负责底层调度的与业务逻辑无关的框架,它提供数据的封装、获取、输出,提供对门户表现的抽象组织、实体解析、可扩展标签库,提供了完善的缓存机制,并且引入了Adapter设计模式,将核心框架和建立于其之上的所有逻辑的耦合度降到最低。框架的配置使用xml文件存储。 在核心层之上是业务对象模型,在这个object目录下存储了将项目细分到具体对象后的具体代码实现,可以这样说,这里是站点的动态链接库 最后则是站点的最终逻辑表现了,借助于核心框架提供的模板引擎,在业务对象模型之上,载入各种UI配置,解析并输出。

在我的考虑之中,其实还有一层的,即,所有的数据输出均独立出来成为一层,或者说数据输出可以挂载不同的输出接口,从而达到不同的应用。 比如,现在的nblog是静态的页面输出,如果我是想要动态页面输出呢?只需要挂载动态输出接口就OK,UI都一样。我想过具体的实现方法,最关键还是要在Portal类的标签库里做扩展解析,否则效率都不是很好。 这个接口最大的应用就在于可以很容易的引入Ajax,配合Portal标签,可以实现比较好的页面容器框架,而且可以尽量做到和UI无关,甚至完全开放的用户自定义UI都可以。

这套架构本身是用于.Net的,毕竟OOP才能赋予框架灵魂,呵呵,不过如果固化到ASP应用里来,似乎也不错的样子。