幾個月前,我發現了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