Enterprise Library学习所得(一):总体概述
生活随笔
收集整理的這篇文章主要介紹了
Enterprise Library学习所得(一):总体概述
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
每一個設(shè)計模式都是針對于某一個問題點的最佳的解決方法。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> Patterns:基于.NET提出的對反復(fù)出現(xiàn)的問題提供原子級的解決方案。 Application Blocks:面向公共服務(wù)的字系統(tǒng)級的應(yīng)用指南。 Reference Architectures:(包括一個Smart Client的應(yīng)用架構(gòu))針對客戶向通場景的系統(tǒng)級架構(gòu)指南。 Enterprise Library是一個可重用的程序塊庫,用于解決共性的企業(yè)級的開發(fā)過程中遇到的問題。 下圖為第一版本中各個Application Block之間的依賴關(guān)系。
Configuration Application Block:配置管理,為我們的應(yīng)用提供一個靈活性的解決方案。 1.為應(yīng)用系統(tǒng)提供了公共的配置管理解決方案,允許應(yīng)用程序方便靈活的從不同配置存儲讀寫配置信息。 2.隔離應(yīng)用程序和配置數(shù)據(jù)的物理存儲位置(Storage Location) ??? Stroage Providers:允許從不同的物理存儲讀寫信息(如:SQL/XML) ??? Transformers:將讀取的配置數(shù)據(jù)經(jīng)轉(zhuǎn)換器轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù) 3.內(nèi)置了XML Storage Provider和XML Transformer ??? 也能擴(kuò)展為對純數(shù)據(jù)庫的支持 4.改善安全性(支持加密保存) 5.配置文件監(jiān)控器(watchers)能夠監(jiān)測到配置文件的變化并發(fā)出事件通知 6.增強(qiáng)設(shè)計時(Design-Time)的易用性
?
Data Access Application Block:數(shù)據(jù)庫訪問應(yīng)用程序塊,提供了一個簡單的數(shù)據(jù)庫訪問方式。 1.對數(shù)據(jù)庫訪問提供了簡單、高效的訪問方式 ??? 減少編寫重復(fù)累贅代碼去執(zhí)行標(biāo)準(zhǔn)的數(shù)據(jù)訪問任務(wù) ??? 易于使用,使用單條語句即可完成Stored Procedure的調(diào)用 ??? 屏蔽了對常用ADO.NET使用的復(fù)雜度,提供了基于最佳實踐,正確快速使用接口 2.對不同類型的數(shù)據(jù)庫(SQLServer/Oracle/DB2)提供了編程上的透明性 ??? 為不同數(shù)據(jù)庫類型提供了統(tǒng)一的編程 ??? 當(dāng)移植應(yīng)用程序到不同數(shù)據(jù)庫類型時,減少重寫代碼的數(shù)量(移植時需要注意一些數(shù)據(jù)類型在不同數(shù)據(jù)庫中的不同方式,需要適當(dāng)修改代碼) 3.搭起了邏輯數(shù)據(jù)庫與物理數(shù)據(jù)庫之間的橋梁,降低改變物理數(shù)據(jù)庫目標(biāo)的難度(編程時不需關(guān)心使用的什么數(shù)據(jù)庫、放在哪里,在程序里僅是一個字符串,對于具體在哪、什么數(shù)據(jù)庫都是在配置時通過配置工具去實現(xiàn)的) 4.增強(qiáng)的數(shù)據(jù)庫聯(lián)接串的安全性 5.容易對數(shù)據(jù)庫訪問的配置信息進(jìn)行調(diào)整和驗證?
Crypto Application Block:加解密應(yīng)用程序塊 1.使用對稱加密算法對敏感信息進(jìn)行加密保存、或?qū)ζ溥M(jìn)行解密 2.對單臺機(jī)器上使用的信息進(jìn)行加密(without using keys) 3.創(chuàng)建密碼信息的散列值進(jìn)行保存,使用時需要對用戶提供的密碼散列值與保存值進(jìn)行對比(一般使用哈希算法,這個算法是不可以進(jìn)行逆運(yùn)算的) 1.簡化了開發(fā)人員為敏感信息進(jìn)行加解密工作 ??? 加解密任何類型(Stream/Byte)的信息 ??? 提高易用性 ??????? CreateHash / CompareHash(創(chuàng)建一個哈希散列值并能進(jìn)行比較) ??????? EncryptSymmetric / DecryptSymmetric(使用對稱算法進(jìn)行加密解密) (在使用時我們僅需要知道使用Cryptographer下的上述四個方法即可進(jìn)行使用,如果對于哪一個加解密算法不夠滿意的話,可以在下層對其進(jìn)行擴(kuò)展) 2.Cryptography Application Block加解密算法 ??? 基于.NET Framework已提供的Cryptography/Hash算法 ??????? 對稱算法:DES,RC2,Rijndael(在發(fā)布軟件提供密碼的情況下使用比較多) Managed and TripleDES(三維加密算法) ??????? 散列:SHA1,SHA256,SHA284,SHA512,SHA1Crypto,MD5Crypto,MACTripleDES ??? 允許集成自己開發(fā)的加解密算法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:一些關(guān)于安全的處理程序塊 提供了以下功能: 1.認(rèn)證: 2.授權(quán) 3.角色管理 4.Profile管理1.封裝通用的應(yīng)用安全相關(guān)的任務(wù)
2.最小化應(yīng)用安全相關(guān)的編碼(通過少量的方法Authenticate(認(rèn)證),Authorize(授權(quán)),GetRoles,SetProfile,GetProfile……) 3.提供標(biāo)準(zhǔn)的安全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.基于應(yīng)用安全的最佳實踐 實現(xiàn)了.Net支持的基于角色的安全特性,是通過Identity(身份,自身唯一身份的一種認(rèn)證方法)和Principle(主體特征,這個人所具有的角色和這些角色的認(rèn)證)實現(xiàn)的認(rèn)證和授權(quán)?
Exception Handling Application Block:例外程序處理應(yīng)用程序塊 1.Exception Handling application block提供了簡單的功能強(qiáng)大的例外處理機(jī)制,在應(yīng)用系統(tǒng)的不同層面采用一致的例外處理策略 2.Exceptions由配置工具進(jìn)行定義和維護(hù) - 不需要通過編碼控制例外處理的行為 3.定義“Exception Policies”,可指定該策略發(fā)生時的行為 ??? 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提供了附加的處理行為 ??? 將例外寫入日志 ??? 用另一個例外進(jìn)行封裝 ??? 采用不同的例外替代以便隱藏敏感的例外信息 ??? 創(chuàng)建自己的Handler?
Logging & Instrumentation Application Block:日志處理應(yīng)用程序塊(實際上就是實現(xiàn)了一個把某一個東西寫出去) 1.提供簡單標(biāo)準(zhǔn)一致的Logging機(jī)制 2.取代了原有的Enterprise Instrumentation Framework和Logging Application Block 3.能靈活指定哪類信息以何種格式輸出、輸出到何處 ??? 實現(xiàn)了應(yīng)用程序代碼與日志策略的隔離 4.Sinks(一種管道的方式)提供了以下日志輸出 ??? Event Log ??? Database ??? Text File ??? MSMQ ??? Email ??? WMI ??? 自己開發(fā)的Sink……?
Caching Application Block:緩存應(yīng)用機(jī)制 1.提供了靈活可擴(kuò)展的緩存機(jī)制可以用于以下各種類型的應(yīng)用框架中: ??? 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機(jī)制 ??? In-memory cache(在內(nèi)存中) – 非永久緩存,但性能很好 ??? Backing store – 永久性緩存,但較慢 ??????? Database ??????? Isolated Storage 3.易于使用——提供了Cache處理所需的所有功能(retrieve(提取), add(追加), remove(移除) cached data) ??? 可配置的expiration和scavenging策略轉(zhuǎn)載于:https://blog.51cto.com/bearstudyhard/298077
總結(jié)
以上是生活随笔為你收集整理的Enterprise Library学习所得(一):总体概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于使用DataGrid的ButtonC
- 下一篇: Session对象的清空