文章分类 - IOC/AOP
1
摘要:本篇目录 使用NUnit编写测试 编写和运行NUnit测试 切面的测试策略 Castle DynamicProxy测试 测试一个拦截器 注入依赖 PostSharp测试 对PostSharp切面进行单元测试 注入依赖 PostSharp和测试的问题 小结 编写和运行NUnit测试 切面的测试策略 测
阅读全文
摘要:本篇目录 位置拦截 .Net中的字段和属性 PostSharp位置拦截 真实案例——懒加载 .Net中的懒加载 使用AOP实现懒加载 如何懒加载字段? 真实案例——INotifyPropertyChanged 小结 .Net中的字段和属性 PostSharp位置拦截 .Net中的懒加载 使用AOP实
阅读全文
摘要:本篇目录 边界切面 PostSharp方法边界 方法边界 VS 方法拦截 ASP.NET HttpModule边界 真实案例——检查是否为移动端用户 真实案例——缓存 小结 本系列的源码本人已托管于Coding上:点击查看。 本系列的实验环境:VS 2013 Update 5(建议最好使用集成了Nu
阅读全文
摘要:本篇目录 方法拦截 PostSharp方法拦截 Castle DynamicProxy方法拦截 现实案例——数据事务 现实案例——线程 .Net线程基础 UI线程和工作线程 使用AOP的声明式线程 小结 PostSharp方法拦截 Castle DynamicProxy方法拦截 .Net线程基础 U
阅读全文
摘要:本篇目录 开始一个新项目 没有AOP的生活 变更的代价 使用AOP重构 本系列的源码本人已托管于Coding上:点击查看。 本系列的实验环境:VS 2013 Update 5(建议最好使用集成了Nuget的VS版本,VS Express版也够用),安装了PostSharp。 这篇博客覆盖的内容包括:
阅读全文
摘要:本篇目录 AOP是什么? Hello,World! 小结 本系列的源码本人已托管于Coding上:点击查看,想要注册Coding的可以点击该连接注册。 本系列的实验环境:VS 2013 Update 5(建议最好使用集成了Nuget的VS版本,VS Express版也够用)。 这篇博客覆盖的内容包括
阅读全文
摘要:什么是Castle Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务。 官方网站:http://www.castleproject.org/ 提到Ca
阅读全文
摘要:最近几天在看一本名为Dependency Injection in .NET 的书,主要讲了什么是依赖注入,使用依赖注入的优点,以及.NET平台上依赖注入的各种框架和用法。在这本书的开头,讲述了软件工程中的一个重要的理念就是关注分离(Separation of concern, SoC)。依赖注入不
阅读全文
摘要:经过了4年的发展,2008年9月11日终于发布了1.0 RTM版本,这个版本已经非常稳定,所有修复的缺陷都是轻微的。可以从这里下载:http://www.postsharp.org/download/1.0/ AOP(ASPect-Oriented Programming,面向方面编程),它是OOP...
阅读全文
摘要:简介如果你很熟悉面向方面编程(AOP),你就会知道给代码增加“切面”可以使代码更清晰并且具有可维护性。但是AOP通常都依赖于第三方类库或者硬编 码的.net特性来工作。虽然这些实现方式的好处大于它们的复杂程度,但是我仍然在寻找一种实现AOP的更为简单的方式,来试我的代码更为清晰。我将它们 单独移出来...
阅读全文
摘要:一、什么是 AOP。AOP(Aspect Orient Programming),也就是面向切面编程。可以这样理解,面向对象编程(OOP)是从静态角度考虑程序结构,面向切面编程(AOP)是从动态角度考虑程序运行过程。二、AOP 的作用。常常通过 AOP 来处理一些具有横切性质的系统性服务,如事物管理...
阅读全文
摘要:1、问题问题:想要添加日志记录、性能监控、安全监测2、最初解决方案2.1、最初解决方案缺点:太多重复代码,且紧耦合2.2、抽象类进行共性设计,子类进行个性设计,此处不讲解,缺点一荣俱荣,一损俱损2.3、使用装饰器模式/代理模式改进的解决方案装饰器模式:动态地给一个对象添加一些额外的职责。就增加功能来...
阅读全文
摘要:拦截注入1、引言2、AOP技术基础3、Java平台AOP技术研究4、.Net平台AOP技术研究2.1 AOP技术起源AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto Research Lab(即PARC)的研究人员就对面向对象思想的局限性进行了分析。他们研究出了一种新...
阅读全文
摘要:接口注入接口注入是将抽象类型的入口以方法定义在一个接口中,如果客户类型需要获得这个方法,就需要以实现这个接口的方式完成注入。实际上接口注入有很强的侵入性,除了要求客户类型增加前面两种方式所需要的代码外,还必须显示地定义一个新的接口并要求客户类型实现它。 //定义需要注入ITimeProvider的类...
阅读全文
摘要:解耦接口是实现的关系前言前段时间看Mvc最佳实践时,认识了一个轻量级的IOC框架:Ninject。通过google搜索发现它是一个开源项目,最新源代码地址是:http://github.com/enkari/ninject/tree/master用户向导:http://ninject.codeple...
阅读全文
摘要:终极目标:解耦依赖注入的核心思想是:接口和实现分离 1. 抽象接口隔离了使用者和实现之间的依赖关系,但创建具体实现类的实例对象仍会造成对于具体实现的依赖。 2. 采用依赖注入可以消除这种创建依赖性。使用依赖注入后,某些类完全是基于抽象接口编写而成的,这可以最大限度地适应需求的变化。 分离接口和...
阅读全文
摘要:老实说我一直怀疑我是不是适合做一个架构师,看着现在这些所谓的架构师无穷的创造力,我真的只有望洋兴叹的份儿。面向接口编程就是把所有的类都抽个 interface出来,SOA就是整一大堆Service,然后用配置文件具体类型绑定。不过真正被雷到的还是我今天搜索IoC的时候看到的“经典”定 义:“控制反转...
阅读全文
摘要:一个接口可以有多个实现类,采用RegisterType来绑定Unity是Unity是微软patterns& practices组用C#实现的轻量级,可扩展的依赖注入容器,它为方便开发者建立松散耦合的应用程序,有以下优点: 1.简化了对象的创建,特别是针对分层对象结构和依赖关系; 2.需求的...
阅读全文
摘要:终极目标:解耦原文叫看《墨攻》理解IOC概念2006年多部贺岁大片以让人应接不暇的频率纷至沓来,其中张之亮的《墨攻》算是比较出彩的一部,讲述了战国时期墨家人革离帮助梁国反抗赵国侵略的个人英雄主义故事,恢宏壮阔,浑雄凝重的历史场面相当震撼。其中有一个场景:当刘德华所饰的墨者革离到达梁国都城下,城上梁国...
阅读全文
摘要:终极目标:解耦1IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。图1:软件系统中耦合的对象 如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在...
阅读全文
1