任何具有Postsharp生产经验的人?

时间:2009-01-06 16:17:39

标签: .net asp.net aop postsharp

有没有人在生产环境中使用Postsharp AOP框架?有任何陷阱吗?为了做一些日志记录等,Postsharp可以和Log4Net一起使用吗?

任何关于将Postsharp与Web Apps和/或Log4Net一起使用的教程都将受到高度赞赏。

提前致谢。

6 个答案:

答案 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的并行构建)。他们还承诺在即将发布的版本中加快速度。