Возможный дубликат:
который Стоит обратить внимание на фреймворки .NET Dependency Injection?
Какой лучший IoC среди StructureMap и Ninject?
Это должно быть объединено с: Лучшими фреймворками для инъекций
Возможный дубликат:
который Стоит обратить внимание на фреймворки .NET Dependency Injection?
Какой лучший IoC среди StructureMap и Ninject?
Это должно быть объединено с: Лучшими фреймворками для инъекций
Зависит от ситуации. Для небольших проектов, где вам нужен простой контейнер, я бы выбрал Ninject. Мне нравится то, что он маленький и поджарый. Мне не нравятся атрибуты, но есть способы обойти это.
Для большого решения, где вам может потребоваться больше, чем простой IoC, я бы выбрал материал Castle. Здесь много гибкости, вы можете использовать xml, атрибуты или DSL для настройки, вы можете расширить свой IoC на территорию AOP, если вам это понадобится позже.
Структурную карту я еще не пробовал. Кажется, он делает гораздо больше, чем IoC. Но я не могу это комментировать. Я бы подумал, что Ninject и Structuremap служат разным целям, поэтому трудно выбирать между ними, не зная немного больше о контексте. Лучше обычно понятие относительное :-)
Я использую StructureMap, поэтому думаю, что это лучший вариант. Но, возможно, в будущем я выберу Unity, поскольку он поддерживается MS, что означает лучшую документацию и меньшую зависимость от доброй воли одного человека, хотя этот человек очень доброжелателен. Конечно, я не буду менять фреймворк только потому, что он приятный. Пока что-то работает, я даже не обновляюсь.
Нет лучшего. Большинство из них делают 90% того, что вам нужно, практически одинаково. В определенных ситуациях один может быть более гибким, чем другой.
Если бы у меня был выбор, я бы выбрал Виндзор, если уж на то пошло, но я это уже хорошо знаю. Но я бы не стал жаловаться, если бы мне пришлось использовать Ninject или StructureMap. Оба они - хорошие фреймворки.
Я знаю, что в настоящее время Ninject - единственный, который работает на платформе Compact, поэтому, если это необходимо. тогда Ninject - это то, что вам нужно.
Я немного боюсь Spring.NET, в основном потому, что ненавижу XML. Но может все не так плохо, как я думаю, не плачь меня :)
Я сам собираюсь пройти этот процесс. Я бы порекомендовал начать с Ninject. Просто потому, что он такой легкий и у него действительно низкий начальный уровень. Вы можете запустить его в течение нескольких часов.
Что вы обнаружите, так это то, что вы будете проектировать свою систему с учетом IoC, и этот дизайн будет в основном одинаковым, независимо от того, какую структуру IoC вы используете.
Без особой переделки базовой сантехники фреймворка вы сможете заменить NInject на что-то вроде StructureMap, если хотите.
Лучше всего начать с одного и посмотреть, какие проблемы вы обнаружите, а затем решить, будет ли альтернатива лучше соответствовать вашим потребностям.
Кажется, что фреймворки действительно переживают динамичный период, повсюду выпускаются новые версии. И MEF, который представляет собой IoC и многое другое, может вызвать дальнейшее изменение ландшафта.
autofac - хороший выбор для небольших проектов. Если вам нужна жесткая интеграция IoC + со всем, что вы можете себе представить, я бы порекомендовал Spring.NET
РЕДАКТИРОВАТЬ. Теперь, когда я думаю об этом, Autofac отлично подходит для проектов любого размера, в то время как Spring.NET кажется слишком корпоративным.