blu*_*blu 10 c# asp.net aop domain-driven-design
我有一个ASP.NET 3.5 SP1 Webforms应用程序.我使用带有DI(autofac)的MVP模式(监督控制器).我的演示者调用我的域(DDD)中定义的存储库合同,这些合同在基础结构项目中实现.
演示者调用的存储库方法可以是hork,因此我需要记录异常,然后在View上设置错误消息.
在过去,我会添加另一个参数来演示构造函数,存储在基地演示参考,并叫我Catch块日志方法.我真的不喜欢这个,但它完成了工作.
我可以使用工厂来获取此处所述的日志记录类,但我想首先探索AOP,因为它看起来很有趣.
我已经完成了关于编译时与运行时AOP的阅读,并且我想知道人们对不同解决方案,优缺点,建议词等的经验.
从挖掘过程来看,似乎在.NET中有4个主要的AOP框架
我看到另一个问题有一些很好的答案,但是从一年半前开始.是否有更新的"更好"的框架在此期间开发,或者对现有解决方案进行了哪些改进应该加以考虑?
作为参考,我选择了Autofac for DI,因为它流畅,易于使用,找不到任何负面评论,它只是有效.
是否有关于我应该尝试哪种AOP框架的建议?感谢阅读所有这些并添加任何想法.
简而言之,为了简单性和易用性,使用 PostSharp 绝对不会出错。
更长的答案:在我看来,您应该根据您想要实现的目标在两个框架之间进行选择。
如果您希望各个方面根据上下文进行更改,请考虑 Spring.NET(或任何在运行时根据配置注入代码的 aop 框架)。这允许您根据您正在做的事情自定义对象的行为。例如,通过您的配置,您可以在控制台应用程序中使用一种日志记录类型,而在 Web 应用程序中使用另一种日志记录类型。请注意,Spring 也是一个 DI 容器(以及其他一些东西)——它远远超出了 AOP,并且绝对值得学习如何使用。
另一方面,如果您希望行为始终有效,无论上下文如何,那么 PostSharp(编译时编织)是您的最佳选择。这实际上与您在应用该方面的每个方法中包含代码相同。
对于您正在做的事情,我建议您从 PostSharp 开始。
归档时间: |
|
查看次数: |
3192 次 |
最近记录: |