CmsSystemPlatform开发(二)基础结构

一、项目结构

在曾经的被面试与现在的面试中,都会被问到一个问题:如何理解N层架构。

对于我这种半路出家的人来说,始终贯彻的一个观念就是,合适的就是最好的。

目前我惯用的结构是8层结构,其中包括:Model模型层,IDAL接口层,SQLServerDAL数据层,DataFactory数据工厂层,BLL业务层,UI界面层,Util核心操作层七个类库项目,web表示层为web应用程序。

model层包含实体对象,实体搜索对象,枚举类型,统计数据时的类型对象;

idal、sqlserverdal和datafactory这三层是一个整体,对于接口,我认为其最大的意义,就在于规范方法定义,比如已经定义了一个getUserByString,没必要再去额外添加getUserByName或者getUserByEmail,只要在sqlserverdal层中对传入的参数进行判断即可进行不同操作,datafactory在于使用简单工厂设计模式管理数据层,比如在已知的同一个流程的两个版本的操作,可以对datafactory传递不同的参数,来返回不同的数据层操作类;

bll层是组装数据请求的业务层,比如前面的getUserByName或者getUserByEmail,可以定义在bll层,提供给不同的流程去调用,而不需要对底层代码进行更改;

ui层用于定义一些自定义控件;

util主要是针对网站本身的一些配置操作,或者一些helper操作类;

web表示层就是一般的webform项目,为网站的表现形式。

多层之间的关联关系:

idal、sqlserverdal引用model;

datafactory引用idal和sqlserverdal;

bll引用idal和model;

web层引用bll和model;

ui和util的引用,试需求而定。

CmsSystemPlatform开发(二)基础结构

至于目录结构,是根据网站功能划分。

二、数据模型

使用powerdesign15做数据模型,直接连接数据库进行数据结构的操作。

三、数据库

数据库使用schema区分不同板块,当然了,合并到一个schema中也是可以的。

四、一些组件的选取准备

后台富文本编辑器使用ckeditor+ckfinder,js类库使用jquery,防跨站脚本过滤使用微软的AntiXSSLibrary,一些缓存、session、cookies的操作,也使用之前获得一个微软组件操作。

你可能感兴趣的:(System)