有没有人在生产环境中使用Postsharp AOP框架?有任何陷阱吗?为了做一些日志记录等,Postsharp可以和Log4Net一起使用吗?
任何有关使用Postsharp与Web Apps和/或Log4Net的教程都将受到高度赞赏.
提前致谢.
我和另外一位队友以不同的方式使用PostSharp对几个正在制作并且已经持续数月的项目.例如,在一种情况下,我使用它来记录异常情况下的方法参数值.PostSharp Laos(包含在PostSharp中)是一种易于使用的方法调用方法(例如,在方法入口,出口和例外情况下),您可以轻松地将日志调用添加到log4net注册的记录器.
它增加了构建时间,足以略微改变我的构建习惯,但对于它提供的好处肯定不会太多,IMO.在编写代码时,您可能希望将其从本地构建中排除,这很容易做到,因此您可以继续经常快速地构建,然后将其包含在构建服务器上等.
这是来自Gael(PostSharp创建者)的一个很好的PostSharp教程 ......虽然它很老,但很高兴看到它是一个贯穿始终.在我到目前为止遇到的控制台,winforms,WPF或WebApp中使用它确实没什么区别.
我还会说,一旦你弄清楚如何将老挝方面添加到项目中,重复练习就很容易了.并且在应用方面的程序集/类的数量与PostSharp为构建添加的时间之间存在关系.所以你甚至可以控制构建时间问题.
至于代码,我对PostSharp的工作方式印象非常深刻......它从未搞砸过构建,使程序集无效或者使代码混乱.我甚至在ASP.NET应用程序中使用它,具有代码覆盖率和性能检测(因此它与MS的装配工具工具很好地配合使用).
总而言之,我会说.建议你尝试一下log4net的要求.
我使用Postsharp,我喜欢它.它保存了我很多重复的代码,否则我必须添加.
我不需要log4Net的任何高级功能,谷歌足以找出它是如何工作的.它只是做到了这一点.到目前为止我还没有看到任何不利因素.
对于Postsharp,网站上的入门指南,博客和浏览源代码就足够了.主要缺点是增加了构建时间.我讨厌等我的电脑去做.使用postharp构建操作,在视觉工作室(在快速PC上)按下c-shift-b大约需要8秒,用于+ -60K loc解决方案和2个项目.如果可以,尝试在尽可能少的项目中使用Postsharp.
如果您真的不想使用postharp,可以创建一个包含20个项目的解决方案,并将post-build命令添加到每个项目中.构建时间足够长,以惹恼团队的其他成员.
就个人而言,我可能会继续使用Postsharp进行未来的项目.优势超过了额外的构建时间.