【问题标题】:What Aspect-Oriented Programming (AOP) libraries for .NET are still actively developed?哪些 .NET 的面向方面编程 (AOP) 库仍在积极开发中?
【发布时间】:2023-03-28 22:44:01
【问题描述】:

我正在尝试找到一个相当成熟/稳定且免费可用(最好是开源)的库,用于在 .NET 中执行 AOP。我一直在搜索并找到以下产品;然而,他们中的大多数似乎已经死了:

  • PostSharp — 这是通常推荐用于 .NET 的 AOP 解决方案,但它是商业产品,因此存在一些使用限制。 (但是,它似乎可以免费用于个人或开源项目。)

  • Spring.NET — 不只是关于 AOP,所以如果一个人只想做 AOP,它可能太强大了。 (?)

  • Policy Injection Application Block — 来自 Microsoft,我希望它至少会得到维护。

  • Castle WindsorDynamicProxy — 主要不是 AOP 库,但显然它可以用于此目的。

  • Aspect# — 这对我来说似乎已经死了。

  • Aspect.NET — 这对我来说似乎也死了。

  • NAop — 显然不再受支持。

  • AOP.NET — 这应该是 NAop 的继任者,而且看起来它不久前就死了。

可能还有更多。从上面的列表中,我了解到在 .NET 上执行 AOP 的唯一真正选择是 PostSharp(即使它是一个商业产品)、Spring.NET、Microsoft 的 Policy Injection Application Block,或者可能是 Windsor。

我是否忘记了任何主要选项?


另请参阅 StackOverflow 上的问题 Suggestions for open source aspect-oriented library for C#。我发布了一个新问题,因为我对 .NET 的各种 AOP 解决方案的开发/维护状态特别感兴趣。

【问题讨论】:

  • 好问题,我很想知道这个最有趣的话题的最新和最伟大的,我还没有机会进入。但是,请增加脚注的字体大小,甚至我的显示器都在眯眼。
  • 这东西是在 很久 以前开发的,.NET 已经快 10 年了。避免混淆 deaddone 或 FOSS 的“不再有趣”。如果有人仍在支付托管费用,它并没有死。
  • @Hans Passant:抱歉,术语过于宽松,如果这看起来很重要,我可以稍后编辑我的问题。但我更希望我的问题的答案集中在什么是活跃的/最新的/广泛使用的/等等,而不是什么是死的/过时的/不再有趣/什么的。
  • Spring.NET 还在积极开发吗?
  • @EJoshuaS:从source code repositoryactivity 来看,没有。上一次提交发生在 2016 年,之前的几次提交发生在 2015 年。不过这只是我的印象,也许最好问问维护者自己。

标签: .net aop


【解决方案1】:

还有基于 Unity 构建的 Aurum (可在 www.machinaaurum.com.br 获得)来源在Codeplex

【讨论】:

  • 它不再可用了。
【解决方案2】:

您不需要 Windsor 即可使用 DynamicProxy。 Windsor 将 DynamicProxy 用于自己的目的,就像 NHibernate、RhinoMocks、Moq 或其他库/应用程序/框架一样。 如果您只需要运行时 AOP,没有 IoC 容器,请单独使用 Caste DynamicProxy。

它正在积极开发中,上一个预发布版本是在 2 周前发布的,最终版本 (v2.5) 预计在本月发布。

注意:在以前的版本(最高 v2.2)中,DynamicProxy 曾经存在于自己的程序集 Castle.DynamicProxy.dll 中。后来它被移到 Castle.Core.dll,现在不需要其他程序集来使用它。 Source

【讨论】:

    猜你喜欢
    • 2012-09-03
    • 2011-03-24
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多