Castle Windsor или Spring.NET - преимущества и недостатки

Вчера я читал несколько статей на этом сайте, когда наткнулся на статью об этих двух новых инструментах IoC. Какой из них я должен выучить в первую очередь? Есть ли какая-то спецификация о том, какой из них и когда следует использовать?


person MD Sayem Ahmed    schedule 09.01.2010    source источник


Ответы (3)


Ни Castle.Windsor, ни Spring.NET не новы.

  • Замок Виндзор существует с конца 2004 года.
  • Spring.NET существует с начала 2006 года.

Это два сопоставимых контейнера DI, которые по сути нацелены на предоставление одинаковых услуг, поэтому вам не нужно изучать один за другим, и вам также не нужно обращаться к какой-либо спецификации о том, когда использовать. который из.

Я использую Castle Windsor около полугода и в целом доволен. Spring.NET, на который я еще не смотрел, но похоже, что он очень привязан к системе конфигурации и не поддерживает программную регистрацию, и если это правда, то в моих глазах это будет серьезным недостатком.

Castle Windsor и Spring.NET - не единственные контейнеры DI, доступные для .NET. Вот более крупный список:

person Mark Seemann    schedule 09.01.2010

Я один из участников проекта Castle (включая Виндзор), поэтому я могу быть предвзятым, но.

Windsor очень расширяемый, позволяет настраивать и адаптировать его под свои нужды. Он предоставляет удобный API регистрации, так что вам не нужно писать тонну XML. Существует также множество расширений, которые вы можете использовать для интеграции Windsor с другими фреймворками, такими как коммуникационные фреймворки ORM (WCF, NServiceBus) и т. Д.

Кроме того, у него очень активное и отзывчивое сообщество, поэтому, если у вас есть какие-либо вопросы, в большинстве случаев на них довольно быстро ответят.

person Krzysztof Kozmic    schedule 09.01.2010
comment
Если вы участвуете в проекте замка, вы должны знать, что главная причина того, что у вас есть активное и отзывчивое сообщество, вероятно, состоит в том, что ваша документация ужасна. Сравнение документации между двумя фреймворками - не соревнование ... Spring.net имеет ссылку на 500-страничное руководство, написанное для текущей версии программного обеспечения. Выяснить, как работает Касл, очень сложно (особенно пока что в Виндзоре). - person wllmsaccnt; 04.11.2010
comment
@wllmsaccnt Я новичок в Виндзоре и согласен. Документация Виндзора ужасна. - person hari_sree; 16.08.2012
comment
@ wllmsaccnt @theneoindian Здесь нужно уточнить два момента. Во-первых, документ Виндзора был переписан с нуля с 2010 года. Во-вторых, если для инструмента, который должен упростить вашу жизнь, требуется руководство на 500 страниц, возможно, вы делаете это неправильно. - person Krzysztof Kozmic; 17.08.2012

Думаю, оба лучше с точки зрения конфигурации. Особой разницы нет, но оба они лучше, чем фреймворк Unity. Какого черта вам нужна ассоциация marshalbyrefobject в управлении зависимостями. Но если сравнивать spring.net и Castle Windsor, оба хороши. Но возникает вопрос, какая из них является полной контейнерной структурой. Как будто нам нужны Аспекты для проверки зависимости. Так что утилита Winsor не работает. Думаю, глупо сравнивать String.net с Castle Windsor или чем-то подобным, потому что все это утилиты, а Spring - это полноценный контейнерный фреймворк. И всем, кто говорит, что это тяжело, пожалуйста, проверьте все проблемы с утечкой памяти. Это не весна или Виндзорский замок, это глупый способ написания кода. Итак, наконец, ответ: если вам нужно просто D, я использую Windsor, но если вам нужна полная структура для любого решения, используйте spring.net.

person rohi    schedule 03.02.2012