按:Enterprise Library 是微软net最重要的一个开源框架库,集成了多种功能的大成库,内容丰富,编写规范,移植到项目应用也非常方便。
转载:
http://www.infoq.com/cn/news/2008/04/EntLib4
前几天,EntLib团队更新了他们在CodePlex的项目发布页面,并对外提供EntLib 4 CTP源码、安装脚本的下载。一直以来,EntLib以其严谨的结构、系统化的面向对象设计和对“纯.NET”方案的支持在很多互联网应用以及企业内部应用中被开发团队用来借鉴和学习,但由于其规模庞大,因此也形成了比较陡峭的学习曲线。 此次发布的CTP版本包括如下内容:
- ObjectBuilder / ObjectBuilder 2 (二进制形式)
- Unity / Unity.StaticFactory (二进制形式)
- 缓存——Cache
- 异常处理——ExceptionHandling
- 数据访问——Data
- 日志——Logging
- 策略注入——PolicyInjection
- 安全——Security(包括授权和安全存储机制)
- 加密——Security.Cryptography
- 验证——Validation
另外最值得一提的是对WMI 2的支持,在新的EntLib 4中,所有的应用代码块的主要工作类型都有自己独立的WMI类型对象,运行监控机制可以用类似SQL语句的方式直接检索运行组件的性能计数或配置属性情况,例如下面就是用WQL(WMI Query Language)访问一个测试配置节的示例:
using ( ManagementObjectCollection.ManagementObjectEnumerator resultEnumerator
= new ManagementObjectSearcher (
"root\\enterpriselibrary", " SELECT * FROM MockConfigurationSectionSetting " )
.Get().GetEnumerator())
{
Assert.IsTrue(resultEnumerator.MoveNext());
Assert.AreEqual("Foo", resultEnumerator.Current.Properties["ApplicationName"].Value);
Assert.AreEqual("Bar", resultEnumerator.Current.Properties["SectionName"].Value);
Assert.IsFalse(resultEnumerator.MoveNext());
}
区别于其他很多提供类似功能的.NET开源框架,EntLib的实现一直比较庞大,因此对于项目初期开发团队而言会感到学习曲线过于陡峭,但在项目投入生产环境之后,随着物理层IT环境的不断变化以及为了满足用户可用性指标提供的运行监控机制都会令后来的框架越来越向EntLib的方向发展,但由于很多企业应用运行机制都是后来“补”齐的,因此会对应用底层框架带来比较大的冲击或令设计比较繁琐。对于类似情况的应用反而不如项目初期就选择具有整体性设计的EntLib。