有没有人在生产环境中使用Postsharp AOP框架?有任何陷阱吗?为了做一些日志记录等,Postsharp可以和Log4Net一起使用吗?
任何关于将Postsharp与Web Apps和/或Log4Net一起使用的教程都将受到高度赞赏。
提前致谢。
答案 0 :(得分:26)
我和另一位队友以不同的方式使用PostSharp处理几个正在制作并且已经持续数月的项目。例如,在一种情况下,我使用它来记录异常情况下的方法参数值。 PostSharp老挝(包含在PostSharp中)是一种易于使用的方法调用方法(例如,在方法入口,出口和异常时),您可以轻松地向log4net注册记录器添加日志调用。
它增加了构建时间,足以略微改变我的构建习惯,但对于它提供的好处肯定不会太多,IMO。在编写代码时,您可能希望将其从本地构建中排除,这很容易做到,因此您可以继续经常快速地构建,然后将其包含在构建服务器上等。
这是来自Gael(PostSharp创建者)的good PostSharp tutorial ......尽管它已经老了,但很高兴看到它是一个贯穿始终。到目前为止我在控制台,winforms,WPF或WebApp中使用它确实没有区别。
我还会说,一旦你弄清楚如何将老挝方面添加到项目中,重复练习就很容易了。并且在应用方面的程序集/类的数量与PostSharp为构建添加的时间之间存在关系。所以你甚至可以控制构建时间问题。
至于代码,我对PostSharp的工作方式印象非常深刻......它从未搞砸过构建,使程序集无效或者使代码混乱。我甚至在ASP.NET应用程序中使用它,具有代码覆盖率和性能检测(因此它与MS的装配工具工具很好地配合使用)。
总而言之,我会说谎。建议你尝试一下log4net的要求。
答案 1 :(得分:5)
我使用Postsharp并且我喜欢它。它为我节省了很多我必须添加的重复代码。
我不需要log4Net的任何高级功能,谷歌就足以了解它是如何工作的。它只是做到了这一点。到目前为止,我还没有看到任何不利之处。
对于Postsharp,网站上的入门指南,博客和浏览源代码就足够了。主要缺点是增加了构建时间。我讨厌等我的电脑去做。使用postharp构建操作,在视觉工作室(在快速PC上)按下c-shift-b大约需要8秒,用于+ -60K loc解决方案和2个项目。如果可以,尝试在尽可能少的项目中使用Postsharp。
如果您真的不想使用postharp,可以创建一个包含20个项目的解决方案,并将post-build命令添加到每个项目中。构建时间足够长,以惹恼团队的其他成员。
就个人而言,我可能会继续将Postsharp用于未来的项目。这些优势超过了额外的构建时间。
答案 2 :(得分:4)
我们尝试使用post sharp进行一两件事,问题在于它将构建时间耗尽了太长时间。如果您正在使用CI,并且经常使用签入方法,那么最好有一个很好的构建服务器和工作站机器。
显然.net 4.0会有一堆编译钩子来使AOP之类的东西更容易。我们的最终结论是等待。
答案 3 :(得分:4)
我使用后锋,我喜欢它。 后期锐利的构建时间很烦人,但它很难。 在调试模式下,我使用条件SKIPPOSTSHARP来消除postharp。
答案 4 :(得分:3)
根据PostSharp Community Survey,许多公司在生产中使用PostSharp。令人沮丧的是他们拒绝被发现: - (。
答案 5 :(得分:2)
我们确实在生产中使用PostSharp,包括3.5运行时和Silverlight运行时。为了加快构建,你可以使用/ m:switch为msbuild(google用于msbuild的并行构建)。他们还承诺在即将发布的版本中加快速度。