2010-01-09 72 views

回答

15

Castle.Windsor或Spring.NET都不是新的。

  • 溫莎城堡已經出現自2004年下半年
  • Spring.NET已經出現自2006年初

他們是兩個可比DI容器基本上旨在提供相同的服務,所以你不需要先學習另一個,也不需要諮詢任何關於何時使用哪一個的規範。

我一直在使用溫莎城堡大約半年時間,我對它一般很滿意。 Spring.NET我還沒有看,但它看起來像是very closely tied to the configuration system,不支持程序註冊,如果這是真的,那將是我眼中的一個主要缺點。

Castle Windsor和Spring.NET並不是唯一可用於.NET的DI容器。這裏有一個大名單:

4

我是提交者之一到城堡項目(其中包括溫莎),所以我可能會有偏見,但。

溫莎是非常可擴展的,可以讓你調整和彎曲你的需求。它提供了很好的流暢的註冊API,所以你不必編寫大量的XML。還有很多擴展可用於將Windsor與其他框架(如ORM通信框架(WCF,NServiceBus)等)集成。

此外,它還有一個非常活躍且響應迅速的社區,因此如果您有任何問題,他們大部分時間都會很快得到回覆。

+4

如果你參與了城堡項目,你必須意識到你擁有一個積極的響應社區的頭號原因可能是因爲你的文檔太可怕了。比較這兩個框架之間的文檔是沒有競爭的...... Spring.net有一個指向當前版本的軟件的500頁手冊的鏈接。弄清Castle的工作方式是一種痛苦(特別是目前的Windsor)。 – wllmsaccnt 2010-11-04 03:51:35

+0

@wllmsaccnt我是新來的溫莎,我同意。溫莎文檔是可怕的。 – 2012-08-16 11:34:12

+0

@ wllmsaccnt @theneoindian在這裏要澄清兩點。一,溫莎的喬科自2010年以來一直被重新編寫。另一個,如果一個工具可以簡化你的生活需要一本500p手冊,你可能會做錯。 – 2012-08-16 21:54:21

2

我想兩者在配置方面都比較好。沒有太大的區別,但都比Unity框架更好。爲什麼你需要依賴控制中的marshalbyrefobject關聯。但如果我們比較spring.net和溫莎城堡都很好。但問題來自哪一個是完整的容器框架。 就像我們需要Aspects來驗證Dependency一樣。所以winsor工具失敗。我想把String.net與Castle Windsor或類似的東西比較是愚蠢的,因爲所有的都是實用程序,而spring是完整的容器框架。所有人都認爲它很重,請檢查所有內存泄漏問題。這不是春天或Castle Windsor,它是編寫代碼的愚蠢方式。 所以最後的答案是,如果你只需要DI使用Windsor,但是如果你需要使用spring.net的任何解決方案的完整框架。