请告诉我使用特定框架的优点和缺点。
可以给我在.net 应用程序中使用 AOP 的成功示例吗?
较早的帖子,但可能会帮助您了解产品和 AOP 实现的一些优缺点。
http://ayende.com/Blog/archive/2007/07/02/7-Approaches-for-AOP-in-.Net.aspx
到目前为止,我们已经将 Spring.Net AOP 用于将日志记录应用到应用程序的经典 AOP 示例。我没有使用任何其他可用于 .Net 的 AOP 框架。
它工作得非常好,没有明显的性能影响,从我们的应用程序中删除了大量多余和重复的代码,并提高了日志记录覆盖率以及日志记录信息的质量和一致性。日志记录现在写在一个地方并配置在一个地方 - 一个巨大的改进。
不过有几点需要注意: Spring.Net AOP 要求建议任何对象至少实现一个接口;也就是说,如果您想记录对某个对象的方法调用,该对象必须至少实现一个接口。此外,AOP在建议方法中没有活动可见性;也就是说,您不能使用 AOP 实现的日志记录来记录方法中变量值的变化。
然而,在实践中,如果您试图将 AOP 追溯应用于现有应用程序,这主要是一个问题。无论如何,对接口进行编码是恕我直言的良好开发实践,如果您需要记录方法的内部工作,这很可能表明它们需要重构。
AOP 确实需要一些计划来实施,并且在您的编码实践中确实需要一定的纪律,但是,就像自动化单元测试一样,恕我直言,这通常只能用于提高代码质量。