AOP 或者说面向方面编程 ;/1217988702177/) 支持开发人员将代码段“织入”到对象和方法中,而不需要显式地将代码放入到类的源代码中。附加的代码通常被称为“通知(advice)”,它通常被存储在配置文件中,除此之外,也可以用其他方法存储。或许最广为人知的 AOP 系统就是 AspectJ ,它是对于 Java 的扩展。
近年来,AOP 颇具争议。很多人一边诅咒着那些需要重复实现的任务,例如安全与日志;一方面又由于注入代码在源代码中无法清晰可见,而回避 AOP。但是,即使你对其深恶痛绝,你迟早都会碰到那些使用 AOP 的代码。
对于当前正在使用或有意于尝试使用 AOP 的.NET 开发人员而言, PostSharp 会是一个选择。它使用了后处理的方式将 advice 添加到类中。这种方式通过修改已经编译的 EXE 或 DLL 注入必要的代码段。在 PostSharp 中,advice 通常以 Attribute 对其标识。
最近,PostSharp 宣布 1.5 版本支持 Silverlight 2 。CTP 技术预览版本还支持.NET 精简框架(Compact Framework,CF)和 Novell 的 Mono。Chris Koenig 演示了 PostSharp 的例子。
评论