面向.net的功能/构建性能的最佳面向方面框架

时间:2009-10-07 19:40:12

标签: c# .net dependency-injection aop

在我使用过的各种项目中,我们不得不使用一些AOP或依赖注入框架。

我们使用Enterprise LIbrary,Unity和PostSharp。

目前,Postsharp是我最好的选择,当涉及到我如何生成方面的灵活性。

唯一的问题是安装PostSharp后所需的构建时间。我的开发人员不喜欢支付时间税,即使是关于PostSharp的所有敬意。

所以我的问题是:你建议使用什么AOP框架来快速构建时间和强大的功能

谢谢,非常感谢您的回答,

帕特里克

2 个答案:

答案 0 :(得分:7)

PostSharp基本上是一个全功能的静态编织器。这意味着编织在构建过程中,在后编译步骤中进行。当然,这可能需要一些时间。 (请务必阅读有关版本2.0附带的runtime performance improvementsbuild time performance improvements的Gael公告)

如果您不希望任何构建时间开销,则只有一个解决方案:使用动态编织器。在.NET中,有几个拦截框架,如Castle.DynamicProxyLinfu.DynamicProxy。它们在运行时生成代理。请注意,这些框架不能像PostSharp这样的静态AOP框架那样做,并且在运行时也可能执行效率较低。通常,IoC框架提供动态拦截功能(Spring.NETUnityWindsor等。)

另一个解决方案是查看混合编织器,它只在构建过程中以静态方式编织连接点,然后允许您在运行时动态应用方面。使用Linfu.AOP作为后端的Mono.Cecil就是这样的。

答案 1 :(得分:0)

Spring.NET不使用编织,它基于一个非常稳定的Java aop框架。 Here是项目地址。