http://blog.csdn.net/yfmine/archive/2005/03/13/318995.aspx
三层结构好像很火,我也看了一些介绍、资料、代码。感觉只是一个理论上的东西,和实际应用还是差了很远,尤其是执行效率和开发速度上更是需要注意。

三层结构一般的说法是:表示层(UI层)、业务逻辑层、数据层,那么这三层里都放些什么呢?或者说哪些代码应该放在哪一层里?


表示层没有甚么争议了,就是放html代码,加上一些绑定了什么的。

业务层,从字面上看是放业务逻辑,先放在这里暂且不谈。

数据层就有所分歧,一个是“死”的数据层,针对某一个项目而写的,无法直接用到其他的项目里;一个是通用数据层(或是叫数据层基类)。他提供一套通用的方法,比如SQLHelper类。

说到这里,提出第一个问题:存储过程属于哪一层?存储过程嘛,放在数据库里的,应该是属于数据层,但是在存储过程里面写什么,是由业务逻辑来决定的,那就应该算作业务层。??到底该属于哪一层呢?


我的结构是通道模式,当然也有分层的思想。

简略地说就是  表现层  通道 存储过程 数据库 。 其中通道 就是一些通用的方法,比如通用的数据层、翻页控件等。

具体地说就是

1. .aspx 页面 html代码,web控件,页面排版等
2. .aspx.cs 提取数据,绑定到控件

3. .cs 业务逻辑,只在逻辑很复杂,或是会在两处或多处使用的函数,比如用户登录、判断用户是否登录、是否有权限。

4 .dll 通用数据层、常用函数、服务器控件(现在已经实现的是翻页控件、无刷新级联列表) 、提供连接字符串。

5. 存储过程

6. 数据库  保存数据、提供数据


看着是不是有点乱?其实是很方便的。1、2相当于表示层,3相当于业务逻辑层,4.是我说的“通道”,5、6即产上算作是数据层吧:)

5、6 不管你用什么结构都是要写的; 4 调试好了之后就不用修改的;3 里面的东东是不多的,目前还没有遇到需要很多代码来实现的逻辑;1、2 就是页面了,也是必须一写的。

首先要注意一点:asp.net(.net2.0还不是太熟,暂且不考虑)采用了代码后置的方法,这实际上也就是分了一层出来,大多数情况下没有必要再单独出一个.cs文件出来。如果有在多处使用的代码——比如身份验证——就要提取出来放在一个.cs文件里面,便于修改。

 

我的看法与他相似,N层系统不应该随便使用,要看具体的需求,不能太死板。


posted on 2007-01-12 15:43  mbskys  阅读(157)  评论(0)    收藏  举报