.NET平台上插拔姿势的AOP
AOP概述
AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto Research Lab(即PARC)的研究人员就对面向对象思想的局限性进行了分析。他们研究出了一种新的编程思想,借助这一思想或许可以通过减少代码重复模块从而帮助开发人员提高工作效率。随着研究的逐渐深入,AOP也逐渐发展成一套完整的程序设计思想,各种应用AOP的技术也应运而生。
AOP技术在Java平台下是最先得到应用的。就在PARC对于面向方面编程进行研究的同时,美国Northeastern University的博士生Cristina Lopes和其同事也开始了类似的思考。最终,美国国防先进技术研究计划署(Defense Advanced Research Projects Agency即DARPA)注意到了这项工作,并提供了科研经费,鼓励将二者的工作成果结合起来。他们通过定义一套Java语言的扩展系统,使开发者可以方便的进行面向方面的开发,这套扩展系统被称为AspectJ。之后,AspectJ在2002年被转让给Eclipse Foundation,从而成为在开源社区中AOP技术的先锋,也是目前最为流行的AOP工具。
AOP(Aspect-Oriented Programming,面向切面的编程),它是可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。它是一种新的方法论,它是对传统OOP编程的一种补充。OOP是关注将需求功能划分为不同的并且相对独立,封装良好的类,并让它们有着属于自己的行为,依靠继承和多态等来定义彼此的关系;AOP是希望能够将通用需求功能从不相关的类当中分离出来,能够使得很多类共享一个行为,一旦发生变化,不必修改很多类,而只需要修改这个行为即可。AOP是使用切面(aspect)将横切关注点模块化,OOP是使用类将状态和行为模块化。在OOP的世界中,程序都是通过类和接口组织的,使用它们实现程序的核心业务逻辑是十分合适。但是对于实现横切关注点(跨越应用程序多个模块的功能需求)则十分吃力,比如日志记录,权限验证,异常拦截等。


Spring.NET 中的 AOP
通知(Advice): 通知描述了切面要完成的任务,同时还描述了何时执行这个任务。
连接点(Joinpoint): 程序中应用通知的地方称为连接点,这个点可以是方法被调用时,异常抛出时,甚至访问属性的时候。
切入点(Pointcut): 切入点定义通知切入的一个或者多个连接点。
切面(Aspect): 切面就是通知和切入点的结合。通知和切入点共同定义了切面的全部内容:功能、时机、位置。
引入(Introduction): 允许我们想现有类中增加属性和方法.
目标(Target): 被通知的对象
代理(Porxy): 向目标对象增加通知之后,创建的对象,由这个对象来访问实际的目标对象。
织入(Weaving): 被切面应用到目标对象来创建新的代理对象的过程。

配置型 ? no,这不是我需要的太麻烦了。对于新手瞬间懵逼了好吗?
PostSharp


传送地址 ->>>>>>>>>>>>>>> http://www.cnblogs.com/leoo2sk/archive/2010/11/30/aop-postsharp.html
我们看这个AOP , 发现挺适合的......最后MDZZ,收费.收费的,收费的搞毛线啊~~~~~
推荐新手的AOP
TM逗我? just like PostSharp, but free as in free beer :和PostSharp 一样,但胜在免费。是不是爱上我了?嘿嘿,爱上作者去吧。

Nuget:上安装这个,看清楚了呀,等会又来说,诶哟,楼主MDZZ不行啊!
示列:

感觉属性不够 ? 进阶者的AOP --作者也开源了^.^


SheepAspect : SAQL寻找方法规则
 SAQL寻找方法规则
.NET平台上插拔姿势的AOP的更多相关文章
- 我心中的核心组件(可插拔的AOP)~大话开篇及目录
		回到占占推荐博客索引 核心组件 我心中的核心组件,核心组件就是我认为在项目中比较常用的功能,如日志,异常处理,消息,邮件,队列服务,调度,缓存,持久化,分布式文件存储,NoSQL存储,IoC容器,方法 ... 
- 在.NET Core中三种实现“可插拔”AOP编程方式(附源码)
		一看标题肯定会联想到使用动态编织的方式实现AOP编程,不过这不是作者本文讨论的重点. 本文讨论另外三种在netcore中可实现的方式,Filter(过滤器,严格意义上它算是AOP方式),Dynamic ... 
- 我心中的核心组件(可插拔的AOP)~第二回 缓存拦截器
		回到目录 AOP面向切面的编程,也称面向方面的编程,我更青睐于前面的叫法,将一个大系统切成多个独立的部分,而这个独立的部分又可以方便的插拔在其它领域的系统之中,这种编程的方式我们叫它面向切面,而这些独 ... 
- ARM上的linux如何实现无线网卡的冷插拔和热插拔
		ARM上的linux如何实现无线网卡的冷插拔和热插拔 fulinux 凌云实验室 1. 冷插拔 如果在系统上电之前就将RT2070/RT3070芯片的无线网卡(以下简称wlan)插上,即冷插拔.我们通 ... 
- 使用PostSharp在.NET平台上实现AOP(转)
		出处:https://www.cnblogs.com/leoo2sk/archive/2010/11/30/aop-postsharp.html 摘要 本文首先介绍AOP(面向方面编程)的相关概念及理 ... 
- 使用PostSharp在.NET平台上实现AOP
		摘自:http://www.cnblogs.com/leoo2sk/archive/2010/11/30/aop-postsharp.html 本文首先介绍AOP(面向方面编程)的相关概念及理论,然后 ... 
- 在可插拔settings的基础上加入类似中间件的设计
		在可插拔settings的基础上加入类似中间件的设计 settings可插拔设计可以看之前的文章 https://www.cnblogs.com/zx125/p/11735505.html 设计思路 ... 
- 增加 addDataScheme("file") 才能收到SD卡插拔事件的原因分析 -- 浅析android事件过滤策略
		http://blog.csdn.net/silenceburn/article/details/6083375 =========================================== ... 
- oracle12c新特点之可插拔数据库(Pluggable Database,PDB)
		1. 12c PDB新特点的优势 1) 可以把多个PDB集成进一个平台. 2) 可以快速提供一个新的PDB或一个已有PDB的克隆. 3) 通过拔插技术,可以快速把存在的数据库重 ... 
随机推荐
- SQLSERVER聚集索引与非聚集索引的再次研究(上)
			SQLSERVER聚集索引与非聚集索引的再次研究(上) 上篇主要说聚集索引 下篇的地址:SQLSERVER聚集索引与非聚集索引的再次研究(下) 由于本人还是SQLSERVER菜鸟一枚,加上一些实验的逻 ... 
- [原]  KVM 虚拟化原理探究(2)— QEMU启动过程
			KVM 虚拟化原理探究- QEMU启动过程 标签(空格分隔): KVM [TOC] 虚拟机启动过程 第一步,获取到kvm句柄 kvmfd = open("/dev/kvm", O_ ... 
- MSYS2——Windows平台下模拟linux环境的搭建
			最近从MSYS1.0迁移到了MSYS2.0,简单讲,MSYS2.0功能更强大,其环境模拟更加符合linux.虽然本身来自cygwin,但其集成了pacman软件管理工具,很有linux范,并且可以直接 ... 
- Dropzone.js实现文件拖拽上传
			dropzone.js是一个开源的JavaScript库,提供 AJAX 异步文件上传功能,支持拖拽文件.支持最大文件大小.支持设置文件类型.支持预览上传结果,不依赖jQuery库. 使用Dropzo ... 
- iOS10之Expected App Behaviors
			昨天上架到appStore的时候碰到个问题,构建好后上传到itunesconnect的的包都用不了, 显示错误为:此构建版本无效. 或者英文显示为:ITC.apps.preReleaseBuild.e ... 
- Atitit.研发管理软件公司的软资产列表指南
			Atitit.研发管理软件公司的软资产列表指南 1. Isv模型下的软资产1 2. 实现层面implet1 3. 规范spec层1 4. 法则定律等val层的总结2 1. Isv模型下的软资产 Sof ... 
- ubuntu系统(华硕笔记本)屏幕亮度用Fn控制的调节设置
			亲测配置: 系统:Linux lite 3.2 x86_64(Ubuntu其他版本可参考修改) 笔记本:华硕(asus)1201N 达到的效果: 可以正常使用Fn+F5调暗,Fn+F6调亮. 设置步骤 ... 
- git图像化界面GUI的使用
			GIT学习笔记 一. 基础内容 1.git是一个版本控制软件,与svn类似,特点是分布式管理,不需要中间总的服务器,可以增加很多分支. 2.windows下的git叫msysgit,下载 ... 
- js动态加载css和js
			之前写了一个工具类点此链接里面含有这段代码,感觉用处挺多,特意提出来 var loadUtil = { /* * 方法说明:[动态加载js文件css文件] * 使用方法:loadUtil.loadjs ... 
- .Net Core 系列:1、环境搭建
			前言: 2016年6月28日微软宣布发布 .NET Core 1.0.ASP.NET Core 1.0 和 Entity Framework Core 1.0. .NET Core是微软在两年前发起的 ... 
 
			
		