《微软企业库学习手册样本.docx》由会员分享,可在线阅读,更多相关《微软企业库学习手册样本.docx(21页珍藏版)》请在金锄头文库上搜索。
1、微软公司库5.0 学习之路第一步、基本入门一、什么是公司库? 公司库包括一系列应用程序模块和核心架构。这些高复用组件旨在协助开发者解决某些共同公司开发问题。 公司库同步提供高可配备特性,使咱们管理重复工作更加容易,例如咱们懂得在应用诸多地方发生横切关注点。涉及像日记记录、缓存、异常管理等。此外,它提供依赖注入容器可以简化和分解你设计,使她们更加可实验和容易理解,协助你创立更加高性能设计和各种应用。 二、使用公司库3个简朴环节: 1.引用和配备你需要程序集。 2.通过公司库配备应用。 3.在你代码中创立和使用公司库对象。 三、公司库好处: 应用模块协助解决开发者从一种项目到另一种项目面对共同问题
2、。她们设计封装了微软推荐做法,这些都是基于微软框架应用开发。例如,数据访问应用模块提供了对ADO.NET访问最频繁使用特性。在某些状况下,应用模块还添加了某些基本类库没有直接提供有关功能。 四、公司库目的: 1.一致。所有公司库模块都坚持一致设计模式和实现方式。 2.可扩展性。所有应用模块涉及定义扩展点,容许开发人员通过添加自己代码定制应用模块行为。 3.易用性。公司库提供了许多实用性东西,涉及一种图形化配备工具,简朴安装过程,完毕文档和示例。 4.集成。公司库应用模块被设计得可以一起较好工作,并且也被这样测试过。但是你不必一起使用她们。咱们可以单独使用这些应用模块,同步这些应用模块之间也有些
3、依赖,例如在公司库核心和Unity中某些通用组件。 上面是公司库基本概念,理解了公司库有关知识后,咱们可以开始来安装公司库了1、下载地址:点我进入下载页面(不是直接下载),安装后就可以使用了。这次5.0相比4.1最大改动就是整个配备工具采用了WPF重新构建和实例化和管理对象生命周期全依赖注入实现,同步支持VSSP1和VS,话说虽然这次配备工具变化挺大,但是一旦熟悉了就觉得比4.1好,由于可以清晰看见每个模块之间依赖关系。一、Unity和对象生成器整合 在这个版本中,用于创立对象基本技术是一种单一依赖注入容器,默认是Unity。你可以使用容器生成公司库对象实例并注入到其她对象。 公司库提供一种原
4、则接口从Unity容器中来获得定义在公司库配备中对象实例,如SqlDatabase或LogWriter.此外,注入和谐实例门面解决静态门面之外是有效,由于静态门面不能用注入,但是为了向后兼容此前版本而存在。在本版本中示例中都是用依赖注入,但是此前版本中是用静态工厂类和静态门面在这个版本中还是支持。对象生成器,一种低版本依赖注入机制在这个版本中被归入Unity中,在项目中不再需要单独引用对象生成器集。 支持Unity容器,必要引用一种被包括在公司库中Microsoft.Practices.ServiceLocation程序集。如果要使用一种第3方依赖注入容器,必要直接实现IServiceLoca
5、tor接口或者通过适配器实现。二、影响所有模块变化:1.在公司库中重要修正是使用依赖注入机制。所用应用模块以及核心系统都是用依赖注入机制,并使用Unity作为默认依赖注入容器,来创立和管理公司库对象。 2.自主容器实现通过实现Common Service Locator项目提供 IServiceLocator 接口来完毕。 3.由于错误配备引起错误将提供更多有用错误信息。 4.配备系统公开了一种 fluent接口,用来为单个对象或整个应用创立和填充配备源。fluent API使得为各种情景创立配备源更加容易。 5.ConfigurationView类被删除. 6.某些配备元素有默认值,也许不同
6、于此前版本隐式默认值. 7.公司库当前容许你通过另一种配备文献合成一种混合配备文献. 8.可以可通过不同配备文献读取不同配备信息. 9.公司库不支持XAML浏览器应用程序(XBAP). 10.WmiEnabled标志为了像前兼容依然存在公司库中,但是在5.0中是被忽视,并且将来会被删除. 11.改进式安装容许你只安装某些应用模块及配备工具. 12.在此前版本中要做统一集成,必要添加核心公司库扩展和每个模块扩展。当前如果你只需要直接访问容器,那么只有核心扩展是必要。单独模块将自动支持。 旧功能为了保持像前兼容依然保存,但已经不起作用。 13.FileConfigurationSource.Sav
7、e 签名已经变化,参数由3个变为2个。 14.迅速入门不再包括在主安装程序中。 三、Breaking变化: 1.公司库当前抛出了一种配备错误ActivationException,之前是System.Configuration.ConfigurationErrorsException。这涉及试着解决没有配备信息错误一种实例提供者。 2.此前版本在获取应用模块错误时抛出BuildFailedException错误,当前对于所有应用模块都抛出ActivationException 3 .之前版本,在讲一种空源传到容器来调用容器时候,会抛出ArgumentNullException,当前抛出Null
8、ReferenceException 4.ObjectBuilder2不再是一种单独程序集,而是集成到了Unity集合中,在项目中也不需要引用ObjectBuilder2.dll。 5.WMI支持已经从公司库中删除,除了在logging模块中WMI跟踪监听器。 6.如果你没关于闭DbDataReader,也许会导致随机、很难在您代码中找到错误,特别是当你正在一种由TransactionScope上下文创立隐式事务下操作时。 你必要始终保证您应用程序及时关闭DbDataReader,无论是明确DbDataReader.Close办法关闭或是逼迫DbDataReader释放。 7.如果你使用 va
9、lidator 特性必要引用 System.ComponentModel.DataAnnotations程序集。 8.为FileConfigurationSource.Save办法签名已更改。该办法有两个参数,而不是3个参数 9.Microsoft.Practices.EnterpriseLibrary.Configuration.Design.dll集合功能和其她设计时集合被一种新集合Microsoft.Practices.EnterpriseLibrary.Configuration.DesignTime.dll代替。 10,性能计数器异常从PolicyInjection.CallHand
10、lers移到 PolicyInjection 程序集。 11.包括在Policy Injection Application Block中CachingCallHandler有未解决安全漏洞,已经从Policy Injection Application Block中移除。 四、配备工具变化: 1.新公司拥有一种新GUI库和一种元数据驱动可扩展性模。 2.支持向导 3.新类型选取。 4.不支持对依赖方略Environmental Overrides 。日记模块解决Categories。 五、缓存模块变化: 1.缓存清除已被完全重写性能优化 六、数据库访问模块: 1.ExecuteReader,
11、ExecuteXmlReader,ExecuteScalar,and ExecuteNonQuery办法具备异步版本。 2.包括了诸多新办法和类容许你提取数据作为对象序列。例如在适当时候使用客户端查询技术,如LINQ. 3.存在办法ExecuteReader和新办法BeginExecuteReader不接受CommandBehavior 参数。默认当调用这些办法时候这些办法 会自动设立CommandBehavior 属性到reder中用来关闭连接直到指定一种事务。 七、异常解决模块: 1.日记异常解决重新使用日记模块Log Writer and Trace Listeners 。这在之前版本中
12、不是默认设立。 2.增长一种功能,通过ExceptionManager.Process 办法接受一种默认值并返回一种值。EntLib微软公司库5.0 学习之路第二步、使用VS+Data Access模块建立多数据库项目当前我就开始进入学习之路第二步Data Access模块,这个模块是公司库中被使用频率最高模块,它较好封装了数据库操作应用,为咱们进行多数据库系统开发提供了便利,只需更改配备文献就可以不久切换数据库访问(可惜还是要重写SQL语句,没法和ORM比)。下面是我在配备公司库时候遇到问题,如果没有遇到可以略去不看(也许有点小白)注意:此处切换数据库配备必要是计算机中已经安装好相应数据库访
13、问模块,如需要进行从MS SQL向SQLite数据库变更时,计算机中必要安装好SQLite数据库访问模块(在这里我就遇到了这个问题,本来我机器上在VS开发时已经安装过SQLite数据库访问模块,但是新装了VS,在VS引用对话框中也能访问到在VS安装SQLite(但是在公司库5.0配备器中无法查看到SQLite),但是发现更改公司库配备文献后无法访问SQLite数据库,尝试了诸多办法都没用,成果死马当活马医又重新装了一遍SQLite数据库访问模块再重新打开公司库配备器就可以看到SQLite数据库了(因此请保证在公司库编辑器中可以查看到要切换数据库,否则也许导致无法访问数据库)。看下图: 回归正题
14、,这次学习由于VS发布了,并且公司库5.0也都支持.NET4.0,因此决定公司库学习之路采用VS进行学习(顺便熟悉下.NET4特性,毕竟公司项目不也许立马转移到.NET4.0,当前就当练手吧)好了,当前就开始进行第2步学习了,一方面看下项目构造:项目采用仿MS PetShop架构,如不理解此架构可以到此查看理解:PetShop系统架构设计其中DAL和DALSQLite层相应MS SQL和SQLite数据库,Helper为整个项目协助器当前来详细理解下DAL层在DAL层中引用了Helper,IDAL,EnterpriseLibrary.Common和EnterpriseLibrary.Data这
15、4个项目,其中Helper项目中有个DBHelper.cs,用于获取当前数据对象,其代码如下(采用了C#4.0语法特性,默认参数,数据库对象名默以为空,这样则会调用公司库默认数据库对象,同步也可以在调用时候赋值,这样则依照传递过来数据库对象名来创立数据库,通过这个参数咱们将本来需要重载2个办法才干实现合并成了一种办法):view sourceprint?01using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;02using Microsoft.Practices.EnterpriseLibrary.Data;0304namespace EntLibStudy.Helper0506public static class DBHelper0708/ 09/ 获取数据库对象10/ 11/ 数据库实例名(默认name为空,调用默认数据库实例)12/ 数据库对象13public static Database CreateDataBase(string name = )1415/r