随笔分类 - [01].NET
.NET
摘要:在前面几篇有关Unity学习的文章中,我对Unity的一些常用功能进行介绍,包括:Unity的基本知识、管理对象之间的关系、生命周期、依赖注入等,今天则是要介绍Unity的另外一个重要功能——拦截(Interception)。以下是本文所要介绍的内容:1、Unity与PIAB的关系。2、使用Unity来接管PIAB的功能实现。一、Unity与PIAB的关系 Unity中的Interception可...
阅读全文
摘要:继续学习Unity,在前几篇中已经将Unity的使用方法做了一个还算详细的介绍了,主要是如何通过代码及配置文件来注册对象之间的关系、Unity内置所有的生命周期管理使用介绍,及Unity的Register和Resolve的一些高级应用。通过在PART1——为什么要使用Unity?的学习我们知道Unity可以帮我们简化并管理对象之间的关系(也就是前几篇所介绍的),而今天则要介绍Unity的另外一个重要功能——DI(依赖注入)。本篇文章将主要介绍:1、构造函数注入。2、属性注入。3、方法注入。4、使用配置完成各种注入。5、对已经创建对象进行注入。一、构造函数注入 在有些时候,我们所编写的类中的构造
阅读全文
摘要:今天继续介绍Unity,在上一篇的文章中,我介绍了使用UnityContainer来注册对象之间的关系、注册已存在的对象之间的关系,同时着重介绍了Unity内置的各种生命周期管理器的使用方法,今天则主要介绍Unity的Register和Resolve的一些高级应用。本篇文章将主要介绍:1、注册类型同时初始化构造函数参数并重载调用。2、注册类型同时初始化属性参数并重载调用。3、延迟获取对象。4、检索检索容器中注册信息。一、注册类型同时初始化构造函数参数并重载调用 我们在使用Unity中注册对象之间的关系时,可能对象有相应的构造函数,构造函数中需要传递相应的参数,Unity就支持这样的注册,其主要
阅读全文
摘要:在前一篇文章中,我简单的介绍了如何使用代码及配置文件来进行Unity容器配置,今天则继续介绍Unity容器的使用方法。本篇文章将主要介绍:1、注册对象之间的关系。2、为已存在的对象注册关系。3、Unity中Lifetime Managers介绍。一、注册对象之间的关系在上一篇文章中,已经简单介绍了如何使用Unity来注册对象与对象之间的关系,通过RegisterType方法来注册对象之间的关系。首先来看下类关系图:有2个接口类:IClass(班级接口)和ISubject(科目接口),其分别有2个实现类,现在首先要注册班级相关的对象关系,代码如下:这段代码展示了使用RegisterType方法来
阅读全文
摘要:在上一篇文章中,我简单介绍Unity的一些背景知识、为什么要使用Unity和使用Unity有什么好处。今天将继续学习Unity,主要是了解Unity的一些常见的使用方法。本篇文章将主要介绍:Unity中的UnityContainer基本使用介绍,包括UnityContainer类的常用方法介绍,并且通过几个小例子来介绍具体的使用方法,这些例子都会以代码及配置文件两种方式来实现。 从UnityContainer(Unity容器)这个类的名称中我们就可以看出其是Unity最重要的类,UnityContainer就像Unity的一个司令部,而一个个对象就像一名名士兵,每个士兵来去都需要通过Unity
阅读全文
摘要:今天继续微软企业库5.0的学习之路,今天将介绍微软企业库的重要模块——Unity。本篇文章将主要介绍:1、Unity模块的相关基本知识。2、为什么要使用Unity?3、在什么情况下需要使用Unity。4、Unity学习资源推荐一、Unity模块的相关基本知识在企业库4.0版本中,patterns & practices小组对整个企业库的架构进行了重大变更,将原来的核...
阅读全文
摘要:在前面的Part3中,我介绍Policy Injection模块中内置的Call Handler的使用方法,今天则继续介绍Call Handler——Custom Call Handler,通过建立Custom Call Handler来实现项目中的用户操作日志的记录,具体的代码可以在项目中EntLib.Helper项目下找到,如下图: 本文将从Custom Call Handler两种方式来介绍:Attribute方式和Configuration方式。一、核心代码建立Custom Call Handler则需要有以下几个步骤:1、建立一个类实现接口ICallHandler。2、根据具体需求建
阅读全文
摘要:在前面的Part1和Part2中我已经介绍了PolicyInjection模块的内置的Matching Rule和自定义Matching Rule的基本信息及配置使用方法,不过光有Matching Rule进行验证匹配还不够,还必须要有相应的操作——Call Handler,所以今天继续介绍PolicyInjection模块内置的Call Handler。一、PolicyInjection模块内置的Call Handler通过将Call Handler和Part1、Part2中的Matching Rule组合起来,我们就可以实现AOP编程,如果说Matching Rule是为了匹配寻找需要进行
阅读全文
摘要:这段时间公司有新项目需要开发,所以这个企业库学习之路有点耽误了,今天继续接着上一篇文章,在上一篇文章中,我介绍了企业库的自带Matching Rule(匹配规则)的基本信息及使用方法,但是在PolicyInjection模块中的Matching Rule(匹配规则)还有2个规则没有介绍,分别是:1、Custom Attribute Matching Rule——自定义特性匹配规则2、Custom Matching Rule——自定义匹配规则今天就主要对这2个匹配规则进行介绍,及有关这2个匹配规则的一些应用例子。一、Custom Attribute Matching Rule——自定义特性匹配规
阅读全文
摘要:这篇文章是我在patterns & practices看到的一篇有关EntLib5.0的文章,主要介绍了EntLib5.0的这次的架构变化由来,觉得很不错,大家可以看一下!在过去几年中,依赖关系注入 (DI) 模式在 .NET 开发人员社区一直受到关注。长时间以来,优秀的博客作者们讨论着 DI 的优点。MSDN 杂志 针对这一主题发表了多篇文章。.NET 4.0 将发布某种类似 DI 的功能,并计划以后将其发展为完整的 DI 系统。阅读有关 DI 的博客文章时,我注意到,这一主题有一个很小却很重要的倾向。作者们谈论的是如何在整个应用程序环境中使用 DI。但如何编写使用 DI 的库或框架呢?关注
阅读全文
摘要:继续微软企业库5.0的学习之路,今天主要介绍的是企业库的PolicyInjection模块,这个模块是为了方便我们在项目中使用AOP而生的模块,本篇主要介绍的PolicyInjection模块信息、内置的匹配规则和内置处理模块使用。一、PolicyInjection模块基本信息介绍PolicyInjection模块是在企业库3.0才正式引入的模块,简称PIAB(Policy Injection Application Block),这个模块的主要功能是方便我们在项目开发中进行AOP(面向切面编程),以简化开发内容。有关AOP方面的知识在园子里已经有很多朋友介绍过了,我这边就不重复介绍了,如不了
阅读全文
摘要:今天在把以前写的代码生成工具从原来的.NET3.5升级到.NET4.0,同时准备进一步完善,将程序集都更新后,一运行程序在一处方法调用时报出了一个异常:混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集其调用的方法是从sqlite数据库中获取原来已经使用过的数据库连接,当时也没注意,就是准备设断点然...
阅读全文
摘要:在介绍完企业库几个常用模块后,我今天要对企业库的配置文件进行处理,缘由是我打开web.config想进行一些配置的时候发现web.config已经变的异常的臃肿(大量的企业库配置信息充斥其中),所以决定写这篇关于Configuration Setting模块等其他方式分类管理企业库配置信息的文章。在ASP.NET4中微软就帮我们优化过了web.config,给了我们一个干净的web.config(将原来需要通过web.config注册的程序集、ASP.NET标签和handler等都移至machine.config中)这样大大方便了我们开发人员。虽然我们通过企业库的配置工具可以很方便的配置企业库
阅读全文
摘要:刚才在MSDN上看到Scott写的有关MVC的一个新的视图引擎,觉得非常的强大,可以很好的解决目前MVC视图代码编写繁琐的问题,期待着正式的发布。【原文地址】Introducing “Razor” – a new view engine for ASP.NET【原文发表日期】 July 02, 2010 11:01 PM我的团队当前正在从事的工作之一就是为ASP...
阅读全文
摘要:在上一篇文章中,我介绍了企业库Cryptographer模块的一些重要类,同时介绍了企业库Cryptographer模块为我们提供的扩展接口,今天我就要根据这些接口来进行扩展开发,实现2个加密解密方法(离散加密和对称性加密),分别实现自接口IHashProvider和接口ISymmetricCryptoProvider。首先来看下离散加密——CustomHashCryptography,具体代码如下:这段代码主要就是实现一个离散加密,不过还是有几点需要注意:1、在实现接口IHashProvider的基础上,为了能让这个自定义加密可以在企业库的配置工具里调用到需要为类加上一个特性:[Config
阅读全文
摘要:在完成了后,今天开始介绍企业库中的新模块:Cryptographer(加密模块),这个模块在日常的大多数项目的作用非常重要,例如:网站会员密码、身份证号、网站配置等,通过对信息进行加密可以保证项目数据的安全性。今天主要介绍以下几点:1、企业库Cryptographer(加密模块)简单分析。2、实现一个自定义加密接口。3、在项目中应用自定义接口。第一点、企业库Cryptographer(加密模块)简单分析在我们日常开发中总会使用加密对数据进行加密,我们一般都会在项目中自定义一些加密方法,而企业库就是为了简便这些开发,提供了简便的方式来进行数据加密解密。和其他的模块一样,Cryptographer
阅读全文
摘要:前端时间花了1个多星期的时间写了使用jQuery.Validate进行客户端验证,但是那仅仅是客户端的验证,在开发项目的过程中,客户端的信息永远是不可信的,所以我们还需要在服务器端进行服务器端的验证已保证数据的正确,今天我继续企业库的学习之路,主要介绍企业库中的Validation模块如何对数据进行验证。本文的主要内容有以下三点:1、根据本项目进行实体验证。2、使用Validation提供的ASP.NET控件将实体验证和UI层页面验证联系起来3、简单分析下Validation.Integration.Aspnet实现逻辑文章开始前的废话:我学习微软企业库都是首先查看企业库提供的HOL(Micr
阅读全文
摘要:在前一篇文章中,已经将Validation模块的内置的多种验证器(第一类验证器)的使用进行了介绍,今天继续后面两类验证器:独立验证器和自定义验证器,同时对Validation模块下有关验证器的配置类进行遗漏补充。一、独立验证器 我上篇中我将AndCompositeValidator和OrCompositeValidator归为独立验证器,这2个验证器主要是为了第一类验证服务,可以进行多种验证组合在一起进行复杂验证:AndCompositeValidator——组合验证,逻辑与验证,所包含的多种验证全部通过则通过OrCompositeValidator——组合验证,逻辑或验证,所包含的多种验证有
阅读全文
摘要:在上一篇文章中,我介绍了企业库的Validation模块的基本信息、使用方法,同时对企业库的内置验证器的实现及验证器的特性类实现进行了简单的分析,今天我将继续前一篇文章,介绍Validation模块内置的多种验证器的使用进行介绍。(注:本文仅仅就Validation模块的各种验证器根据我个人的理解进行介绍,如果有误欢迎大家指出!)0、验证器的命名参数在上一篇文章中我已经介绍过验证器的特性类的层次:BaseValidationAttribute-ValidatorAttribute -ValueValidatorAttribute -具体验证器特性类 在具体的验证器的父类们中,已经封装好了
阅读全文
摘要:本文是为后面的学习之路做铺垫,简单介绍下企业库中的Validation模块的一些相关知识,包括Validation模块的简介、用途、使用方法、默认提供的多种验证器的介绍等。一、简介及用途 在实际的项目开发中,我们总会需要对数据进行验证,以保证数据的可靠性,而为了使这些验证可以在不同的地方进行复用(如winform、web、WPF等),就需要将验证进行封装,EntLib的Validation模块就为...
阅读全文