Лучший фреймворк IoC для .Net

Возможный дубликат:
который Стоит обратить внимание на фреймворки .NET Dependency Injection?

Какой лучший IoC среди StructureMap и Ninject?

Это должно быть объединено с: Лучшими фреймворками для инъекций


person cvs    schedule 19.09.2008    source источник
comment
Лучшее ДЕЙСТВИТЕЛЬНО относительное.   -  person Scott Hanselman    schedule 19.09.2008
comment
@ScottHanselman: ценность субъективна, но это также самая важная вещь   -  person micahhoover    schedule 08.07.2014


Ответы (5)


Зависит от ситуации. Для небольших проектов, где вам нужен простой контейнер, я бы выбрал Ninject. Мне нравится то, что он маленький и поджарый. Мне не нравятся атрибуты, но есть способы обойти это.

Для большого решения, где вам может потребоваться больше, чем простой IoC, я бы выбрал материал Castle. Здесь много гибкости, вы можете использовать xml, атрибуты или DSL для настройки, вы можете расширить свой IoC на территорию AOP, если вам это понадобится позже.

Структурную карту я еще не пробовал. Кажется, он делает гораздо больше, чем IoC. Но я не могу это комментировать. Я бы подумал, что Ninject и Structuremap служат разным целям, поэтому трудно выбирать между ними, не зная немного больше о контексте. Лучше обычно понятие относительное :-)

person Mendelt    schedule 19.09.2008

Я использую StructureMap, поэтому думаю, что это лучший вариант. Но, возможно, в будущем я выберу Unity, поскольку он поддерживается MS, что означает лучшую документацию и меньшую зависимость от доброй воли одного человека, хотя этот человек очень доброжелателен. Конечно, я не буду менять фреймворк только потому, что он приятный. Пока что-то работает, я даже не обновляюсь.

person chrissie1    schedule 19.09.2008
comment
Мне не удается найти документацию по Unity. Может ли кто-нибудь предоставить ссылку? - person StriplingWarrior; 10.03.2010
comment
Я лично считаю, что с Unity трудно работать из-за отсутствия документации (включая документацию XML из памяти) и высокой сложности. Я не думаю, что аргументация, поддерживаемая Microsoft, является хорошей аргументацией. - person Sam; 29.10.2012

Нет лучшего. Большинство из них делают 90% того, что вам нужно, практически одинаково. В определенных ситуациях один может быть более гибким, чем другой.

Если бы у меня был выбор, я бы выбрал Виндзор, если уж на то пошло, но я это уже хорошо знаю. Но я бы не стал жаловаться, если бы мне пришлось использовать Ninject или StructureMap. Оба они - хорошие фреймворки.

Я знаю, что в настоящее время Ninject - единственный, который работает на платформе Compact, поэтому, если это необходимо. тогда Ninject - это то, что вам нужно.

Я немного боюсь Spring.NET, в основном потому, что ненавижу XML. Но может все не так плохо, как я думаю, не плачь меня :)

person Ben Scheirman    schedule 26.09.2008

Я сам собираюсь пройти этот процесс. Я бы порекомендовал начать с Ninject. Просто потому, что он такой легкий и у него действительно низкий начальный уровень. Вы можете запустить его в течение нескольких часов.

Что вы обнаружите, так это то, что вы будете проектировать свою систему с учетом IoC, и этот дизайн будет в основном одинаковым, независимо от того, какую структуру IoC вы используете.

Без особой переделки базовой сантехники фреймворка вы сможете заменить NInject на что-то вроде StructureMap, если хотите.

Лучше всего начать с одного и посмотреть, какие проблемы вы обнаружите, а затем решить, будет ли альтернатива лучше соответствовать вашим потребностям.

Кажется, что фреймворки действительно переживают динамичный период, повсюду выпускаются новые версии. И MEF, который представляет собой IoC и многое другое, может вызвать дальнейшее изменение ландшафта.

person Scott McKenzie    schedule 02.03.2009

autofac - хороший выбор для небольших проектов. Если вам нужна жесткая интеграция IoC + со всем, что вы можете себе представить, я бы порекомендовал Spring.NET

РЕДАКТИРОВАТЬ. Теперь, когда я думаю об этом, Autofac отлично подходит для проектов любого размера, в то время как Spring.NET кажется слишком корпоративным.

person Anton Gogolev    schedule 07.05.2009