微軟企業庫 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版本中,為了相容現有的應用程式,仍然支援這些方法,但是不再推薦使用,可能在今後的版本中不支援。