开源ASP.NET电子商务平台 / Enterprise Library 5.0 开发向导- 简介(1)
Enterprise Library 5.0 开发向导- 简介(1)
-
微软企业库 Enterprise Library 5.0 正式发布!!!
在基于微软.NET 框架开发的应用程序中,无论是企业级的业务程序,或者是WPF、WCF或者ASP.NET应用程序,你都可以考虑使用Enterprise Library。本系列文章将帮助你快速掌握Enterprise Library 企业库,范例程序的应用,让你在开发中更容易使用Enterprise Library。你能从Enterprise Library中得到什么?
Enterprise Library 由一系列Application blocks组成,每一个Application Block是一个可重用的组件,可帮助开发人员解决企业级开发过程中面临的共同挑战。
需要引用的程序集
在任何使用Enterprise Library的应用程序中,都需要引用如下5个程序集,分别为通用程序集、Unity依赖注入容器、和Service Location程序集。
Microsoft.Practices.EnterpriseLibrary.Common.dll
Microsoft.Practices.Unity.dll
Microsoft.Practices.Unity.Configuration.dll
Microsoft.Practices.Unity.Interception.dll
Microsoft.Practices.ServiceLocation.dll
除了必要的程序集之外,你还需要引用程序中使用到的Application blocks程序集。每一个Application block 都有几个程序集。一般而言,包含一个主要的程序集,该程序集和block有相同的名称(如Microsoft.Practices.EnterpriseLibrary.Caching.dll),还有一些额外的程序集,这些程序集实现了特定的handler或者功能。如果你需要使用这些功能时,才需要应用这些额外的程序集。例如,在Caching block中,缓存到数据库,则需要Microsoft.Practices.EnterpriseLibrary.Caching.Database.dll。加密缓存数据,则需要Microsoft.Practices.EnterpriseLibrary.Caching.Cryptography.dll。如果你仅仅在内存中缓存未加密数据,则不必引用这些程序集。
配置 Enterprise Library
下图显示了Enterprise Library的配置管理界面。
加密配置项
如下是一个简单的未加密的数据访问块的配置信息。
<dataConfiguration defaultDatabase="Connection String" />
<connectionStrings>
<add name="Connection String"
connectionString="Database=TheImportantOne; Server=WEHAVELIFTOFF;
User ID=secret; Password=DontTellNE1"
providerName="System.Data.SqlClient" />
</connectionStrings>
当你指定DataProtectionConfigurationProvider 选项时,加密后配置信息如下所示。
<dataConfiguration
configProtectionProvider="DataProtectionConfigurationProvider">
<EncryptedData>
<CipherData>
<CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAc8HVTgvQB0quQI81ya0uH
...
JyEadytIBvTCbmvXefuN5MWT/T</CipherValue>
</CipherData>
</EncryptedData>
</dataConfiguration>
<connectionStrings
configProtectionProvider="DataProtectionConfigurationProvider">
<EncryptedData>
<CipherData>
<CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAc8HVTgvQB0quQI81ya0uH
...
zBJp7SQXVsAs=</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
Enterprise Library能够自动解密和读取配置信息,不必我们编写代码来解密。
实例化Enterprise Library 对象
在多数应用程序中,已经将Enterprise Library 应用程序块优化松散耦合使用组件。一般情况下,你需要使用依赖注入(Dependency Injection)模式来创建组件或façade实例。默认情况下,Enterprise Library 使用Unity 依赖注入容器来注入应用程序配置中的对象。
Unity 是一个轻量级的、灵活的、可配置的、可扩展的依赖注入容器,支持构造函数、属性设置和方法调用注入。为了能有效使用Enterprise Library,你应该熟悉创建Enterprise Library对象的基本方法,和注入Enterprise Library对象到应用程序类和组件。
如果你使用了Enterprise Library 的早期版本,你可能更熟悉之前创建对象的方法。早期的Enterprise Library通常支持或推荐使用静态的façade,或直接实例化Enterprise Library对象。在当前的Enterprise Library 5.0版本中,为了兼容现有的应用程序,仍然支持这些方法,但是不再推荐使用,可能在今后的版本中不支持。