在我使用过的各种项目中,我们不得不使用一些AOP或依赖注入框架。
我们使用Enterprise LIbrary,Unity和PostSharp。
目前,Postsharp是我最好的选择,当涉及到我如何生成方面的灵活性。
唯一的问题是安装PostSharp后所需的构建时间。我的开发人员不喜欢支付时间税,即使是关于PostSharp的所有敬意。
所以我的问题是:你建议使用什么AOP框架来快速构建时间和强大的功能?
谢谢,非常感谢您的回答,
帕特里克
答案 0 :(得分:7)
PostSharp基本上是一个全功能的静态编织器。这意味着编织在构建过程中,在后编译步骤中进行。当然,这可能需要一些时间。 (请务必阅读有关版本2.0附带的runtime performance improvements和build time performance improvements的Gael公告)
如果您不希望任何构建时间开销,则只有一个解决方案:使用动态编织器。在.NET中,有几个拦截框架,如Castle.DynamicProxy或Linfu.DynamicProxy。它们在运行时生成代理。请注意,这些框架不能像PostSharp这样的静态AOP框架那样做,并且在运行时也可能执行效率较低。通常,IoC框架提供动态拦截功能(Spring.NET,Unity,Windsor等。)
另一个解决方案是查看混合编织器,它只在构建过程中以静态方式编织连接点,然后允许您在运行时动态应用方面。使用Linfu.AOP作为后端的Mono.Cecil就是这样的。
答案 1 :(得分:0)
Spring.NET不使用编织,它基于一个非常稳定的Java aop框架。 Here是项目地址。