【发布时间】:2023-03-28 22:44:01
【问题描述】:
我正在尝试找到一个相当成熟/稳定且免费可用(最好是开源)的库,用于在 .NET 中执行 AOP。我一直在搜索并找到以下产品;然而,他们中的大多数似乎已经死了:
-
PostSharp — 这是通常推荐用于 .NET 的 AOP 解决方案,但它是商业产品,因此存在一些使用限制。 (但是,它似乎可以免费用于个人或开源项目。)
-
Spring.NET — 不只是关于 AOP,所以如果一个人只想做 AOP,它可能太强大了。 (?)
-
Policy Injection Application Block — 来自 Microsoft,我希望它至少会得到维护。
-
Castle Windsor 和 DynamicProxy — 主要不是 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 年了。避免混淆 dead 与 done 或 FOSS 的“不再有趣”。如果有人仍在支付托管费用,它并没有死。
-
@Hans Passant:抱歉,术语过于宽松,如果这看起来很重要,我可以稍后编辑我的问题。但我更希望我的问题的答案集中在什么是活跃的/最新的/广泛使用的/等等,而不是什么是死的/过时的/不再有趣/什么的。
-
Spring.NET 还在积极开发吗?
-
@EJoshuaS:从source code repository 的activity 来看,没有。上一次提交发生在 2016 年,之前的几次提交发生在 2015 年。不过这只是我的印象,也许最好问问维护者自己。