在.NET 中实现 AOP
2006-03-29 01:00
393 查看
软件工程中的大多数思想都是集中在管理复杂度上面的--
结构化编程尝试通过粗粒度的代码与设计划分来降低复杂度;
面向对象编程尝试通过建立结合状态与行为的抽象体来降低复杂度;
基于组件的软件尝试通过基于抽象接口和协议划分应用程序模块来降低复杂度。
基于组件的软件的梦想是构造一个世界,让水平一般的程序员就能使用高级语言和工具将组件组装起来。这当然假设这个世界里面的问题域能被分解成相互之间通过简单的方法调用进行交互的各种离散组件。
基于组件的软件的前提却忽略了这样一个事实,一个程序的特定方面倾向于分散到一个应用的多个部分。安全性就是这样的一个方面,线程管理也是,并发控制也是,这个列表会很长。
不可避免地,一个应用趋于被众多处理那些不是问题域中心的程序方面的代码片断污染。通常,这些方面又倾向于跨问题域,因此需要可复用的解决方案。致力提供机制来解决这类问题的就是AOP(面向方面编程),一个在1997年先后被Gregor Kiczales,和Xeros PARC 提出来的术语。
CLR的AOP机制基本上就是将方法调用看作消息交换。
下面用代码说明这个机制:
using System;
using System.Text;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Messaging;
using System.Runtime.Remoting.Proxies;
using System.Runtime.Remoting.Activation;
using System.Runtime.Remoting.Services;
using System.Runtime.Remoting.Contexts;
using System.Threading;
using System.Diagnostics;
namespace MsgAsMethodCalls
结构化编程尝试通过粗粒度的代码与设计划分来降低复杂度;
面向对象编程尝试通过建立结合状态与行为的抽象体来降低复杂度;
基于组件的软件尝试通过基于抽象接口和协议划分应用程序模块来降低复杂度。
基于组件的软件的梦想是构造一个世界,让水平一般的程序员就能使用高级语言和工具将组件组装起来。这当然假设这个世界里面的问题域能被分解成相互之间通过简单的方法调用进行交互的各种离散组件。
基于组件的软件的前提却忽略了这样一个事实,一个程序的特定方面倾向于分散到一个应用的多个部分。安全性就是这样的一个方面,线程管理也是,并发控制也是,这个列表会很长。
不可避免地,一个应用趋于被众多处理那些不是问题域中心的程序方面的代码片断污染。通常,这些方面又倾向于跨问题域,因此需要可复用的解决方案。致力提供机制来解决这类问题的就是AOP(面向方面编程),一个在1997年先后被Gregor Kiczales,和Xeros PARC 提出来的术语。
CLR的AOP机制基本上就是将方法调用看作消息交换。
下面用代码说明这个机制:
using System;
using System.Text;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Messaging;
using System.Runtime.Remoting.Proxies;
using System.Runtime.Remoting.Activation;
using System.Runtime.Remoting.Services;
using System.Runtime.Remoting.Contexts;
using System.Threading;
using System.Diagnostics;
namespace MsgAsMethodCalls
相关文章推荐
- 关于.NET AOP的实现中上下文对象的获取
- 利用 AOP 实现 .NET 上完整的基于角色的访问控制(RBAC)模型
- 基于.Net的AOP实现技术
- .Net中的RealProxy实现AOP
- 在.Net中关于AOP的实现(二)
- .NET平台自带的AOP机制 转自《设计模式--基于c#的工程化实现及扩展》
- 使用PostSharp在.NET平台上实现AOP
- 使用PostSharp在.NET平台上实现AOP
- 在.Net中关于AOP的实现
- 基于.net简单实现AOP
- 在.NET项目中使用PostSharp,实现AOP面向切面编程处理
- 使用PostSharp 在.NET 平台上实现 AOP
- 利用Microsoft.Practices.Unity的拦截技术,实现.NET中的AOP
- 推荐一个关于AOP的AOP@WORK的专栏作者的AOP专题系列文章,主要关于Java下的AOP实现,毕竟Java下的AOP实现确实要比.Net下成熟得多,共12篇
- 使用PostSharp在.NET平台上实现AOP
- 基于.net的aop实现技术
- 在.Net中关于AOP的实现(三)
- 在.Net中关于AOP的实现
- .net中使用postsharp来实现aop
- .NET面向上下文、AOP架构模式(实现)