- 浏览: 475685 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1028)
- [发布至博客园首页] (826)
- [随笔分类]个人生活随笔 (14)
- [网站分类]首页候选区 (26)
- [网站分类]SharePoint (15)
- [网站分类]其他技术区 (6)
- [随笔分类]批处理技巧 (6)
- [随笔分类].net 2.0 (3)
- [随笔分类]SharePoint2007(MOSS2007) (0)
- [网站分类].NET新手区 (6)
- [网站分类]ASP.NET (6)
- [网站分类]架构设计 (18)
- [网站分类]程序人生 (2)
- [网站分类]SQL Server (2)
- WCF (3)
- 编程技巧 (2)
- 模式架构 (2)
- 分析设计 (4)
- 生活随笔 (0)
- 软件工程 (1)
- Android实例 (2)
最新评论
-
zilong0536:
楼主您好:
请问发表博文支持图片的功能怎么实现啊,一直没有思路 ...
新浪微博开放平台开发-android客户端(3) -
nicegege:
小弟 学习了
帮助中国移动设计10086的排队小模块 -
zl7824516:
用什么技术没说啊
通告(公告),消息(站内短信),提醒的设计:通告 -
virusswb:
源码下载: SinaWeibo2 源码下载之后,将后缀改为ra ...
新浪微博开放平台开发-android客户端(3) -
Jimmyxu0311:
找不到源码下载
新浪微博开放平台开发-android客户端(3)
在4.1中你可以使用Unity Application Block(Unity)在函数或者是功能运行之前或者之后拦截企业库的对象,生成这些对象,并且将他们注入到其他对象中。
企业库中包含了很多的类,允许你从Unity容器中获取在企业库配置中定义的,类似SqlDatabase或者是CacheManager对象的实例。另外,一些有好的注入代替了过去的静态方法。使用Unity的依赖注入能力可以很好的简化你的代码。
使用4.1的系统需要
windows xp,2003,2008,vista
.NET FRAMEWORK 3.5或者更高
VS208
一、框架的依赖关系
准确的说就是程序集的依赖性,也就是要实现什么样的功能,都需要那些程序集引用。
1、所有功能都依赖的程序集
1.1 Microsoft.Practices.EnterpriseLibrary.Common.dl,里面包含了企业库的核心服务,被企业库的其他模块共享使用(除了Unity没有使用,你可以单独使用Unity Application Block实现依赖注入功能)。
1.2 Microsoft.Practices.ObjectBuilder2.dll,对象创建子系统,它执行了全部有关创建和回收对象的重复且必要的工作任务,同时提供了高级别的灵活性。
2、缓存模块额外依赖的程序集
2.1 如果使用数据库作为后段数据存储,你需要Data Access模块
2.2 如果你想加密缓存中的数据,你需要Cryptoraphy模块
3、异常处理额外需要的程序集
3。1 如果你想很实用日志模块记录异常信息,需要引用Microsoft.Practices.EnterpriseLibrary.Logging.dll和Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll。
3.2 还可能需要其他的程序集,例如Data Access模块,因为你可能想要记录异常信息。
4、策略注入Policy Injection额外需要的程序集
4.1 Policy Injection 提供了标准的处理过程,如果你的代码不使用内置的处理,你可以不部署policy injection依赖的程序集。
4.2 如果要使用policy injection 内置的权限处理,需要添加Security模块
4.3 如果使用policy injection内置的异常处理,你需要添加异常处理模块
4.4 如果使用policy injection内置的日志处理,需要添加日志模块
4.5 如果使用policy injection内置的数据验证,需要添加验证模块
5、安全模块额外依赖的程序集
5.1 缓存模块,安全模块使用缓存模块将安全信息缓存起来,用的时候可以获取出来。你也可以使用自己的缓存Provider代替企业库中的缓存模块,在配置缓存模块的时候还可能需要数据访问模块,更多的信息可以查看缓存模块的依赖关系。
二、依赖注入模块的使用
Unity Applicaiton Block提供了一个轻量的、可扩展的依赖注入容器,支持构造函数、属性以及方法调用注入。你可以在自己的应用中使用Unity或者自定义的依赖注入方式,创建企业库的对象或者自定义的依赖于其他对象或者服务的业务对象或者是服务。
你也可以不这么做,还是按照企业库以前的方式创建对象。
如果你决定使用Unity,你就需要添加对这个程序集的依赖。而且,和其他模块一样,Unity依赖于ObjectBuilder。关于更多的信息和依赖关系,可以查看依赖关系图。
三、依赖关系图
有很多种方法可以创建企业库的对象实例,你可以使用下面的方法之一来达到目的;
- 使用每一个模块的工厂类和企业库的核心类库创建对象实例
- 使用Unity模块创建任何类型的对象实例
- 在不使用企业库核心类库的情况下,使用Unity或者是第三方的依赖注入方法创建对象实例
1、使用企业库的工厂方法
企业库4.1支持以前版本的对象创建方法。每一个功能模块,核心库,都可以用工厂方法创建对象实例。例如:你可以使用下面的代码创建一个配置好的CacheManager类的实例。
上面的代码在企业库的核心类库中很常见,它直接调用了ObjectBuilder的工具类。在下图中,你会发现,所有的功能都依赖于企业库的核心和ObjectBuilder。
使用这种方法创建对象,需要部署下列程序集:
- 核心库Microsoft.Practices.EnterpriseLibrary.Common.dll
- 对象创建程序集Microsoft.Practices.ObjectBuilder2.dll
2、使用Unity Application Block创建对象
Unity允许开发者用依赖注入的模式创建各种对象。如果需要的话,自动注入需要依赖的对象。可以使用这种方式创建企业库对象和自定义的业务对象。下图显示使用Unity改变应用程序和企业库核心的依赖关系。
在这种情况下,除去Unity,所有的模块都依赖于核心类库的配置系统。但是,尽管Unity使用了存储在应用程序目录下的app.config和web.config文件中的配置信息,但是Unity容器不会被自动创建和配置。相反,需要开发者创建容器并且加载配置信息。
创建并且配置了容器之后,开发者可以使用下面的语法创建对象。
使用这种技术创建对象,开发者需要部署下面的程序集:
- 核心类库Microsoft.Practices.EnterpriseLibrary.Common.dll
- Unity程序集Microsoft.Practices.Unity.dll
- 对象创建程序集Microsoft.Practices.ObjectBuiler2.dll
- 应用中使用的其他模块的程序集
3、使用第三方依赖注入技术
Unity被设计成一个可以既可以在企业库中使用,也可以单独使用的依赖注入技术。另外,如果需要,开发者可以用第三方的依赖注入框架代替Unity,下图显示了使用第三方依赖注入框架的时候各模块的依赖关系。
这个方法要求第三方的依赖注入框架支持在配置中描述对象、设置以及和各功能模块的必要关系。Unity中包含了在企业库中使用依赖注入技术的标准配置的范本。
使用这种技术创建对象,开发者需要部署的程序集如下:
- 用到的各功能模块的程序集。
- 企业库的Common程序集,里面包含了共享的核心功能
- 如果使用Unity作为依赖注入技术,开发者必须要部署Microsoft.Practices.Unity.dll和Microsoft.Practices.ObjectBuilder2.dll
- 如果使用第三方的依赖注入技术,开发者需要部署相关程序集,并且配置他们。
有的时候,如果没有加入所需的程序集,会在编译的时候有提示,提示需要加入的程序集。
未完待续。。。。。。。。。。。。。。。。。。
发表评论
-
NET 应用架构指导 V2 学习笔记(十六) 服务层设计指导
2010-06-04 00:13 527如果你的应用是通 ... -
NET 应用架构指导 V2 学习笔记(十七) 组件设计指导
2010-06-05 00:48 628组件提供了一种将 ... -
NET 应用架构指导 V2 学习笔记(十八) 表现层组件设计指导
2010-06-05 21:09 497本章讲述的是你在设计用户界面组件和表现层逻辑组件的时候应该 ... -
NET 应用架构指导 V2 学习笔记(十九) 表现层组件设计指导
2010-06-06 06:15 5605 决定数据绑定的 ... -
NET 应用架构指导 V2 学习笔记(二十) 业务组件设计指导
2010-06-07 06:58 581前言 业务组件 ... -
微软企业库5.0学习笔记(四十二)异常处理模块
2010-06-14 00:04 808企业库的异常处理 ... -
关于程序员在30岁、35岁之后怎么办的新思考
2010-06-14 10:40 597首先给大家问个好 ... -
NET 应用架构指导 V2 学习笔记(二十四) 跨层关注问题
2010-06-17 20:00 553概况 大部分的 ... -
微软企业库5.0学习笔记(四十三)数据验证模块
2010-06-19 08:07 967概况 任何接受用户或者是其他系统输入的应用,一定要确保 ... -
关于项目进度慢的思考----如何提高整体开发效率
2010-06-21 23:42 774我们都是软件行业 ... -
微软企业库5.0学习笔记(四十四)实战数据验证模块
2010-06-23 19:22 7971 在业务对象上添加验证 添加对程序集【Microso ... -
微软企业库5.0学习笔记(四十五)实战数据验证模块----高级篇
2010-06-24 19:41 9511、添加自定义的提示信息 验证失败的提示信息可以自定义 ... -
面向对象类设计的五大原则(一)单一职责原则Single Responsibility Principle
2010-06-29 15:45 739引言 面向对象类设计,或者说是面向对象设计,有五大原则 ... -
《深入浅出设计模式-中文版》读书笔记 开篇乱弹(一)
2010-07-01 06:42 624oreilly的《Head.First ... -
《深入浅出设计模式-中文版》读书笔记-继承与组合(三)
2010-07-03 16:53 581经过上一次的改造 ... -
《深入浅出设计模式-中文版》读书笔记-观察者模式(四)
2010-07-06 06:34 605今天要接触的是观 ... -
利用attribute实现简单的ORM
2010-07-09 15:27 649我不知道NH的ORM具 ... -
系统内部模块(子系统)之间的耦合以及模块(子系统)划分
2010-07-14 13:02 790题外话 最近已经在努力学习了,学习基本功,学习设计模式 ... -
《深入浅出设计模式-中文版》读书笔记-工厂模式(五)
2010-07-16 12:46 671今天给大家带来的是:工厂模式。 我们在代码中创建一个对 ... -
Head.First.Object-Oriented.Design.and.Analysis《深入浅出面向对象的分析与设计》读书笔记(一)
2010-07-18 21:47 640题外话 又是一本Head.First系列的书,这个系列 ...
相关推荐
1 - Enterprise Library 介绍 (100%) 2 - 用 Enterprise Library 开发应用程序 (100%) 3 - Enterprise Library 的设计 (100%, 移植中) 4 - 部署 Enterprise Library (100%, 移植中) 5 - 扩展 Enterprise Library...
2017Andrew NG Deeplearning Coursera深度学习笔记v4.1
Framework 3.5 开发一套企业库,目前最新版本为 v4.1,共包括 9 个 Application Block,包括 数据访问(Data Access Application Block)、异常管理(Exception Handling Application Block)、 数据验证...
DMA/Bridge Subsystem for PCI Express v4.1 读书笔记 (中文) XDMA 参考文档:PG195, https://github.com/Xilinx/dma_ip_drivers, https://support.xilinx.com/s/article/65443?language=en_US XDMA IP核的中文...
Enterprise Library4.1安装包下载
Coursera深度学习笔记v4.1.rar。学习交流使用,勿做商业用途!
NULL 博文链接:https://ghl116.iteye.com/blog/1184028
最新版 Enterprise Library 企业库 V4.1 中文学习手册
Java课程所有学习笔记4.1.md
CISCO ACS 4.1搭建笔记总结:自己总结,自己安装,自己做笔记!希望能帮助大家!
MVC3+EF4.1学习系列(一)创建EF4.1_code_first
Enterprise Library 企业库 V4.1 中文学习手册与前面上传的part1是一起的,可用于ELB5.0 的学习
最新版 Enterprise Library 企业库 V4.1 中文学习手册,与最新版的ELB5.0基本一样,ELB5.0只是代码的重写。
junit4.1junit4.1junit4.1junit4.1junit4.1