Ни Castle.Windsor, ни Spring.NET не являются новыми.
Это два сопоставимых контейнера DI , которые по сути направлены на предоставление тех же услуг, поэтому вы не должны Не нужно изучать одно перед другим, и вам также не нужно обращаться к какой-либо спецификации о том, когда какой из них использовать.
Я использую Castle Windsor около полугода и в целом доволен. Spring.NET, на который мне еще предстоит взглянуть, но похоже, что он очень тесно связан с системой конфигурации и не поддерживает программную регистрацию, и если это правда, это будет серьезным недостатком в мои глаза.
Castle Windsor и Spring.NET - не единственные контейнеры DI, доступные для .NET. Вот более крупный список:
]Я один из коммиттеров проекта Castle (в который входит и Windsor), так что я могу быть предвзятым, но.[
] []Windsor очень расширяемый, позволяет настраивать и сгибать его под свои нужды. Он предоставляет хороший API для быстрой регистрации, так что вам не придётся писать тонны XML. Также существует множество расширений, которые вы можете использовать для интеграции Windsor с другими фреймворками, такими как ORMs коммуникационные фреймворки (WCF, NServiceBus) и т.д.[
] []Плюс у него очень активное и отзывчивое сообщество, так что если у вас есть какие-либо вопросы, то в большинстве случаев на них вы получите достаточно быстрый ответ.[
].