什么是Enterprise Library
    Enterprise Library是一组应用程序块(Application Block)的集合。他们是可重用的软件组件,被设计用来帮助开发者面对常用的企业级开发任务。用来解决我们在企业级开发中遇到常见问题,如配置管理、数据访问、缓存管理、记录操作日志、异常管理、加密解密、权限管理等。它是对很多有影响力的软件企业通过多年的开发实践积累下来的技术的整合当。前的版本是2006年1月发布的,基于.NET framework 2.0。这个版本包含了大量的新特性而且性能有所增强。

使用Enterprise Library的好处

    应用程序块(Application Block)能帮助解决开发者在接连不断的项目中所遇到的常见问题。它们封装了微软所推荐的基于.NET应用程序的最佳实践。它们能被方便快捷的插入到基于.NET的应用程序当中。数据访问应用程序块提供对 ADO.NET 最常用功能的访问,并通过易于使用的类将其公开。

Enterprise Library的用处

    Enterprise Library是为那些需要开发复杂的企业级应用程序的开发者而打造的。这些应用系统通常被广泛的部署,并且与其他系统相互关联。另外,它们通常有严格的安全性、很好的扩展性还有良好的性能等需求。Enterprise Library的用途如下:

 

  一致性。所有应用程序块都注重设计模式、实现方法、配置机制、文档、示例、部署和操作处理的一致性。

  可扩展性。开发人员可通过在可扩展点“插入”自已的代码或修改应用程序块的源代码,来自定义应用程序块的行为。企业程序库还包含帮助开发人员构建他们自己的与企业程序库相集成的应用程序块的指导。

  易于使用。企业程序库包括许多对早期版本的应用程序块的可用性改进,其中包括一个配置工具 — 企业程序库配置控制台,这使得用这些块进行评估、安装、学习、配置和开发更加轻松。

  集成。这些应用程序块被设计和测试为可以很好地一起(或独立)工作。

 

 

做一名程序员不容易。但这也是一件好事,否则这份工作很快就会变得无聊。每个项目都带来了新的需求和新的技术挑战,产品和平台版本不断演进。
  在开发过程中,除了令人兴奋的事情,还有相当多这样的感受:之前已经多次写过完全相同的代码。这是因为现实世界的需求往往需要开发人员在更高的抽象水平上写出通用的代码,基础平台并不能提供这样的功能,这些代码通常用于应用程序架构或企业在线交易应用程序中的跨业务特性。
  一遍一遍地编写大致相同的代码是很无聊的,同时效率低下,还会导致一致性问题和质量问题。为了解决这个问题,多年来,微软模式与实践小组编写了可重用、可扩展、可配置的源代码组件,称为应用程序块。我们从一个简单的数据访问帮助类开始,称之为数据访问应用程序块,然后很快转到其他方面,包括异常管理、日志、身份验证、缓存、脱机智能客户支持。这些程序块都被证明是行之有效的做法,它们设计用于满足最常见的企业应用需求,而且用于满足每一个组织或项目的特殊需求,这些程序块可以自定义并可以扩展。
  .NET开发社区已经很好地接纳了第一代应用程序块,所以大多数人都认为模式与实践小组开发的Enterprise Library(企业库)开创了基于代码的指导原则的新时代。企业库包含的功能和以前发布的独立程序块很相似,但在内部程序块之间取得了更强的一致性;易于扩展以支持新的需求;通过更简单的API、文档和实例,使用起来更方便;应用中常把程序块集成起来使用。
  除了交付件自身的变化,企业库另一个大的改进在于一个社区的形成——成千上万的开发人员、测试人员和架构师以及模式与实践小组通过我们的GotDotNet、博客、Webcasts和活动来共享问题、解决方案、经验和扩展。通过经验反馈和相互启发,已经极大地提升了企业库的价值,这是模式与实践小组自身所不能企及的。

 

Microsoft Enterprise Library来源于MSDN patterns & practices,现在的版本是Microsoft Enterprise Library 5.0。它由一系列的.net项目和辅助工具构成,这些项目生成的DLL便是Enterprise Library的核心。这些类库是微软patterns & practices开发团队通过长期的项目实践、内部经验和大量客户反馈总结出的一系列设计模式的合集,目的是帮助开发人员方便地在项目中运用被业界广泛认可的最佳实践。

 

 

Enterprise Library是由许多Application Block组成的,每个Application Block都能实现一个特定领域的功能,比如数据库访问、日志记录、缓存管理、配置管理、加密、用户认证和授权、异常捕捉,它们既可以单独使用,也能够互相协作。由于微软提供了类库的全部源码,所以Enterprise Library具备很高的扩展性和灵活性。

使用Enterprise Library的典型步骤是:
1、为项目添加对所需使用的Application Block的引用(一个或多个DLL文件)。
2、通过Enterprise Library Configuration这个内置的辅助工具(我最喜欢的部分)对需要使用的Application Block进行配置。开发人员在可视化的环境下完成配置,工具会自动撰写应用程序的配置文件App.config和各个Application Block的配置文件(一些.config文件)。
3、在代码中调用这些Application Block以实现特定领域的功能。
4、配置项目的编译后动作,将所有的.config文件复制到应用程序可执行文件所在的目录。

微软会指导你如何构建企业级的应用,以充分利用.NET的特性和功能。它以Prescriptive Architecture Guidance(PAG)文档的形式提供帮助。PAG文档详述了架构师设计应用程序时应当考虑的不同层、组件和服务。把PAG看成是Lego积木箱里的Sphinx。微软也以.NET应用程序块的形式提供了Lego块。一个应用程序块是实现组成应用程序的一个层上的一个组件或服务。
  那么,有什么问题?
  问题是没有使用Lego块创建应用程序块的指令手册或文档化的流程。从哪一个块开始?是不是要用到所有的块?盒子里是不是漏掉了什么块?如何把它们最好地组合在一起?
  本书就充当了这样一个手册,它指明如何用微软提供的程序块创建箱子上的图画。本书会帮助你在需要时重塑一些应用程序块,并明白如何创建新的程序块。它还介绍了微软提供的帮助你把程序块组织在一起的工具,以及围绕面向业务的架构组合.NET应用程序块的新的需求。
   应用程序块简史
  重用软件资产的好处已经被吹捧了好多年。今天,开发人员花费了大量的时间和精力来寻找他们需要的软件或代码库以避免“重新发明车轮”。开发常常带着“这可能以前有人做过”的想法在互联网上查找代码示例或可重用的软件库。有时能找到解决方案,有时不能。但是,即使能找到解决常见应用程序问题的软件库,使用它们也是一个挑战。资源的设计和质量以及资源的未来方向都必须进行评估。资源所依赖的附属物也要评估以决定使用它是否会导致企业偏离他们的战略路线。
  微软应用程序块试图通过提供一个大多数企业应用都需要的核心资产库进行帮助。这始于2002年4月最初引入的数据访问应用程序块。这个程序块之所以流行是因为它简单易懂(它的接口非常简单,没有依赖关系),同时它涵盖了大多数项目访问微软SQL Server数据库所需要的常见操作。
  在接下来的几年里,又引入了更多的应用程序块;但是,对它们的接纳程度并不相同。总体来讲,这些应用程序块都可以被认为是成功的,但当有了越来越多的程序块时,它们的使用就产生了问题。这些问题都围绕着以下事项。
* 一致性。应用程序块是微软在几年间由不同的团队创建的,它们之间并没有一致的原则。结果就是应用程序块在方法和包装上大不相同。如果使用一个新的应用程序块,用户发现很难理解。另外,因为程序块的方法不一致,许多用户发现很难在同一个项目让它们协同工作。
* 配置。大多数应用程序块依赖于复杂的配置,几乎没有工具支持或验证来帮助正确地配置应用程序。配置应用程序块必须手动创建并修改XML文件和测试运行时的结果。这是大多数最初的程序块用户面临的普遍问题之一。
* 复杂性。数据访问应用程序块之后的许多应用程序块都难于理解。但是,为了有效使用应用块,开发人员需要通过理解如何配置、开发和扩展程序块来快速磨合。缺少示例和指南来帮助开发人员快速掌握一个应用程序块。另外,程序块提供的文档并没有为大多数开发人员理解如何使用程序块提供足够的信息。
* 依赖关系。公司经常想用一个程序块,但它们发现不想接纳这个应用块的依赖关系。一个应用程序块经常与其他应用程序块是紧密相关的。例如,许多程序块都依赖于异常管理应用程序块。但是,如果一个企业不想使用异常管理应用程序块,那么它要么手动去掉依赖关系,要么根本不用这个程序块。同时,最初的日志应用程序块依赖于Enterprise Instrumentation Framework(EIF)。不想使用EIF的用户也不能使用日志程序块。
  企业库是应用程序块的演进。它不是微软的产品,因此你也不必为此付费。另外,企业库的所有代码都是公开的。这都与微软的其他产品有很大不同。企业库有7个应用程序块——配置、数据访问、缓存、异常处理、日志和检测、安全和加密,这个库真正能够应对企业应用中遇到的挑战。它不是.NET框架的一部分,但它确实是为了填充.NET框架中的“空白”,直到这时这个框架才吸纳了这些功能。
  企业库的远景是吸取最初的应用程序块的教训,不但要创建一套大多数企业应用所需要的最基本的应用程序块,还要创建一个完整的生态系统。在这里,微软客户、合作伙伴、团体成员和模式与实践小组都能提供可重用的资源,根据企业的需要,这些资源可以合并到代码库中。企业库背后的核心思想由四条原则定义,它们指导着企业库中所有应用程序块的开发。
* 一致性。每一个应用程序块都应该采用一致的设计模式和实现方法。这样,如果理解了一个程序块,再理解和使用其他程序块都会很容易,并能很快地提高生产率。
* 可扩展性。应用程序块必须定义可扩展点,通过插入自己的代码,开发人员可以自定义程序块的行为。目标是预测扩展的需要,最小化自定义代码时对核心元素的修改。通过设计可扩展的应用程序块,应用程序块能够适用于不同的环境,有更多机会适应企业,如果不这样设计,就很难达到目的。
* 易用性。对于开发人员,应用程序块必须易用。因此,企业库团队提供了:
—企业库配置工具。因为配置应用程序块被证明最难使用,所以创建了图形化的配置工具来改善这方面的体验。配置工具可以使创建、修改、删除和验证所有企业库自带应用程序块的配置信息变得很容易。这就不必手动修改XML文件让应用程序块正确工作。
—更简单的安装过程。建立一个开发环境来使用任一个应用程序块都变得很容易。
—清楚的文档和示例。每一个应用程序块的文档都包括如何使用应用程序块的关键场景,并说明了如何执行最常用的任务。
* 完整性。应用程序块应设计成能在一起工作,并通过测试保证能这样做。但是,也应该有可能使用其中一个应用程序块而不依赖于其他的程序块。贯穿企业库,应用程序块的整合都是以松耦合的目标进行设计的。依赖于其他程序块的应用程序块完全可以用另外的资源替换掉,而不影响调用块。
  最后,有重要的一点需要指出,企业库意在以具体到代码的方式提供架构指导。虽然它提供了全部源代码,允许每个用户修改它,但是在修改代码前要小心,因为每个应用块都有意在推行应对企业级应用常见的特定挑战的最佳实践。事实上,本书的许多章节都对应用程序块的设计和微软模式与实践小组发布的指南进行了比较。对于许多应用程序块,它们的实现就是遵循特定程序块蓝图指南的直接结果。

 

Microsoft Enterprise Library 5.0是一套可重用的应用程序块,帮助开发人员进行企业应用开发。新版本支持.NET Framework 4.0 。包括:Caching Block、Cryptography Block、Data Access Block、Exception Handling Block、Logging Block、Policy Injection Block、Security Block、Validation Block 和 Unity。

 

Enterprise Library的各个应用程序块如下:

 

  缓存应用程序块(Caching Application Block)。此应用程序块允许开发人员在其应用程序中集成本地缓存。

  数据访问应用程序块(Data Access Application Block)。此应用程序块允许开发人员在其应用程序中集成标准的数据库功能。

  加密应用程序块(Cryptography Application Block)。此应用程序块允许开发人员在其应用程序中包含加密和哈希功能。

  异常处理应用程序块(Exception Handling Application Block)。此应用程序块允许开发人员和决策人员针对发生在企业应用程序体系结构层的异常处理创建一致的策略。

  日志应用程序块(Logging Application Block)。此应用程序块允许开发人员在其应用程序中集成标准的日志功能。

  安全应用程序块(Security Application Block)。此应用程序块允许开发人员在其应用程序中集成安全功能。应用程序可在多种情况下使用应用程序块,例如,根据数据库验证和授权用户、检索角色和配置文件信息,以及缓存用户配置文件信息等。

下载地址:

地址1:

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=bcb166f7-dd16-448b-a152-9845760d9b4c

http://msdn.microsoft.com/en-gb/library/cc467894.aspx

地址2:

http://entlib.codeplex.com/

 

 

 

 

posted on 2010-05-24 15:30  Yincheng  阅读(176)  评论(0编辑  收藏  举报