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