业务逻辑层的实现

 在这一篇文章中,将实现一个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,则这一项应该这样写:
     

3.编写散列加密工具类
      因为在业务逻辑层的多处需要用到散列加密,所以在Utility工程下写一个辅助类Encryptor,完成这个工作,这个辅助类的具体代码如下:
 

Encryptor.cs
 1using System;
 2using System.Collections.Generic;
 3using System.Text;
 4
 5namespace NGuestBook.Utility
 6{
 7    /**
 8    /// 辅助类-用于对敏感数据进行Hash散列,达到加密效果
 9    ///
10    public sealed class Encryptor
11    {
12        /**
13        /// 使用MD5算法求Hash散列
14        ///
15        /// 明文
16        /// 散列值
17        public static string MD5Encrypt(string text)
18        {
19            return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(text, "MD5");
20        }
21
22        /**
23        /// 使用SHA1算法求Hash散列
24        ///
25        /// 明文
26        /// 散列值
27        public static string SHA1Encrypt(string text)
28        {
29            return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(text, "SHA1");
30        }
31    }
32}


4.实现业务逻辑层
      有了上述准备工作和以前实现的组件,业务逻辑层的实现非常直观。这里仅以管理员为例,展示如何实现业务逻辑层。
      AdminBLL类建立在SimpleBLL工程下的AdminBLL.cs文件中,实现了IAdminBLL接口,需具体代码如下:


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/shaily/archive/2009/01/30/3855009.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值