每一个设计模式都是针对于某一个问题点的最佳的解决方法。<?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学习所得(一):总体概述相关推荐

  1. 黄聪:Microsoft Enterprise Library 5.0 系列教程(四) Logging Application Block

    企业库日志应用程序模块工作原理图:   从上图我们可以看清楚企业库日志应用程序模块的工作原理,其中LogFilter,Trace Source,Trace Listener,Log Formatter ...

  2. 利用 Enterprise Library 改善你的应用系统1

    现在应用系统的开发已经不再需要包揽一切了,有太多可以重用的组件.今天要向大家介绍一套微软的组件 Enterprise Library.它是微软通过总结自己的应用项目而开发出来的一套 free 的代码集 ...

  3. Microsoft Enterprise Library 5.0 系列(四) Logging Application Block

    企业库日志应用程序模块工作原理图: 从上图我们可以看清楚企业库日志应用程序模块的工作原理,其中LogFilter,Trace Source,Trace Listener,Log Formatter的信 ...

  4. Enterprise Library: Logging and Instrumentation Application Block概述

    Enterprise Library: Logging and Instrumentation Application Block概述<?xml:namespace prefix = o ns ...

  5. 最新版 Enterprise Library 企业库 V4.1 中文学习手册

    Enterprise Library for .Net Framework 3.5 – EntLib v4.1 是patterns & practices 小组为.NET Framework ...

  6. 基于深度学习的脑电图识别 综述(一)总体概述

    作者|Memory逆光 本文由作者授权分享 本文主要介绍了深度学习在EEG分析上的应用<Deep learning-based electroencephalography analysis: ...

  7. Enterprise Library 4.1学习笔记3----安全应用程序块

    打开\EntLib41Src\Quick Starts\Security\CS 先用aspnet_regsql.exe配置一个membership/role的基本数据库,然后修改下config文件中的 ...

  8. PCL(Point Cloud Library)学习指南资料推荐(2021版)

    PCL(Point Cloud Library)学习指南&资料推荐(2021版) 版权 双愚 https://zhuanlan.zhihu.com/p/268524083?utm_source ...

  9. Microsoft Enterprise Library 简介与请大家下载Microsoft Enterprise Library 5.0体验微软最新技术应用于企业信息平台

    什么是Enterprise Library     Enterprise Library是一组应用程序块(Application Block)的集合.他们是可重用的软件组件,被设计用来帮助开发者面对常 ...

最新文章

  1. Linux Shell学习(3)
  2. 23-java基础加强(反射、泛型、注解、动态代理)
  3. html转换成keynote,keynote代码高亮【转】
  4. phantomJs原理
  5. C语言必须写main函数?最简单的 Hello world 你其实一点都不懂!
  6. 文本分类模型_【文本分类】几个可作为Baseline的模型
  7. 【redis 学习系列08】Redis小功能大用处02 Pipeline、事务与Lua
  8. unix network programming volume 2 interprocess communications second edition环境搭建出错的处理...
  9. 【java学习之路】(java SE篇)010.多线程
  10. python实现FTP文件上传和下载
  11. 一分钟快速了解内网穿透软件有哪些
  12. ROS二维码识别以及OKR使用
  13. 微信小程序后端Java接口开发与调试
  14. Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
  15. Centos jenkins 插件安装失败
  16. Unity3D中 使模型变成变透明
  17. CSS3如何横向居中+纵向居中 in grid container
  18. spring test如何设置DebuggingClassWriter.DEBUG_LOCATION_PROPERTY
  19. 第五章 大数定律及中心极限定律
  20. Linux后处理软件,FieldView(CFD后处理软件)

热门文章

  1. 织梦php 中英文加手机,织梦dedecms系统中英文网站之中英文搜索结果
  2. mysql 备份_MySQL数据库备份实操
  3. lux系统服务器安装后多大,服务器环境搭建
  4. scanf函数使用遇到的问题
  5. MySQL 笔记8 -- 存储过程和索引
  6. 喜报!第四范式助推百胜中国斩获2020 IDC数字化转型重磅大奖
  7. 【学术相关】普通在读奶爸博士生的一年总结!
  8. 《Think Python》最新中文版火了,附完整PDF下载!
  9. 【算法基础】常用的数据结构与算法
  10. 【机器学习基础】一文说透正则项与模型复杂度