Enterprise Library学习所得(一):总体概述
生活随笔
收集整理的這篇文章主要介紹了
Enterprise Library学习所得(一):总体概述
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
每一個設計模式都是針對于某一個問題點的最佳的解決方法。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> Patterns:基于.NET提出的對反復出現的問題提供原子級的解決方案。 Application Blocks:面向公共服務的字系統級的應用指南。 Reference Architectures:(包括一個Smart Client的應用架構)針對客戶向通場景的系統級架構指南。 Enterprise Library是一個可重用的程序塊庫,用于解決共性的企業級的開發過程中遇到的問題。 下圖為第一版本中各個Application Block之間的依賴關系。
Configuration Application Block:配置管理,為我們的應用提供一個靈活性的解決方案。 1.為應用系統提供了公共的配置管理解決方案,允許應用程序方便靈活的從不同配置存儲讀寫配置信息。 2.隔離應用程序和配置數據的物理存儲位置(Storage Location) ??? Stroage Providers:允許從不同的物理存儲讀寫信息(如:SQL/XML) ??? Transformers:將讀取的配置數據經轉換器轉換為結構化數據 3.內置了XML Storage Provider和XML Transformer ??? 也能擴展為對純數據庫的支持 4.改善安全性(支持加密保存) 5.配置文件監控器(watchers)能夠監測到配置文件的變化并發出事件通知 6.增強設計時(Design-Time)的易用性
?
Data Access Application Block:數據庫訪問應用程序塊,提供了一個簡單的數據庫訪問方式。 1.對數據庫訪問提供了簡單、高效的訪問方式 ??? 減少編寫重復累贅代碼去執行標準的數據訪問任務 ??? 易于使用,使用單條語句即可完成Stored Procedure的調用 ??? 屏蔽了對常用ADO.NET使用的復雜度,提供了基于最佳實踐,正確快速使用接口 2.對不同類型的數據庫(SQLServer/Oracle/DB2)提供了編程上的透明性 ??? 為不同數據庫類型提供了統一的編程 ??? 當移植應用程序到不同數據庫類型時,減少重寫代碼的數量(移植時需要注意一些數據類型在不同數據庫中的不同方式,需要適當修改代碼) 3.搭起了邏輯數據庫與物理數據庫之間的橋梁,降低改變物理數據庫目標的難度(編程時不需關心使用的什么數據庫、放在哪里,在程序里僅是一個字符串,對于具體在哪、什么數據庫都是在配置時通過配置工具去實現的) 4.增強的數據庫聯接串的安全性 5.容易對數據庫訪問的配置信息進行調整和驗證?
Crypto Application Block:加解密應用程序塊 1.使用對稱加密算法對敏感信息進行加密保存、或對其進行解密 2.對單臺機器上使用的信息進行加密(without using keys) 3.創建密碼信息的散列值進行保存,使用時需要對用戶提供的密碼散列值與保存值進行對比(一般使用哈希算法,這個算法是不可以進行逆運算的) 1.簡化了開發人員為敏感信息進行加解密工作 ??? 加解密任何類型(Stream/Byte)的信息 ??? 提高易用性 ??????? CreateHash / CompareHash(創建一個哈希散列值并能進行比較) ??????? EncryptSymmetric / DecryptSymmetric(使用對稱算法進行加密解密) (在使用時我們僅需要知道使用Cryptographer下的上述四個方法即可進行使用,如果對于哪一個加解密算法不夠滿意的話,可以在下層對其進行擴展) 2.Cryptography Application Block加解密算法 ??? 基于.NET Framework已提供的Cryptography/Hash算法 ??????? 對稱算法:DES,RC2,Rijndael(在發布軟件提供密碼的情況下使用比較多) Managed and TripleDES(三維加密算法) ??????? 散列:SHA1,SHA256,SHA284,SHA512,SHA1Crypto,MD5Crypto,MACTripleDES ??? 允許集成自己開發的加解密算法Provider 3.提高集成性 ??? Supports all .NET crypto algorithms out of the box, or implement your own ??? Supports DPAPI for keyless crypto on a single machine ??? Algorithms and keys can be managed through the configuration tool?
Security Application Block:一些關于安全的處理程序塊 提供了以下功能: 1.認證: 2.授權 3.角色管理 4.Profile管理1.封裝通用的應用安全相關的任務
2.最小化應用安全相關的編碼(通過少量的方法Authenticate(認證),Authorize(授權),GetRoles,SetProfile,GetProfile……) 3.提供標準的安全Provider模型 ??? DbAuthenticationProvider – authenticate users against database ??? AzManAuthorizationProvider – authorize users against Authorization Manager ??? DbRolesProvider – retrieve roles from a database ??? DbProfileProvider – retrieve profiles from a database ??? AdRolesProvider – retrieve roles from Active Directory 4.基于應用安全的最佳實踐 實現了.Net支持的基于角色的安全特性,是通過Identity(身份,自身唯一身份的一種認證方法)和Principle(主體特征,這個人所具有的角色和這些角色的認證)實現的認證和授權?
Exception Handling Application Block:例外程序處理應用程序塊 1.Exception Handling application block提供了簡單的功能強大的例外處理機制,在應用系統的不同層面采用一致的例外處理策略 2.Exceptions由配置工具進行定義和維護 - 不需要通過編碼控制例外處理的行為 3.定義“Exception Policies”,可指定該策略發生時的行為 ??? Exceptions of type ApplicationException should be logged ??? Exceptions of type SqlClientException should be caught and wrapped with an exception of type DataLayerException and rethrown ??? Exceptions of type SecurityException should caught and replaced with an Acces<?xml:namespace prefix = st1 ns = "Tencent" />sDeniedException which will be thrown 4.Exception Handlers提供了附加的處理行為 ??? 將例外寫入日志 ??? 用另一個例外進行封裝 ??? 采用不同的例外替代以便隱藏敏感的例外信息 ??? 創建自己的Handler?
Logging & Instrumentation Application Block:日志處理應用程序塊(實際上就是實現了一個把某一個東西寫出去) 1.提供簡單標準一致的Logging機制 2.取代了原有的Enterprise Instrumentation Framework和Logging Application Block 3.能靈活指定哪類信息以何種格式輸出、輸出到何處 ??? 實現了應用程序代碼與日志策略的隔離 4.Sinks(一種管道的方式)提供了以下日志輸出 ??? Event Log ??? Database ??? Text File ??? MSMQ ??? Email ??? WMI ??? 自己開發的Sink……?
Caching Application Block:緩存應用機制 1.提供了靈活可擴展的緩存機制可以用于以下各種類型的應用框架中: ??? Windows Forms ??? Console application ??? NT Service / COM+ Server ??? ASP.NET Web application or Web service if you need features not include in the ASP.NET cache 2.支持兩類Caching機制 ??? In-memory cache(在內存中) – 非永久緩存,但性能很好 ??? Backing store – 永久性緩存,但較慢 ??????? Database ??????? Isolated Storage 3.易于使用——提供了Cache處理所需的所有功能(retrieve(提取), add(追加), remove(移除) cached data) ??? 可配置的expiration和scavenging策略轉載于:https://blog.51cto.com/bearstudyhard/298077
總結
以上是生活随笔為你收集整理的Enterprise Library学习所得(一):总体概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于使用DataGrid的ButtonC
- 下一篇: Session对象的清空