随笔分类 -MS Enterprise Library
微软企业库5.0学习笔记(三十五)数据访问模块 DataSet以及数据库事务
2010-05-16 11:52 by virus, 1255 visits, 网摘, 收藏, 编辑摘要:使用DataSet进行工作 使用Database类的ExecuteDataSet方法获取DataSet对象,在DataSet对象中,默认的表名称依次为Table,Table1,Table2.。。。。。。。。。。。。 如果你想要将数据加载到一个已经存在的DataSet对象中,可以使用LoadDataSet方法。 代码 Code highlighting produced by Actipro ... 阅读全文
微软企业库5.0学习笔记(三十四)数据访问模块 各种获取数据的方式
2010-05-16 10:33 by virus, 1041 visits, 网摘, 收藏, 编辑摘要:以对象形式从数据库获取数据 现代的很多编程技术都集中在“数据就是对象”这个概念。如果你在应用层之间使用Data Transfer Objects (DTOs)传输数据的话,这个方法就很有用,使用ORM实现一个数据访问层,或者是客户端查询技术,例如LINQ。 数据库访问模块实现了这个功能,允许你执行SQL或者是存储过程,可以返回一个对象序列,但是要求序列实现IEnumer... 阅读全文
微软企业库5.0学习笔记(三十三)数据访问模块
2010-05-14 07:08 by virus, 2176 visits, 网摘, 收藏, 编辑摘要:前言 鉴于企业库5.0已经发布正式版,同时有广大读者的要求(臭屁一下,o(∩_∩)o...),后面文章的内容和代码将基于Enterprise Library5.0和Unity2.0来写,感谢大家的一贯支持。 正文 数据库访问模块都能实现哪些功能呢?数据库访问模块抽象类你正在使用的数据库,提供了一些列接口,使得你可以更容易的实现常用的数据库访问功能。例如:使用Datab... 阅读全文
微软企业库4.1学习笔记(四十一)依赖注入模块Unity 简介
2010-05-07 13:41 by virus, 1337 visits, 网摘, 收藏, 编辑摘要:模块Unity是一个轻量的、可扩展的依赖注入容器,支持构造函数注入、属性注入、方法调用注入。你可以用它创建企业库对象,也可以创建自定义的业务对象。Unity和企业库中的其他模块有一些不同点: 你可以独立的使用Unity模块来实现依赖注入技术,不需要其他模块的辅助。 Unity支持用配置文件来准备容器,也支持在运行的时候用代码动态注册依赖关系。 Unity和企业库的核心库没有依赖关系。它包含了... 阅读全文
微软企业库4.1学习笔记(三十七)日志模块 在应用中使用日志模块
2010-05-06 19:51 by virus, 1281 visits, 网摘, 收藏, 编辑摘要:上图是一个日志模块的基本配置,本节我们就来讲述一些关于他的内容和代码示例。 默认情况下,在web.config文件中的配置信息是明文的,你可以用.NET自带的加密解密保护机制将配置信息加密,也可以用企业库提供的保护机制。在配置工具中就可以选择,如下图所示 无论你选择那一种,保存之后,你打开web.config文件,就会发现原来明文的日志配置节,变成了下面的加密格式(不用开发者操心解密的事情,... 阅读全文
微软企业库4.1学习笔记(三十六)日志模块 简介
2010-05-06 17:34 by virus, 1332 visits, 网摘, 收藏, 编辑摘要:日志模块企业库的日志模块简单的实现了日志功能的常用功能。开发者可以利用模块在下面的位置记录信息: 事件日志 电子邮件 数据库 消息队列 文本文件 WMI的事件查看器 自定义的位置模块为记录在任何位置的日志信息都提供了一系列接口。在你的应用中不需要指明信息的目的地。配置信息决定了是否记录日志,以及日志记录的位置。这就意味着开发者不需要修改应用代码就可以变更日志的行为。 本节包含下面的内容: 简介 使... 阅读全文
微软企业库4.1学习笔记(三十二)数据访问模块 在应用中使用数据访问模块
2010-05-04 22:20 by virus, 1185 visits, 网摘, 收藏, 编辑摘要:本篇讲述如何在应用中使用数据访问模块。首先,讲述如何配置模块并且和应用整合;其次是,如何使用数据访问模块完成常用的功能,例如,获取单条数据,或者是使用DataSet返回多条数据;最后,讲述一些关系连接管理、参数处理、异常处理的主题。 主要包括下面的主题: 配置模块 在应用中添加代码 创建Database对象 创建DbCommand对象 管理连接 使用TransactionScope类... 阅读全文
微软企业库4.1学习笔记(三十一)数据访问模块 简介
2010-05-04 00:09 by virus, 1614 visits, 网摘, 收藏, 编辑摘要:Unity模块对我来说学习起来还是有一定的难度的,很多东西都是第一次学习,有些东西理解的不透侧,所以Unity后面的内容想要等自己继续理解一下,后面给大家补充回来吧,先开始后面的章节。大概看了一下Unity后面的内容,计划给它留下四篇blog的地方,所以数据访问模块从三十一开始,感谢大家的支持。 下面我们回到正题。 Data Access Appliction Block 简介 企业库的数据... 阅读全文
微软企业库4.1学习笔记(二十六)Unity依赖注入模块3
2010-05-02 23:04 by virus, 1137 visits, 网摘, 收藏, 编辑摘要:配置运行时支持数组 [代码][代码].ConfigureInjectionFor<Foot>(newInjectionConstructor(newResolvedArrayParameter<IBar>());代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.Cod... 阅读全文
微软企业库4.1学习笔记(二十五)Unity依赖注入模块2
2010-05-01 23:14 by virus, 1176 visits, 网摘, 收藏, 编辑摘要:Unity模块的亮点 Unity模块包括了下面的特点 提供了一个创建对象,以及依赖的对象的方法 提供的RegisterType方法用来在容器中注册类型和映射,Resolve方法可以返回任何依赖对象的实例。 提供控制反转IOC功能,通过预先配置注入类的对象来实现。你可以在构造函数中指明一个类或者接口(构造函数注入),或者是使用attribute的属性注入,和方法调用注入。 支持容器继承,容... 阅读全文
微软企业库4.1学习笔记(二十四)Unity依赖注入模块 简介
2010-05-01 10:04 by virus, 1067 visits, 网摘, 收藏, 编辑摘要:企业库的依赖注入模块Unity是一个轻量的、可扩展的依赖注入容器,支持构造函数注入、属性注入、方法调用注入。你可以用它创建企业库的对象,或者是自定义的对象。但是,Unity模块和企业库中的其他模块有很多的不同点: 你可以在不安装企业库的情况下,直接使用Unity模块的依赖注入功能。 Unity模块可以通过配置信息来准备容器,也可以在运行的时候在代码中动态创建依赖关系。 Unity模块不依赖于... 阅读全文
微软企业库4.1学习笔记(二十三)加解密模块3 示例代码
2010-04-30 23:17 by virus, 1043 visits, 网摘, 收藏, 编辑摘要:加密解密模块可以满足常用的对称加解密和hash功能要求。在应用中加入模块,需要下面的步骤: 1)添加对模块的程序集引用。添加对程序集Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.dll的引用。 2)添加对程序集Microsoft.Practices.ObjectBuilder2.dll和Microsoft.Practic... 阅读全文
微软企业库4.1学习笔记(二十二)加解密模块2 在应用中使用加密解密
2010-04-29 00:05 by virus, 1211 visits, 网摘, 收藏, 编辑摘要:本节主要讲述在应用中如何使用加密解密模块,包括修改配置实现特殊的任务,如何在代码中使用,例如加密数据。这一切都假定你直接使用模块,不进行修改和扩展。主要包含下面两个部分: 配置模块 在代码中使用模块 1、配置模块 1.1在配置文件右键选择【新建】-【Cryptography Application Block】 图22.1 1.2配置自动添加Cryptography Applicati... 阅读全文
微软企业库4.1学习笔记(二十一)加解密模块1 简介
2010-04-28 05:46 by virus, 1728 visits, 网摘, 收藏, 编辑摘要:加解密模块使得开发者可以很容易的在应用中使用加解密的相关功能,例如,加密信息,创建一个数据的hash值,比较hash值,看看数据是否被修改。 模块具有下列功能: 减少实现标准功能的开发代码,加解密模块实现了常用的加解密功能。 在应用和跨企业之间提供一致的加解密策略。 降低了开发者为应用建立一致的加解密架构所需的学习曲线 是可扩展的,意味着它支持自定义加解密的provider 一、加解密... 阅读全文
微软企业库4.1学习笔记(二十)缓存模块8 性能计数器
2010-04-27 04:01 by virus, 1489 visits, 网摘, 收藏, 编辑摘要:缓存模块包含下列计数器 性能计数器解释Cache Expiries/sec缓存项的过期比例 Cache Hit Ratio读取缓存项的比例,一次读取指的是请求的项在缓存中。 Cache Hit/sec缓存的每秒命中率Cache Misses/sec缓存的每秒丢失率,和命中率相反,就是请求项不再缓存中Cache Scavenged Item/sec缓存清除比例Total of Cache Acce... 阅读全文
微软企业库4.1学习笔记(十九)缓存模块7 扩展和修改缓存模块
2010-04-25 23:03 by virus, 1063 visits, 网摘, 收藏, 编辑摘要:缓存模块可以满足大部分的缓存使用情形。但是,还是会有你想要自定义一些模块行为,来满足应用特殊需求的时候。你可以通过两个方式来达到目的: 通过缓存模块提供的扩展点,扩展现有功能 修改源代码 一、扩展缓存模块 通过设计好的扩展点来扩展应用的功能。典型的方式为,写一个自定义的类,实现某个接口,或者是继承某个抽象类。因为这些自定义类是在你的应用中使用,你不需要修改和重新编译模块。 你可以自定义一... 阅读全文
微软企业库4.1学习笔记(十八)缓存模块6 缓存的设计目的
2010-04-25 00:24 by virus, 1271 visits, 网摘, 收藏, 编辑摘要:设计缓存的目的 缓存模块可以用来实现下列功能: 提供了一系列的API 它使得开发者不需要学习很多内部的工作机制,就可以将常用的缓存功能加入应用 使用企业库的配置工具很容易配置 性能高效 线程安全,内部的代码考虑到了在多个线程调用,没有非预期的内部交互。 使用后端存储,使得发生以外也可以保持数据的完整无缺。 保证了内存中的数据和后端存储保持数据同步。 本节讲述一些缓存模块设计的亮点... 阅读全文
微软企业库4.1学习笔记(十七)缓存模块5 缓存的典型用法
2010-04-24 15:01 by virus, 1112 visits, 网摘, 收藏, 编辑摘要:本节介绍开发者在使用缓存的时候,常用的方法。每个方法在实际开发中都可以找到对应的用处,会有代码示例。分两个部分介绍,第一个部分包括下面的一些用法: 向缓存添加数据,Add方法,如何向缓存中添加数据,设置过期,设置优先级。 从缓存中删除数据,Remove方法 从缓存中获取数据,GetData方法 清空缓存,Flush方法 第二部分介绍缓存的加载。 1.1向缓存中添加数据 需要缓存的数据... 阅读全文
微软企业库4.1学习笔记(十六)缓存模块4 服务器场中的缓存使用
2010-04-23 23:38 by virus, 981 visits, 网摘, 收藏, 编辑摘要:服务器场中的缓存使用 单一的CacheManager不能跨应用程序域共享。服务端应用大多部署在多台服务器上,每台服务器的内存中都有一份缓存的数据。对于一台机器上面有多个进程,也是一样的,包括每个运行在自己的进程中的企业组件,每个进程都有一份缓存的数据。 不同的应用不能使用同一个数据库作为后端存储,在同一个数据库作为不同的应用的后端存储,可能会导致不可预料的问题,不推荐这么做。 当在多个进程中... 阅读全文
微软企业库4.1学习笔记(十五)缓存模块3 使用数据库作为后端存储
2010-04-23 07:20 by virus, 1190 visits, 网摘, 收藏, 编辑摘要:配置缓存模块使用数据库作为后端存储1) 在CacheManager节点上点击右键,选择新建【Database Cache Storage】2)在配置中自动加入数据访问模块的配置信息3)点击Data Cache Storage节点,右侧的DatabaseInstance属性显示的是数据库连接字符串的名称,它和数据访问配置中的一个配置关联的,你可以通过输入或者下来来选择一个数据访问配置。可以重新命名N... 阅读全文
微软企业库4.1学习笔记(十四)缓存模块2 使用缓存模块进行开发
2010-04-21 23:21 by virus, 1107 visits, 网摘, 收藏, 编辑摘要:本节讲述如何在开发应用的过程中使用缓存模块。包括配置缓存模块,在解决方案中引入缓存模块,选择后端存储。 配置缓存模块 添加应用代码 选择后端存储 所有的模块都包括程序集和一份源代码。如果你想使用源代码,在使用QuickStart和配置工具之前需要编译源代码。 1.添加配置信息 如果你是用数据访问模块作为后端存储的访问手段,在配置缓存模块之前需要先配置数据访问模块。 打开企业库安装目录... 阅读全文
微软企业库4.1学习笔记(十三)缓存模块
2010-04-21 09:05 by virus, 1548 visits, 网摘, 收藏, 编辑摘要:企业库的缓存模块允许开发者在应用中包含本地缓存。它支持内存缓存,内存中缓存的数据,可以用数据库或者其他分离的存储作为后端数据存储。缓存模块可以不经修改而直接使用,它提供了获取数据、添加数据到缓存、清空缓存中的数据所需的全部方法。同样支持可配置的缓存过期和清除策略。 在构建企业级分布式应用的时候,架构师和开发者将会面对许多挑战。缓存可以帮助他们克服下面的一些挑战: 性能,缓存通过存储和数据消费者... 阅读全文
微软企业库4.1学习笔记(十二)中间人Providers,设计时支持Design-Time Configuration和仪表盘Instrumentation
2010-04-20 09:00 by virus, 1397 visits, 网摘, 收藏, 编辑摘要:一、Provider 在.NET frameword中每一个provider都是一段代码的中间人,通过它,你的应用可以连接到一个服务或者是数据源,可以获取或者是修改服务和数据源的数据。在企业库中包含很多的providers。另外,你也可以创建自己的provider,在你的应用中满足特殊的需求。 一个provider type定义了和一个模块相关的功能的接口,一个provider是一个provi... 阅读全文
微软企业库4.1学习笔记(十一)企业库的核心类
2010-04-18 21:10 by virus, 1501 visits, 网摘, 收藏, 编辑摘要:在企业库的很多模块中都实现了很多常用的功能,他们同样对企业库以外的应用代码也很有用。例如,数据序列化和访问配置信息。为了提供可用性,这些代码都放在企业库核心的Common程序集中。 另外,所有的模块都被设计为最小的依赖,以便他们可以单独使用。除了Unity,所有的企业库都依赖于企业库的核心库,核心库包含了下面的子系统: Common程序集 模块的仪表盘,模块的运行情况 配置信息的帮助类,和... 阅读全文
微软企业库4.1学习笔记(十)企业库的设计
2010-04-18 17:19 by virus, 1324 visits, 网摘, 收藏, 编辑摘要:在设计整个企业库的过程中,使用了一系列的最佳实践。下面列出一些里面的最佳实践: 在核心库中使用了Common模块 使用了统一的命名约定和统一的版本 在设计的过程中使用单元测试 在所有模块中包含基础结构 在企业库的模块中包含了下面的模式,当然还包括其他模式: 工厂模式,一个创建型模式,使用指定的类型创建另外一个对象。 插件模式,这种模式扩展了类的行为。在特殊的环境中创建一个子类,只包含... 阅读全文
微软企业库4.1学习笔记(九)企业库程序集的部署
2010-04-18 15:28 by virus, 1145 visits, 网摘, 收藏, 编辑摘要:企业库包含很多的程序集,除去Unity模块,企业库的每个程序集的名称都以“Microsoft.Practices.EnterpriseLibrary”开头。另外,其他的模块都可能会依赖企业库的Common程序集。使用一个模块的应用也可能会需要其他模块的程序集,例如使用Caching模块,有可能会需要Data Access模块的程序集。 在应用中使用企业库,可以用下面的两种... 阅读全文
微软企业库4.1学习笔记(八)创建对象 续集2
2010-04-17 05:06 by virus, 1258 visits, 网摘, 收藏, 编辑摘要:3.3通过配置指定和Unity的整合 另外一种方法是在配置源中指定配置的需要,你可以指定下面的一条或者多条: 你可以在Unity配置中指定想要的BlockExtensions 你可以在Unity配置中的type配置节指定如何创建企业库对象,指定类型映射的关系,例如,当使用resolve方法的时候返回一个SqlDatabase,或者是返回指定的注入Database对象。也可以指定生命周期和其他... 阅读全文
微软企业库4.1学习笔记(七)创建对象 续集1
2010-04-16 08:57 by virus, 1589 visits, 网摘, 收藏, 编辑摘要:3.2使用Unity模块创建企业库对象 下面介绍如何使用前面的方法获取企业库对象的实例。代码示例如下 [代码] 首先创建一个Unity容器,并且添加企业库核心配置扩展。 默认情况下,这个扩展会从应用的配置文件(app.config和web.config)中读取配置信息。如果你使用自定义的配置源,你可以使用下面的代码创建容器并添加配置扩展。 代码Code highlighting prod... 阅读全文
微软企业库4.1学习笔记(六)创建对象
2010-04-15 07:09 by virus, 2252 visits, 网摘, 收藏, 编辑摘要:一、创建应用模块对象 在你的应用中经常会需要创建例如Database或者是CacheManager之类的对象,企业库支持一系列的方法,可以创建应用需要的对象。 你可以使用工厂方法创建这些对象,企业库的在每一个功能模块和核心库都包含有工厂方法来完成这个任务。这些静态的工厂方法自动读取应用的配置信息,provider的工厂方法允许你手工在配置文件中创建适当的配置,然后用工厂方法在代码中创建prov... 阅读全文
微软企业库4.1学习笔记(五)对象创建和依赖注入方法
2010-04-14 09:17 by virus, 1983 visits, 网摘, 收藏, 编辑摘要:企业库4.0和4.1的主要改进是加入了全新的,而且很容易使用的对象创建方式,包括其他的依赖对象。这个功能在企业库的Unity模块中通过依赖注入暴露,它使用了下面这些常用的设计模式。 Dependency Injection依赖注入 Inversion of Control(IoC)反转控制 Service Locator服务定位 Service Container服务容器 Factory... 阅读全文
微软企业库4.1学习笔记(四)主要的功能模块简介
2010-04-13 04:52 by virus, 2186 visits, 网摘, 收藏, 编辑摘要:一、企业库的主要内容 企业库是一个可重用的组件集合,同时也是一个受支持的基础框架。企业库包含的内容: 企业库功能模块 企业库核心 企业库配置工具 对象创建和依赖注入方法 工具集,示例,和开发指导 二、强命名企业库程序集 如果你使用源代码生成企业库程序集,你就要考虑是否给程序集添加强命名。强命名由程序集的标识组成,包括一个名称,版本号,和一个可选的区域信息,加上一个公共的key和一个... 阅读全文
微软企业库4.1学习笔记(三)企业库迁移和并行使用,以及企业库的扩展
2010-04-12 02:29 by virus, 2427 visits, 网摘, 收藏, 编辑摘要:一、迁移和并行使用 通常来说,企业库是建立在.NET 2.0 的基础上,使用后续版本的企业库也不需要改变任何代码。不需要将引用更新到新的程序集,也不需要在配置文件中指明程序集的正确版本。 这个版本4.1的企业库可以和以前版本的企业库同时安装,你可以将使用新版本的应用程序和使用旧版本的应用程序一起部署。也你可以一次性的将现有应用的企业库应用升级到新版本。 如果你选择并行使用不同版本的企业库,你... 阅读全文
微软企业库4.1学习笔记(二)各功能之间的依赖关系以及对象创建
2010-04-11 16:44 by virus, 2319 visits, 网摘, 收藏, 编辑摘要:在4.1中你可以使用Unity Application Block(Unity)在函数或者是功能运行之前或者之后拦截企业库的对象,生成这些对象,并且将他们注入到其他对象中。 企业库中包含了很多的类,允许你从Unity容器中获取在企业库配置中定义的,类似SqlDatabase或者是CacheManager对象的实例。另外,一些有好的注入代替了过去的静态方法。使用Unity的依赖注入能力可以很好的简... 阅读全文
微软企业库4.1学习笔记(一)开篇乱弹
摘要:我是一个.NET技术为主的程序员,每次开发一个新的应用的时候,都会被人问道“.NET有没有框架可以用,有没有类似hibernate,structs,spring之类的框架,怎么什么都没有呢,.NET有没有开源的现成的好用的框架,怎么每次都要造轮子呢?你们在干什么呢,数据访问和日志这种东西怎么每次你们都要花功夫来写呢,没有可以参考的吗”,大部分人的回答往往是“没有... 阅读全文