Enterprise Library 4.0
微软发布了支持Visual Studio 2008的新版本Enterprise Library 4.0,同时也发布了他们的依赖注入容器Unity应用程序块的1.1版本。
模式与实践团队的产品经理Grigori Melnik宣布发布Enterprise Library 4.0和Unity 1.1更新,详细描述了所有新特性。
MSDN开发中心的新闻稿解释了这个版本对开发人员的意义:
此次发布的Enterprise Library包括了一个应用程序块(参见Unity 应用程序块)。Unity是一个轻量级,可扩展的依赖注入容器,支持构造函数,属性和方法调用注入。你可以单独使用Unity应用程序块的依赖注入机制而不需要安装Enterprise Library。不过,此次发布的Enterprise Library集成了Unity,提供了一种新的方式创建Enterprise Library对象。
几个现有的应用程序块的功能上也有改进。下面章节讨论在这个版本中的变化。此外本次发布的版本支持Visual Studio 2008,Windows管理规范(WMI)2.0版和微软.NET Framework 3.5。
Enterprise Library 4.0
Enterprise Library 4.0版本包含以下应用程序块:
- Caching Application Block . 开发人员可以使用这个程序块在应用程序中应用缓存. 支持可插拔的缓存提供者(Provider)。
- Cryptography Application Block . 开发人员可以把这个应用程序块在应用程序中应用散列和对称加密。
- Data Access Application Block . 开发人员可以把这个应用程序块作为应用程序的标准的数据库访问功能。
- Exception Handling Application Block . 开发人员和决策者可以使用这个应用程序块为企业应用程序各层异常处理制定一致的策略。
- Logging Application Block . 开发人员可以使用这个应用程序块为他们的应用程序提供日志记录功能。
- Policy Injection Application Block . 开发人员可以使用这个应用程序块在应用中提供拦截策略,可以用它来简化整个系统的通用功能的实现,例如日志记录,缓存,异常处理以及验证。
- Security Application Block . 开发人员可以用这个应用程序块为他们的应用程序提供授权和安全的缓存功能。
- Unity Application Block . 开发人员可以使用这个应用程序块作为一个轻量级和可扩展的依赖注入容器,支持构造函数,属性和方法调用注入。
- Validation Application Block . 开发人员可以使用个应用程序块为他们的应用层的业务对象创建验证规则,可以在应用程序的各个层里面使用。
Enterprise Library 4.0有什么新特性?
- 集成Unity应用程序块
- 支持Windows管理规范(WMI)2.0和改进性能计数器
- 性能提升(特别是在日志记录应用程序块)
- 可插拔的缓存管理
- 支持Visual Studio 2008
- Bug修复
目前已发布的所有应用程序块的快速入门:
- 缓存应用程序块快速入门
- 加密应用程序块快速入门
- 数据访问应用程序块快速入门
- 异常处理应用程序块快速入门
- 安全应用程序块快速入门
- 日志应用程序块快速入门
- 策略注入应用程序块快速入门
- Unity 应用程序块快速入门
- 验证应用程序块快速入门
Enterprise Library 4.0可以从模式与实践开发者中心下载。
Unity 1.1
Unity是一个集成Enterprise Library的依赖注入容器,但是不依赖于Enterprise Library:
Unity是一个轻量级,可扩展的依赖注入容器,支持构造函数,属性和方法调用注入。你可以使用Unity和企业类库来生成Enterprise Library对象和你自己的自定义业务对象。 但是Unity应用程序块和Enterprise Library所包含的其他几个应用程序块在几个方面是不一样的:
- 你可以单独使用Unity应用程序块的依赖注入机制而不需要安装Enterprise Library。
- Unity应用程序块可以通过配置文件来配置容器,但也支持通过代码在运行时动态注册依赖关系。
- Unity应用程序块不依赖于Enterprise Library的核心和Enterprise Library的配置系统。它有自己内建的机制来读取配置信息,虽然配置也可以来自Enterprise Library的配置文件。
Unity 1.1有什么新特性?
- 清理了所有过时的ObjectBuilder代码。
- 修复bug:在生命周期管理器中使用泛型类型。
- 修复bug:RigisterType覆盖了RegisterInstance。
- 提升了解析单件对象的性能。
- 公开了一些内部类,更容易编写类型的扩展(那些自定义的如何解析依赖对象)。
- 改进了值解析失败时的出错信息。
本次发布还没有实现的特性?
- 拦截机制还没有实现,这是Unity最高优先级的需求。
- 如果需要AOP功能,依旧可以使用策略注入应用程序块。
- 没有提供支持DI配置的工具。
Unity 1.1可以从模式与实践开发者中心下载。
David Hayden提供了一个Enterprise Library 4.0 数据访问程序块集成Unity 控制反转(IoC)的播客并对如何使用给出了一个很好的介绍。