今天继续介绍Unity,在上一篇的文章中,我介绍了使用UnityContainer来注册对象之间的关系.注册已存在的对象之间的关系,同时着重介绍 了Unity内置的各种生命周期管理器的使用方法,今天则主要介绍Unity的Register和Resolve的一些高级应用. 本篇文章将主要介绍: 1.注册类型同时初始化构造函数参数并重载调用. 2.注册类型同时初始化属性参数并重载调用. 3.延迟获取对象. 4.检索检索容器中注册信息. 一.注册类型同时初始化构造函数参数并重载调用 我们在使用Unity…
在介绍完企业库几个常用模块后,我今天要对企业库的配置文件进行处理,缘由是我打开web.config想进行一些配置的时候发现web.config已经变的异常的臃肿(大量的企业库配置信息充斥其中),所以决定写这篇关于Configuration Setting模块等其他方式分类管理企业库配置信息的文章. 在ASP.NET4中微软就帮我们优化过了web.config,给了我们一个干净的web.config(将原来需要通过web.config注册的程序集.ASP.NET标签和handler等都移至mach…
在上一篇文章中, 我介绍了企业库Cryptographer模块的一些重要类,同时介绍了企业库Cryptographer模块为我们提供的扩展接口,今天我就要根据这些 接口来进行扩展开发,实现2个加密解密方法(离散加密和对称性加密),分别实现自接口IHashProvider和接口 ISymmetricCryptoProvider. 首先来看下离散加密——CustomHashCryptography,具体代码如下: using System; using System.Collections.Gene…
前端时间花了1个多星期的时间写了使用jQuery.Validate进行客户端验证,但是那仅仅是客户端的验证,在开发项目的过程中,客户端的信息永远是不可信的,所以我们还需要在服务器端进行服务器端的验证已保证数据的正确,今天我继续企业库的学习之路,主要介绍企业库中的Validation模块如何对数据进行验证. 本文的主要内容有以下三点: 1.根据本项目进行实体验证. 2.使用Validation提供的ASP.NET控件将实体验证和UI层页面验证联系起来 3.简单分析下Validation.Integ…
首先先补习下企业库的Caching Application Block的相关知识: 1.四大缓存方式,在Caching Application Block中,主要提供以下四种保存缓存数据的途径,分别是:内存存储(默认).独立存储(Isolated Storage).数据库存储(DataBase Cache Storage)和自定义存储(Custom Cache Storage). 2.多种存储方式,抛开自定义存储不谈,内存存储是最基本的缓存,仅仅是将数据缓存到内存当中,虽然速度快但是无法进行持久…
一.独立验证器 我上篇中我将AndCompositeValidator和OrCompositeValidator归为独立验证器,这2个验证器主要是为了第一类验证服务,可以进行多种验证组合在一起进行复杂验证: AndCompositeValidator——组合验证,逻辑与验证,所包含的多种验证全部通过则通过 OrCompositeValidator——组合验证,逻辑或验证,所包含的多种验证有一个通过则通过 这2类的验证器可以通过配置工具进行配置: 其配置方式和原有的配置一样,只不过是将各个具体的验…
话说在大学的时候帮老师做项目的时候就已经接触过企业库了但是当初一直没明白为什么要用这个,只觉得好麻烦啊,竟然有那么多的乱七八糟的配置(原来我不知道有配置工具可以进行配置,请原谅我的小白). 直到去年在做项目的时候在看代码生成工具的时候看到了许多生成工具都内置了企业库的数据库访问及一些相关模块,才突然顿悟了,可能企业库应该还是有点用的,于是就试着使用了企业库的一些模块(当时版本是4.1),果然觉得企业库还是很不错的,微软在企业库中为我们封装了许多日常经常使用的模块,如:数据库访问,缓存,日志,异常…
现在我就开始进入学习之路的第二步——Data Access模块,这个模块是企业库中被使用频率最高的模块,它很好的封装了数据库操作应用,为我们进行多数据库系统开发提供了便利,只需更改配置文件就 可以很快的切换数据库访问(可惜还是要重写SQL语句,没法和ORM比). 下面是我在配置企业库的时候碰到问题,如果没有碰到可以略去不看(可能有点小白) 注意:此处切换数据库配置必须是计算机中已经安装好相应的数据库访问模块,如需要进 行从MS SQL向SQLite数据库的变更时,计算机中必须安装好SQLite数…
在前面的Part3中, 我介绍Policy Injection模块中内置的Call Handler的使用方法,今天则继续介绍Call Handler——Custom Call Handler,通过建立Custom Call Handler来实现项目中的用户操作日志的记录,具体的代码可以在项目中EntLib.Helper项目下找到,如下图: 本文将从Custom Call Handler两种方式来介绍:Attribute方式和Configuration方式. 一.核心代码 建立Custom Cal…
这篇文章是我在patterns & practices看到的一篇有关EntLib5.0的文章,主要介绍了EntLib5.0的这次的架构变化由来,觉得很不错,大家可以看一下! 在过去几年中,依赖关系注入 (DI) 模式在 .NET 开发人员社区一直受到关注.长时间以来,优秀的博客作者们讨论着 DI 的优点.MSDN 杂志 针对这一主题发表了多篇文章..NET 4.0 将发布某种类似 DI 的功能,并计划以后将其发展为完整的 DI 系统. 阅读有关 DI 的博客文章时,我注意到,这一主题有一个很小却…
一.微软企业库加密应用模块提供了两种加密: 1.Hash providers :离散加密,即数据加密后无法解密 2.Symmetric Cryptography Providers:密钥(对称)加密法,即数据加密后可解密还原 注:企业库不支持非对称加密方式. 二.使用说明 1.使用静态类Cryptographer using Microsoft.Practices.EnterpriseLibrary.Security.Cryptography; //Hash加密 string encrypted…
EnterpriseLibrary 的特点是快速开发,融合了微软工程师多年的经验,现在在微软内部有专门的一个小组在完善EnterpriseLibray,最近的更新时间是April 2013. 相关链接是EnterpriseLibrary 6.0,这里就不献丑了,大家直接看官网介绍. 现在我们来探讨一下如何使用EnterpriseLibrary 6.0 中的Data Access Block.在使用Data Access Block实现功能之前我们要获取链接字符串. 但是EnterpriseLib…
系统采用最先进技术开发: (ASP.NET MVC 4.0 + easyui + EF6.0 + MYSQL/MSSQLSERVER +微软企业库5.0+日志绶存) 大家可以加我QQ讨论 309159808 权限管理系统控制细腻 ,完美之作.源码下载链接…
最近公司集50多号开发人员的人力围绕一个系统做开发,框架是免不了要统一的,公司提供的架构,利于分工合作,便于维护,扩展,升级,其中使用了到微软的企业库来解藕系统,只是因为框架封装,于是在网上学习了一个类似的搭建示例,贴在这里主要是为了记录与分享,希望可以帮助到一些朋友. 示例主要讲了一个根据接口反射了实体类对象的方法,而注册这种映射是写在配置文件里面的. 配置文件: <?xml version="1.0" encoding="utf-8"?> <!…
在Windows Communication Foundation (WCF)中,为了阻止服务的实现细节从服务的安全边界泄露,未知的异常不应该被发送至客服端.在WCF配置中将<serviceDebug>配置节的includeExceptionDetailInFaults属性的值显式设置为false后(或干脆不设置,因为False是默认值),即可达到此目的. 备注: includeExceptionDetailInFaults配置只用于未知的或未被处理的异常.对已知的异常(标有FaultCont…
笔者上一篇博客讲解了关于驱动的安装,笔者使用的系统是win8.1系统,那么对于win8系统及以上系统,会对外部设备,没有在windows系统中进行签名过的,都是不允许在windows系统中进行安装的,以保证windows系统安全.如下图所示: 出现这个问题是由于cypress的芯片未经过签名,显示安装不成功.那么解决上述的办法,需要关闭win8及以上系统的禁用强制驱动签名.如下图所示: 链接:http://zhidao.baidu.com/question/1366740923411875539…
微软企业库4.1学习笔记 http://blog.csdn.net/anyqu/article/category/1228691/3 黄聪:Enterprise Library 5.0 系列教程 www.cnblogs.com/huangcong/archive/2010/06/08/1753988.html 微软企业库5.0学习笔记(三十四)数据访问模块 各种获取数据的方式 http://blog.csdn.net/anyqu/article/details/7937389…
这里只是说明在项目中如何配置使用微软企业库的日志组件,对数据库方面的配置请参考其他资料. 1.在项目中添加Microsoft.Practices.EnterpriseLibrary.Data.dll.Microsoft.Practices.EnterpriseLibrary.Logging.dll.Microsoft.Practices.EnterpriseLibrary.Logging.Database.dll这三个引用. 2.打开EnterpriseLibrary的配置工具EntLibCon…
Unity Application Block 1.0系列(4): 方法调用注入(Method Call Injection ) http://www.cnblogs.com/inrie/archive/2008/04/18/1159014.html 微软企业库Unity学习笔记(二) http://www.cnblogs.com/rush/archive/2011/04/16/Unity.html C# Unity使用 http://www.cnblogs.com/Teco/archive/2…
在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreSQL.IBM DB2.或者国产达梦数据库等等,这些数据库的共同特点是关系型数据库,基本上开发的模型都差不多,不过如果我们基于ADO.NET的基础上进行开发的话,那么各种数据库都有自己不同的数据库操作对象,微软企业库Enterprise Library是基于这些不同数据库的操作做的抽象模型,适合多数据…
微软企业库的Cache 通常,应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能.基于微软的企业库,我们的快速创建一个缓存的实现. 新建PrismSample.Infrastructure.Cache 新建一个类库项目,将其命名为PrismSample.Infrastructure.Cache,然后从nuget中下载微软企业库的Cache. 然后新建我们的CacheManager类: using Microsoft.Practices.Enterpr…
软件开发,离不开对日志的操作.日志可以帮助我们查找和检测问题,比较传统的日志是在方法执行前或后,手动调用日志代码保存.但自从AOP出现后,我们就可以避免这种繁琐但又必须要实现的方式.本文是在微软企业库的AOP基础上封装出的组件.注意:是使用2.0版本,因为2.0以上版本是基于Net4.5类库的.好了,废话不多说.如图-1所示 图-1 说明 logmethodBillModel文件,是记录AOP详细信息 IBasicCodeService和BasicCodeService是用于测试的接口和实现类…
通常,应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能.基于微软的企业库,我们的快速创建一个缓存的实现. 新建PrismSample.Infrastructure.Cache 新建一个类库项目,将其命名为PrismSample.Infrastructure.Cache,然后从nuget中下载微软企业库的Cache. 然后新建我们的CacheManager类: using Microsoft.Practices.EnterpriseLibrary.C…
前不久,为大家提供了一个.NET 类库参考源码的网站,扣丁格鲁(谐音“coding guru”),使用了段时间,发现一些不方便的地方,特意做了一些更改,希望大家多提意见,下面是此次更改的地方. 更改1. 目录结构调整,将同主题的参考代码放到一级目录中,再根据参考代码的版本创建子目录. 举个例子,原来输入http://www.projky.com/ 后面加上 “NET4.0”访问.NET4.0的参考代码,现在,将.NET4.0放入了dotnet的二级目录中,需要访问http://www.projk…
项目源码下载:  WWW.DI81.COM 分享一个大型进销存供应链项目(多层架构.分布式WCF多服务器部署.微软企业库架构) 这是一个比较大型的项目,准备开源了.支持N家门店同时操作.远程WCF+企业库5.0实现. 这块应该算是库存模块中的核心模块了,因为该块的业务逻辑比较多,比较繁琐,大致讲讲业务逻辑吧,大致的逻辑为:出库单/出库单-->填写订单-->出库/入库-->修改库存信息,按照这个顺序来完成入库出库,顺序不能颠倒,同时还要实现订单的删除,修改,在修改库存信息时由于表和表之间有…
在前面随笔<在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容32位64位Oracle驱动>中介绍了在代码生成工具中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,如果我们在框架应用中需要使用这个如何处理了?由于我们开发框架底层主要使用微软企业库(目前用的版本是4.1),如果是使用它官方的Oracle扩展,那么就…
微软企业库支持 MySql   三步让企业库支持 mysql 数据库 1.创建 MySqlDatabaseData 类 using Microsoft.Practices.EnterpriseLibrary.Common.Configuration; using Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel; using Microsoft.Practices.EnterpriseLibrary…
来到了新公司,一开始就要做个程序去获取另外一个程序里的数据,哇,挑战性很大. 经过两周的学习,终于搞定,主要还是对Windows API有了更多的了解. 文中所有的消息常量,API,结构体都整理出来了(还不是很全):Windows.zip  目录: 获取控件句柄 模拟键盘和鼠标 文本框赋值 操作DateTimePicker控件 操作TreeView控件 识别简单验证码 判断按钮状态 正文: 一丶怎么获取每个控件的句柄 第一种是使用FindWindow和FindWindowEx两个API结合使用,…
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之路(五) FastAPI 学习之路(六)查询参数,字符串的校验 FastAPI 学习之路(七)字符串的校验   FastAPI 学习之路(八)路径参数和数值的校验 FastAPI 学习之路(九)请求体有多个参数如何处理? FastAPI 学习之路(十)请求体的字段 FastAPI 学习之路(十一)请…
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之路(五) FastAPI 学习之路(六)查询参数,字符串的校验 FastAPI 学习之路(七)字符串的校验   FastAPI 学习之路(八)路径参数和数值的校验 FastAPI 学习之路(九)请求体有多个参数如何处理? FastAPI 学习之路(十)请求体的字段 FastAPI 学习之路(十一)请…