几个月前,我发现了PostSharp,一段时间后,它很好。Spring.Net可以作为PostSharp吗?
但随后法律回来,回答说他们不喜欢旧版本的许可证。然后,该部门告诉我,2.0的价格高得令人无法接受(我们需要的座位数量)......我非常失望,但并没有灰心。我想,不能是唯一的这样的框架。
我一直在寻找替代品,但其中大部分都是死亡,维护不当(特别是在文档部门),学术用途,或所有上述(我在看你Aspect.Net)
然后我发现了Spring.Net,一段时间以来,它都很好。
我一直在阅读文档,并且继续描绘了AOP涅su似乎是一幅完美的图画。我不再锁定属性来标记要执行代码拦截的位置,但可以用XML配置,并且对其进行更改不需要重新编译。大。
然后我看了看样品,看到下面,在每一个使用场景:
// Create AOP proxy using Spring.NET IoC container.
IApplicationContext ctx = ContextRegistry.GetContext();
ICommand command = (ICommand)ctx["myServiceCommand"];
command.Execute();
if (command.IsUndoCapable)
{
command.UnExecute();
}
为什么必须的代码的前两行存在吗?它毁了一切。这意味着我不能简单地向用户提供一组方面,属性或XML配置,通过在合适的方法/类/ etc中粘贴适当的属性或者编辑XML中的匹配模式,可以使用它们。他们必须修改他们的程序逻辑才能使其工作!
有没有办法让Spring.Net在这种情况下表现为PostSharp? (即用户只需要添加属性/ XML配置,而不是编辑任何方法的内容。
另外,是否有一个值得的功能替代PostSharp?我见过这样的问题标题如此,但没有他们只是想替换PostSharp,他们只是想补充它的功能,我需要完全替换。
简短的回答是否定的,因为PostSharp实际上会将您的代码重写为构建后步骤。尽管如此,我会让春季专家权衡一下。我知道如果你使用DI来实例化你的服务并且愿意涉足方法拦截,你会变得非常接近。 – Aaronaught 2010-03-19 22:26:02
地狱,我要重写!我甚至可以自己做需要的事情。如果只有CCI-AST被证明是足够好的,或者至少它的示例代码是功能强大且足够多样化的> _>还有什么可以满足我的需求吗? – 2010-03-19 22:30:17
也许你可以更具体地了解你想要做什么以及你在哪里找到这个例子?我在Spring上没有太多,正如我已经提到过的,但是我曾经评估过一次,并且不记得必须在类中嵌入任何'ICommand'东西来使用Advice系统。 – Aaronaught 2010-03-19 22:43:20