【问题标题】:Anyone with Postsharp experience in production? [closed]有 Postsharp 生产经验的人吗? [关闭]
【发布时间】:2010-09-29 20:25:39
【问题描述】:

有没有人在生产环境中使用过Postsharp AOP 框架?有什么陷阱吗?为了做一些日志记录等,Postsharp 可以与 Log4Net 结合使用吗?

非常感谢任何有关将 Postsharp 与 Web 应用程序和/或 Log4Net 一起使用的教程。

【问题讨论】:

  • 我在它商业化之前就考虑过使用它。对于 AOP 库来说,这是一条非常错误的路线。
  • 我觉得社区版还是存在的

标签: .net asp.net aop postsharp


【解决方案1】:

我和另一位队友在几个正在生产并且已经使用了几个月的项目中以不同的方式使用 PostSharp。例如,在一种情况下,我使用它来记录方法参数值以防出现异常。 PostSharp Laos(包含在 PostSharp 中)是一种易于使用的注入方法调用的方式(例如,在方法进入、退出和异常时),您可以轻松地将日志调用添加到 log4net 注册的记录器。

它增加了构建时间,足以稍微改变我的构建习惯,但对于它提供的好处来说肯定不会太多,IMO。在编写代码时,您可能希望将其从本地构建中排除,这很容易做到,因此您可以继续频繁快速地构建,然后将其包含在构建服务器等中。

这是来自 Gael(PostSharp 的创建者)的 good PostSharp tutorial...虽然它很旧,但很高兴看到它是贯穿始终的。在我目前遇到的控制台、winforms、WPF 或 WebApp 中使用它确实没有什么区别。

我还要说,一旦您弄清楚如何将老挝方面添加到项目中,重复该练习就非常容易。您将方面应用到多少程序集/类与 PostSharp 添加到您的构建中的时间之间存在关系。所以你甚至可以稍微控制一下构建时间问题。

至于代码,我对 PostSharp 的工作效果印象深刻……它从未搞砸过构建、使程序集无效或以其他方式弄乱了代码。我什至在 ASP.NET 应用程序中使用过它,包括代码覆盖率和性能检测(因此它与 MS 的 Assembly 检测工具配合得很好)。

总而言之,我愿意。建议您尝试一下以满足您的 log4net 要求。

【讨论】:

    【解决方案2】:

    我使用 Postsharp,我喜欢它。它为我节省了很多我必须添加的重复代码。

    我不需要 log4Net 的任何高级功能,谷歌足以了解它是如何工作的。它只是做这项工作。到目前为止,我还没有看到任何缺点。

    对于 Postsharp,网站上的入门指南、博客和浏览源代码就足够了。一个主要缺点是增加了构建时间。我讨厌等待我的电脑工作。在 Visual Studio(在快速 PC 上)中按下 ctrl-shift-b 大约需要 8 秒,以获得 +-60K loc 解决方案,其中 2 个项目使用 postsharp 构建操作。如果可以,请尝试在尽可能少的项目中使用 Postsharp。

    当你真的不想使用 postsharp 时,你可以创建一个包含 20 个项目的解决方案,并将 post-build 命令添加到每个项目中。构建时间足够长,足以惹恼团队的其他成员。

    就我个人而言,我可能会在未来的项目中继续使用 Postsharp。优势超过了额外的构建时间。

    【讨论】:

      【解决方案3】:

      我们尝试将 post sharp 用于一两件事,问题是它使构建时间过长。如果您正在使用 CI,并且有一个频繁的签入方法,那么您最好有一个非常好的构建服务器和工作站机器。

      显然 .net 4.0 将有一堆编译器钩子来使 AOP 之类的事情更容易做。我们的最终结论是等待。

      【讨论】:

      • 谢谢,我正在寻找这种输入。我们的团队中有一个 Postsharp 粉丝 :)
      • 您从哪里了解到编译器挂钩?我很好奇!
      • Anders 最近在会议上一直在谈论它(不确定我是从哪里听到的)显然长期目标是让 csc 成为完全托管的代码
      【解决方案4】:

      我使用 post sharp,我喜欢它。 后期的构建时间很烦人,但几乎没有能力。 在调试模式下,我使用条件 SKIPPOSTSHARP 来消除后锐化。

      【讨论】:

        【解决方案5】:

        根据PostSharp Community Survey,很多公司在生产中使用 PostSharp。令人沮丧的是他们拒绝被识别:-(。

        【讨论】:

        • Gael,我们在 www.pirform.co.uk 的生产中使用 PostSharp。好吧,我们现在处于测试阶段,但很快就会发布。我们也很高兴被认出来。
        【解决方案6】:

        我们确实在生产环境中使用 PostSharp,用于 3.5 运行时和 Silverlight 运行时。为了加快构建速度,您可以使用 /m: switch for msbuild(谷歌用于 msbuild 的并行构建)。他们还承诺在即将发布的版本中显着加快速度。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-10
          • 2010-09-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多