不知道大家有没有看懂这个图。这个是我的网站(不包括后台管理)的结构图。基本上和三层架构有些相似,但是有三个不同的地方:
一、 数据访问层。
1、数据访问层针对项目是通用,而针对数据库却是专用的。什么没看懂,听我慢慢道来。
针对项目是通用的:在所有的项目里使用的数据访问层都是一样的(引用同一个DLL文件);
数据库却是专用的:针对SQL会有一个类库(DLL文件),针对Orcale会有另一个类库(DLL文件),其它的数据库也是一样。
这些类库(DLL文件)里的类名、命名空间是相同的,属性、方法是一样的,参数也是一样的。这样呢就可以实现更换数据库的时候换用对应的类库(DLL文件)就可以了。
2、数据访问层的功能和SQLHelp的有些类似,它只是对ADO.NET的进一步的封装,并不包括实际的SQL语句。也就是说,数据访问层就是访问(添加修改删除等)数据库的方法,而不包含访问哪个表的功能。
二、 分页控件。
如果说数据访问层是网站的地基,那么分页控件就是“电梯”了。因为这个分页控件是“跨层”的。吴旗娃的分页控件只是工作在UI层,也就是说他的只是绘制页面的部分,而我的分页控件不仅绘制页面,而且还要负责分页算法(组合SQL语句)、访问数据库(调用数据访问层)等工作。
使用分页控件可以减少很多的代码,使页面更简洁,简介到就好像是一层结构一样。
三、 业务逻辑层
网站的业务逻辑是很弱的了,大部分的页面是根本就用不到的,所以呢基本上是被忽略了。忽略了并不等于没有了。在需要的时候加上就可以了。
层与对应的页面
●
UI层对应.aspx文件,功能就是把数据和HTML组合在一起,显示给用户浏览。
●
业务逻辑层,页面里面没有这个字样,因为它的功能被分散了。
●
.aspx.cs文件,就是.aspx文件的后置代码,功能就是负责提供数据。具体点呢就是给分页控件设置属性(列表页面),或者调用数据访问层返回字符串数组(详细页面)。
●
.cs文件。这个就很灵活了,根据需要而定,大部分的页面是不需要的。目前它的功能就是会员的登录验证,是否超时的验证等。
●
分页控件。
●
数据访问层。
●
数据库。
使用的思想并不是面向对象的,而是面向功能的。
使用这种结构已经写了几个网站(比如:www.1380000.com www.1370000.com )了,可以说比较成熟了,至少不是停留在理论上的。