background image

仅是用来传递数据,而且因为实际编码中大部分情况都是如此的实现,所以使有些人觉
得 User.aspx.cs 不应该算 UI,而应该并入 BLL 负责逻辑处理。继续往下看,这时提出了
一个新需求,要求在每个用户的前面加一个图标,生动地表现出用户的性别,而且不满
18 岁的用儿童图标表示。这个需求的实现,就轮到 User.aspx.cs 来做了,这种情况下
User.aspx.cs 才算有了真正的用途。

2、NewBLL.cs

添加如下方法:

public IList<UserInfo> GetUsers():返回所有的用户信息列表

public UserInfo GetUser(int UserId):返回指定用户的详细信息

public bool AddUser(UserInfo User):新增用户信息

public bool ChangeUser(UserInfo User):更新用户信息

public void RemoveUser(int UserId):移除用户信息

此文件就属于业务逻辑层了,专门用来处理与业务逻辑有关的操作。可能有很多人觉得这
一层唯一的用途,就是把表现层传过来的数据转发给数据层。这种情况确实很多,但这只
能说明项目比较简单,或者项目本身与业务的关系结合的不紧密(比如当前比较流行的
MIS),所以造成业务层无事可做,只起到了一个转发的作用。但这不代表业务层可有可
无,随着项目的增大,或者业务关系比较多,业务层就会体现出它的作用来了。

此处最可能造成错误的,就是把数据操作代码划在了业务逻辑层,而把数据库作为了数
据访问层。

举例:有些朋友感觉 BLL 层意义不大,只是将 DAL 的数据提上来就转发给了 UI,而未
作任何处理。看一下这个例子

BLL 层

SelectUser(UserInfo userInfo)根据传入的 username 或 email 得到用户详细信息。

IsExist(UserInfo userInfo)判断指定的 username 或 email 是否存在。

然后 DAL 也相应提供方法共 BLL 调用

SelectUser(UserInfo userInfo)

IsExist(UserInfo userInfo)