我们打开门户网站时往往会看到很多排列紧密的频道列表如新闻财经娱乐等频道为网站提供了方便的导航功能
本文主要讨论在框架下实现多频道网站架构的几种方案并从代码重用性开发方式部署等几个方面来对各方案进行分析
表现层 整个网站的表现层(aspxascxcssjs等文件及其对应的cs文件)都位于一个Web Project中每个频道对应于一个目录每个频道下面可能有ImagesStyle等子目录这是最简单的一种方式类似于ASP中的处理方式 各频道的表现层(aspxascxcssjs等文件及其对应的cs文件)分别位于不同的Web Project中各频道的表现层(aspxascxcssjs等文件及其对应的cs文件)分别位于不同的Web Project中
业务层 可与表现层位于同一个项目或者包含在独立的Class Library Project中
可与各频道表现层位于同一个项目或者分别包含在独立的Class Library Project中 包含在独立的Class Library Project中供所有频道表现层调用
代码重用性 建议将业务层包含在独立的Class Library Project中这样能获得较高的重用性 每个频道都有与其对应的业务层代码较为分散重用性较低 所有频道共用一个业务层代码较为集中具有很高的重用性
开发方式 模块较为集中开发较为快捷但不适合多人协同开发 各模块较独立适合按照模块分配任务的开发方式 开发方式较为灵活既可以按照模块分配任务也可以按照架构的各组成层分配任务
部署 模块较为集中部署比较方便但一个小的BUG可能会导致整个网站的瘫痪模块比较分散部署非常困难但由于各频道是松耦合的一个频道的故障不会影响到其他频道的正常运行模块比较分散部署比较困难但由于各频道是松耦合的一个频道的故障不会影响到其他频道的正常运行
关于业务层
这里的业务层比较抽象可以拆分为对象实体层对象操作层数据访问层等笔记强烈建议对于中小型系统可将对象实体层对象操作层数据访问层合并为一个业务逻辑层这样可以极大的减少开发及维护成本