Вчера я читал несколько статей на этом сайте, когда наткнулся на статью об этих двух новых инструментах IoC. Какой из них я должен выучить в первую очередь? Есть ли какая-то спецификация о том, какой из них и когда следует использовать?
Castle Windsor или Spring.NET - преимущества и недостатки
Ответы (3)
Ни Castle.Windsor, ни Spring.NET не новы.
- Замок Виндзор существует с конца 2004 года.
- Spring.NET существует с начала 2006 года.
Это два сопоставимых контейнера DI, которые по сути нацелены на предоставление одинаковых услуг, поэтому вам не нужно изучать один за другим, и вам также не нужно обращаться к какой-либо спецификации о том, когда использовать. который из.
Я использую Castle Windsor около полугода и в целом доволен. Spring.NET, на который я еще не смотрел, но похоже, что он очень привязан к системе конфигурации и не поддерживает программную регистрацию, и если это правда, то в моих глазах это будет серьезным недостатком.
Castle Windsor и Spring.NET - не единственные контейнеры DI, доступные для .NET. Вот более крупный список:
Я один из участников проекта Castle (включая Виндзор), поэтому я могу быть предвзятым, но.
Windsor очень расширяемый, позволяет настраивать и адаптировать его под свои нужды. Он предоставляет удобный API регистрации, так что вам не нужно писать тонну XML. Существует также множество расширений, которые вы можете использовать для интеграции Windsor с другими фреймворками, такими как коммуникационные фреймворки ORM (WCF, NServiceBus) и т. Д.
Кроме того, у него очень активное и отзывчивое сообщество, поэтому, если у вас есть какие-либо вопросы, в большинстве случаев на них довольно быстро ответят.
Думаю, оба лучше с точки зрения конфигурации. Особой разницы нет, но оба они лучше, чем фреймворк Unity. Какого черта вам нужна ассоциация marshalbyrefobject в управлении зависимостями. Но если сравнивать spring.net и Castle Windsor, оба хороши. Но возникает вопрос, какая из них является полной контейнерной структурой. Как будто нам нужны Аспекты для проверки зависимости. Так что утилита Winsor не работает. Думаю, глупо сравнивать String.net с Castle Windsor или чем-то подобным, потому что все это утилиты, а Spring - это полноценный контейнерный фреймворк. И всем, кто говорит, что это тяжело, пожалуйста, проверьте все проблемы с утечкой памяти. Это не весна или Виндзорский замок, это глупый способ написания кода. Итак, наконец, ответ: если вам нужно просто D, я использую Windsor, но если вам нужна полная структура для любого решения, используйте spring.net.