Jason Shen

Any fool can write code that a computer can understand. Good programmers write code that humans can understand. ---Martin Fowler

博客园 首页 新随笔 联系 订阅 管理

如果你看了安装文档,你将知道当前的企业库实际上包括九个应用程序块。然而,实际”显身手”的只有七个块(称为功能块),
另外两个起辅助作用(连接块)。也就是说,这七个块真正用于具体的横切关注点,诸如,缓存,日志,数据访问及验证。那两
个,即统一依赖注入(Unity Dependency Injection)机制与策略注入(Policy Injection)应用程序块,用于帮助你实现更高松
耦合,可测试,可维护的系统。所以企业库依靠Unity的特征来创建块中的对象,但这也仅仅显示了Unity的通用性。在这里我
们将重点关注七个功能块。

     下面的列表描述了你将要了解的横切关注点:

  •    缓存(Caching)缓存应用程序块让你并入本地缓存到你的应用程序,这些程序使用了内存缓存,可能还使
       用了数据库或隔离存储后备存储器(isolated storage backing store)。这块提供了包括检索,增加及移除缓存
       数据在内的所有必需功能,还支持可配置的过期及消除策略。你也可以通过创建你自己的插件提供程序(pluggable
       providers)或使用第三方提供程序来扩展它(例如,为了支持分布式缓存及其它功能)。在许多应用场景中,缓存
       能提供可观的性能及效率方面的改进。
  •   认证管理(Credential Management)。安全应用程序块让你容易地实现公共的与授权有关的功能,例如,缓存
      用户的授权及身份验证数据,然后与.NET框架安全功能整合。
  •   数据访问(Data Access)。数据访问应用程序块简化了许多公共的数据访问任务,例如用于显示的数据读取,通过
      应用程序层(application layers)来传递数据,及提交变更数据给数据库系统。它提供存储过程与内联SQL两种支持,
      将数据以对象序列的形式公开让客户端查询,也通过使用便利的类提供ADO.NET中最常使用的功能。
  •   加密(Encryption)。加密应用程序块让你轻松实现加密功能,例如加密与解密数据,从数据中创建哈希(hash),以及
      通过比较哈希值来确认数据没有被篡改。当开发可能引入漏洞(security vulnerabilities)的自定义机制时,使用这块有
      助于你避开常见缺陷。
  •   异常处理(Exception Handling)。异常处理应用程序块轻松快速地设计与实现一个一致的策略,用来管理发生在应
      用程序各层的异常。它能记录异常信息,通过用另一个异常替换原始异常来隐藏敏感信息,以及通过包含原始异常在另
      一个异常来维护原始异常的上下文信息。
  •   日志(Logging)。日志应用程序块简化了常见的日志功能的实现,例如,写信息到Windows事件日志,邮件消息,数
      据库,Windows消息队列,文本文件,Windows管理检测(Windows Management Instrumentation)事件,或自定
      义位置。
  •   验证(Validation)。通过使用特性(attribute),规则集(rule set)及与大多数类型的应用接口技术集成,验证应用程序块
      实现了结构化的,易于维护的验证机制。

应用程序块帮助开发人员解决了在项目中遇到的公共问题。它封装了Microsoft推荐的实践,而这些实践用于基于.NET框架的应用
程序开发。例如,数据应用程序块提供了ADO.NET最常使用的功能,而这些是通过公开容易使用的类来实现的。在有些情况下,
应用程序块也添加一些不直接由基础类库支持的相关功能。

posted on 2010-11-30 16:43  Jason Shen  阅读(632)  评论(3编辑  收藏  举报