没有合适的资源?快使用搜索试试~ 我知道了~
微软企业库
4星 · 超过85%的资源 需积分: 9 19 下载量 169 浏览量
2013-01-13
19:03:33
上传
评论
收藏 309KB DOCX 举报
温馨提示
试读
22页
微软企业库5.0,微软企业库学习文档及资料
资源推荐
资源详情
资源评论
微软企业库 5.0 学习之路——第一步、基本入门
一、什么是企业库?
企业库包含一系列应用程序模块和核心架构。这些高复用的组件旨在帮助开发者解决一些
共同的企业开发问题。
企业库同时提供高可配置的特性,使我们管理重复的工作更加容易,例如我们知道的在应
用的很多地方发生的横切关注点。包括像日志记录、缓存、异常管理等。另外,它提供的
依赖注入容器能够简化和分解你的设计,使他们更加可实验和容易理解,帮助你创建更加
高性能的设计和各种应用。
二、使用企业库的 3 个简单步骤:
1.引用和配置你需要的程序集。
2.通过企业库配置应用。
3.在你的代码中创建和使用企业库对象。
三、企业库的好处:
应用模块帮助解决开发者从一个项目到另一个项目面对的共同问题。他们的设计封装了微
软推荐的做法,这些都是基于微软框架的应用开发。例如,数据访问应用模块提供了对
ADO.NET 访问最频繁使用的特征。在某些情况下,应用模块还添加了一些基础类库没有
直接提供的相关功能。
四、企业库的目标:
1.一致。所有的企业库模块都坚持一致的设计模式和实现方式。
2.可扩展性。所有的应用模块包括定义扩展点,允许开发人员通过添加自己的代码定制应
用模块的行为。
3.易用性。企业库提供了许多实用性的东西,包括一个图形化配置工具,简单的安装过程,
完成的文档和示例。
4.集成。企业库应用模块被设计得能够一起很好的工作,并且也被这样测试过。但是你不
必一起使用他们。我们可以单独使用这些应用模块,同时这些应用模块之间也有些依赖,
比如在企业库核心和 Unity 中的一些通用组件。
上面是企业库的基本概念,理解了企业库的相关知识后,我们可以开始来安装企业库了
1、下载地址:点我进入下载页面(不是直接下载),安装后就可以使用了。
这次 5.0 相比 4.1 的最大改动就是整个配置工具采用了 WPF 重新构建和实例化和管理对象
生命周期的全依赖注入的实现,同时支持 VS2008SP1 和 VS2010,话说虽然这次的配置
工具变化挺大的,但是一旦熟悉了就觉得比 4.1 的好,因为可以清楚的看见每个模块的之
间的依赖关系。
一、Unity 和对象生成器的整合
在这个版本中,用于创建对象的基本技术是一个单一的依赖注入容器,默认的是 Unity。
你可以使用容器生成企业库对象的实例并注入到其他的对象。 企业库提供一个标准的接口
从 Unity 容器中来获得定义在企业库配置中的对象的实例,如 SqlDatabase 或
LogWriter.另外,注入友好的实例门面处理静态门面之外是有效的,因为静态门面不能用
注入,但是为了向后兼容以前的版本而存在。在本版本中的示例中都是用依赖注入,但是
以前版本中是用的静态工厂类和静态门面在这个版本中还是支持的。对象生成器,一个低
版本的依赖注入机制在这个版本中被归入 Unity 中,在项目中不再需要单独引用对象生成
器集。
支持 Unity 容器,必须引用一个被包含在企业库中的
Microsoft.Practices.ServiceLocation 程序集。如果要使用一个第 3 方的依赖注入容器,
必须直接实现 IServiceLocator 接口或者通过适配器实现。
二、影响所有模块的变化:
1.在企业库中主要修正是使用依赖注入机制。所用的应用模块以及核心系统都是用依赖注
入机制,并使用 Unity 作为默认的依赖注入容器,来创建和管理企业库对象。
2.自主容器的实现通过实现 Common Service Locator 项目提供的 IServiceLocator 接
口来完成。
3.由于错误配置引发的错误将提供更多有用的错误信息。
4.配置系统公开了一个 +uent 接口,用来为单个对象或整个应用创建和填充配置源。
+uent API 使得为各种情景创建配置源更加容易。
5.Con-gurationView 类被删除.
6.一些配置元素有默认值,可能不同于以前版本的隐式默认值.
7.企业库现在允许你通过另一个配置文件合成一个混合配置文件.
8.可以可通过不同的配置文件读取不同的配置信息.
9.企业库不支持 XAML 浏览器应用程序(XBAP).
10.WmiEnabled 标志为了像前兼容仍然存在企业库中,但是在 5.0 中是被忽略的,而且将
来会被删除.
11.改进式的安装允许你只安装部分应用模块及配置工具.
12.在以前版本中要做统一集成,必须添加核心企业库的扩展和每个模块的扩展。现在如
果你只需要直接访问容器,那么只有核心扩展是必须的。单独模块将自动支持。
旧的功能为了保持像前兼容仍然保留,但已经不起作用。
13.FileCon-gurationSource.Save 的签名已经改变,参数由 3 个变为 2 个。
14.快速入门不再包含在主安装程序中。
三、Breaking 变化:
1.企业库现在抛出了一个配置错误 ActivationException,之前是
System.Con-guration.Con-gurationErrorsException。这包括试着解决没有配置信
息错误的一个实例提供者。
2.以前版本在获取应用模块错误时抛出 BuildFailedException 错误,现在对于所有的应
用模块都抛出 ActivationException
3 .之前的版本,在讲一个空源传到容器来调用容器的时候,会抛出
ArgumentNullException,现在抛出 NullReferenceException
4.ObjectBuilder2 不再是一个单独的程序集,而是集成到了 Unity 集合中,在项目中也
不需要引用 ObjectBuilder2.dll。
5.WMI 支持已经从企业库中删除,除了在 logging 模块中的 WMI 跟踪监听器。
6.如果你没有关闭 DbDataReader,可能会导致随机的、很难在您的代码中找到的错误,
尤其是当你正在一个由 TransactionScope 上下文创建的隐式事务下操作时。
你必须始终确保您的应用程序及时关闭 DbDataReader,无论是明确的
DbDataReader.Close 方法关闭或是逼迫 DbDataReader 释放。
7.如果你使用 validator 特性必须引用 System.ComponentModel.DataAnnotations
程序集。
8.为 FileCon-gurationSource.Save 方法签名已更改。该方法有两个参数,而不是 3 个
参数
9.Microsoft.Practices.EnterpriseLibrary.Con-guration.Design.dll 集合的功能和其
他设计时集合被一个新的集合
Microsoft.Practices.EnterpriseLibrary.Con-guration.DesignTime.dll 代替。
10,性能计数器异常从 PolicyInjection.CallHandlers 移到 PolicyInjection 程序集。
11.包含在 Policy Injection Application Block 中的 CachingCallHandler 有未处理的
安全漏洞,已经从 Policy Injection Application Block 中移除。
四、配置工具的改变:
1.新的企业拥有一个新的 GUI 库和一个元数据驱动的可扩展性模。
2.支持向导
3.新的类型选择。
4.不支持对依赖策略的 Environmental Overrides 。日志模块处理 Categories。
五、缓存模块变化:
1.缓存清除已被完全重写的性能优化
六、数据库访问模块:
1.ExecuteReader, ExecuteXmlReader, ExecuteScalar, and ExecuteNonQuery
方法具有异步版本。
2.包含了很多新的方法和类允许你提取数据作为对象序列。例如在合适的时候使用客户端
查询技术,如 LINQ.
3.存在的方法 ExecuteReader 和新的方法 BeginExecuteReader 不接收
CommandBehavior 参数。默认的当调用这些方法的时候这些方法
会自动设置 CommandBehavior 属性到 reder 中用来关闭连接直到指定一个事务。
七、异常处理模块:
1.日志异常处理重新使用日志模块的 Log Writer and Trace Listeners 。这在之前版本
中不是默认设置。
2.增加一个功能,通过 ExceptionManager.Process 方法接收一个默认值并返回一个值。
[EntLib]微软企业库 5.0 学习之路——第二步、使用 VS2010+Data Access 模块建
立多数据库项目
现在我就开始进入学习之路的第二步——Data Access 模块,这个模块是企业库中被使用
频率最高的模块,它很好的封装了数据库操作应用,为我们进行多数据库系统开发提供了
便利,只需更改配置文件就可以很快的切换数据库访问(可惜还是要重写 SQL 语句,没法
和 ORM 比)。
下面是我在配置企业库的时候碰到问题,如果没有碰到可以略去不看(可能有点小白)
注意:此处切换数据库配置必须是计算机中已经安装好相应的数据库访问模块,如需要进
行从 MS SQL 向 SQLite 数据库的变更时,计算机中必须安装好 SQLite 数据库访问模块
(在这里我就碰到了这个问题,原来我机器上在 VS2008 开发时已经安装过 SQLite 数据
库访问模块,但是新装了 VS2010,在 VS2010 引用对话框中也能访问到在 VS2008 安
装的 SQLite(但是在企业库 5.0 配置器中无法查看到 SQLite),但是发现更改企业库的配
置文件后无法访问 SQLite 数据库,尝试了很多方法都没用,结果死马当活马医又重新装
了一遍 SQLite 数据库访问模块再重新打开企业库配置器就可以看到 SQLite 数据库了(所
以请确保在企业库编辑器中可以查看到要切换的数据库,否则可能导致无法访问数据库)
看下图:
在 DAL 层 中 引 用 了 Helper,IDAL,EnterpriseLibrary.Common 和
EnterpriseLibrary.Data 这 4 个项目,其中 Helper 项目中有个 DBHelper.cs,用于获取当
前的数据对象,其代码如下(采用了 C#4.0 的语法特性,默认参数,数据库对象名默认为
空,这样则会调用企业库默认的数据库对象,同时也可以在调用的时候赋值,这样则根据
传递过来的数据库对象名来创建数据库,通过这个参数我们将原来需要重载的 2 个方法才
能实现合并成了一个方法):
view sourceprint?
0
1
using
Microsoft.Practices.EnterpriseLibrary.Common.Con-guration;
0
2
using Microsoft.Practices.EnterpriseLibrary.Data;
0
3
0
4
namespace
EntLibStudy.Helper
0
5
{
0
6
public static class
DBHelper
0
7
{
0
8
///
<summary>
0
9
/// 获取数据库对象
1
0
/// </summary>
剩余21页未读,继续阅读
资源评论
- kaisaqw2013-04-22不错不错,已经在用
- kuro_mkII2015-08-27不全,缺失了很多部分
JamesFen
- 粉丝: 160
- 资源: 41
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- AIS2024 valid
- 最入门的爬虫代码 python.docx
- 爬虫零基础入门-爬取天气预报.pdf
- 最通俗易懂的 MongoDB 非结构化文档存储数据库教程.zip
- 以mongodb为数据库的订单物流小项目.zip
- 腾讯云-mongodb数据库, 项目部署.zip
- 腾讯 APIJSON 的 MongoDB 数据库插件.zip
- 理解非关系型数据库和关系型数据库的区别.zip
- 操作简单的Mongodb网页web管理工具,基于Spring Boot2.0支持mongodb集群.zip
- tms-mongodb-web,提供访问mongodb数据的REST API和可灵活扩展的mongodb web 客户端.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功