在这一篇文章中,将实现一个NGuestBook的业务逻辑层。
在实际应用 中,业务逻辑层是至关重要的,他承载着整个系统最核心的部分,也是客户最关 注的部分。这一部分的实现,通常需要技术专家和领域专家通力合作。当然,在 本文章系列的Demo中,由于业务逻辑的简单性,这里看的可能还不是很明显。
在本篇文章的业务逻辑层实现中,业务逻辑层主要承担了以下职责:
1.对不同数据访问层的封装。使得表示层可以不关心具体的数据访问层。
2.业务逻辑数据的填充与转换。如管理员口令的加密。
3.核心业 务的实现。这里很多业务逻辑只有一行代码,即一个业务逻辑方法恰好对应一个 数据访问方法,但是也有通过多个数据访问方法实现业务的。如AdminBLL中的 ChangePassword方法就调用了AdminDAL的GetByID和Update两个方法。另外,虽然 许多方法只调用一个数据访问方法,但是从命名看也能看出两者着眼点的不同。 如AdminDAL中的GetByNameAndPassword,这个名字显然是从数据库的角度看问题 ——指按照指定的Name和Password两个字段的值取出相应信息,至于 这样做的业务意义它不需要知道。而AdminBLL中,调用它的方法叫Login,这是从 业务角度看问题——即这个方法是管理员登录。
下面分步骤实现业 务逻辑层:
1.建立工程
在这个架构中,业务逻辑层是可以替换的 。及业务逻辑层不是直接耦合于表示层,而是通过依赖注入机制实现。所以,我 们这里将这个业务逻辑层不直接命名为BLL,而是新建一个叫SimpleBLL的工程, 放置我们这个业务逻辑层的相关代码。
2.配置依赖注入
业务逻辑 层要通过反射工厂加载相应的数据访问层,这样就需要在Web.config中配置需要 使用的数据访问层。打开Web.config,找到appSettings节点下的 “DAL”项,将其中的value赋予我们要使用的数据访问层工程名称, 例如:要使用NBearDAL,则这一项应该这样写:
<add key="DAL" value="NBearDAL"/>