昨天我正在閱讀本網站的一些文章,而我偶然發現了關於這兩個新的IoC工具的文章。我應該先學哪一個?有什麼規格應該在什麼時候使用?Castle Windsor或Spring.NET - 優點和缺點
回答
Castle.Windsor或Spring.NET都不是新的。
- 溫莎城堡已經出現自2004年下半年
- Spring.NET已經出現自2006年初
他們是兩個可比DI容器基本上旨在提供相同的服務,所以你不需要先學習另一個,也不需要諮詢任何關於何時使用哪一個的規範。
我一直在使用溫莎城堡大約半年時間,我對它一般很滿意。 Spring.NET我還沒有看,但它看起來像是very closely tied to the configuration system,不支持程序註冊,如果這是真的,那將是我眼中的一個主要缺點。
Castle Windsor和Spring.NET並不是唯一可用於.NET的DI容器。這裏有一個大名單:
我是提交者之一到城堡項目(其中包括溫莎),所以我可能會有偏見,但。
溫莎是非常可擴展的,可以讓你調整和彎曲你的需求。它提供了很好的流暢的註冊API,所以你不必編寫大量的XML。還有很多擴展可用於將Windsor與其他框架(如ORM通信框架(WCF,NServiceBus)等)集成。
此外,它還有一個非常活躍且響應迅速的社區,因此如果您有任何問題,他們大部分時間都會很快得到回覆。
我想兩者在配置方面都比較好。沒有太大的區別,但都比Unity框架更好。爲什麼你需要依賴控制中的marshalbyrefobject關聯。但如果我們比較spring.net和溫莎城堡都很好。但問題來自哪一個是完整的容器框架。 就像我們需要Aspects來驗證Dependency一樣。所以winsor工具失敗。我想把String.net與Castle Windsor或類似的東西比較是愚蠢的,因爲所有的都是實用程序,而spring是完整的容器框架。所有人都認爲它很重,請檢查所有內存泄漏問題。這不是春天或Castle Windsor,它是編寫代碼的愚蠢方式。 所以最後的答案是,如果你只需要DI使用Windsor,但是如果你需要使用spring.net的任何解決方案的完整框架。
- 1. 使用Castle Active Record vs Straight NHibernate有什麼優點和缺點?
- 2. 優點/缺點MemoryStream.Position或MemoryStream.Seek
- 3. WCF - 優點和缺點
- 4. smartGWT的缺點和優點
- 5. Glassfish - 優點和缺點
- 6. Three20的優點和缺點
- 7. N2CMS的優點和缺點
- 8. 優點和缺點mapquest android
- 9. gwt + grail ..優點和缺點
- 10. AUTONOMOUS_TRANSACTION:優點和缺點
- 11. Memcached - 優點和缺點
- 12. Oracle Traces優點和缺點
- 13. MDI優點和缺點
- 14. Axis2優於WCF的優點和缺點
- 15. StyleCop,優點/缺點
- 16. flux vs redux優點和缺點亮點
- 17. WCF Castle Windsor和WAS
- 18. Haxe和Kivy的優點和缺點
- 19. Castle Windsor的DictionaryAdapter
- 20. CPU親和力的優點和缺點
- 21. Scala + IDEA:sbt和fsc的優點和缺點
- 22. DFC和DFS的優點和缺點?
- 23. has_many和has_one,有什麼優點/缺點?
- 24. 天青安全的優點和缺點
- 25. 推送通知優點和缺點
- 26. 組合C#和C的優點/缺點
- 27. Android SDK與Adobe AIR:優點和缺點?
- 28. Web服務vs DLL;優點和缺點?
- 29. Java靜態方法優點和缺點
- 30. 版本控制優點和缺點javadoc
如果你參與了城堡項目,你必須意識到你擁有一個積極的響應社區的頭號原因可能是因爲你的文檔太可怕了。比較這兩個框架之間的文檔是沒有競爭的...... Spring.net有一個指向當前版本的軟件的500頁手冊的鏈接。弄清Castle的工作方式是一種痛苦(特別是目前的Windsor)。 – wllmsaccnt 2010-11-04 03:51:35
@wllmsaccnt我是新來的溫莎,我同意。溫莎文檔是可怕的。 – 2012-08-16 11:34:12
@ wllmsaccnt @theneoindian在這裏要澄清兩點。一,溫莎的喬科自2010年以來一直被重新編寫。另一個,如果一個工具可以簡化你的生活需要一本500p手冊,你可能會做錯。 – 2012-08-16 21:54:21