Почему я не должен использовать Unity? - PullRequest
24 голосов
/ 02 декабря 2009

Я использую контейнер Unity IoC. Это действительно не было решением, которое я принял, оно просто пришло с Призмой, и я просто придерживался его. Я никогда не использовал никаких других IoC-фреймворков, и должен признать, что я очень доволен Unity. Однако удовлетворение может исходить от невежества, поскольку я действительно не знаю, что могут предложить другие платформы.

Я продолжаю слышать, что я не должен использовать контейнер Unity IoC. «Вместо этого используйте Castle, nInject или StructureMap», говорят люди, но я до сих пор не слышал никаких конкретных аргументов или примеров, почему мне следует использовать другую среду. Итак, почему я не должен использовать Unity? Или может мне стоит?

Ответы [ 2 ]

14 голосов
/ 02 декабря 2009

Эти контейнеры, как правило, имеют вкус , больше всего на свете. Ninject имеет приятный свободный интерфейс для его настройки, но некоторым людям нравится способность Unity настраиваться через config (я думаю, мазохисты), а также код.

У меня, как и у вас, были эти вопросы при принятии Prism, поэтому я прошел через упражнение по замене Unity на Ninject и Autofac. Я не нашел убедительной причины с точки зрения производительности или возможностей придерживаться Unity. Есть некоторые вещи, которые были хороши в обоих, но все они делали в основном то же самое и делали это хорошо.

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

Опубликуйте обновление о том, что вы решаете ... Меня всегда интересуют результаты, полученные людьми в реальном мире, против того, что преданные пользователи защищают.

12 голосов
/ 02 декабря 2009

Одной из причин использования Unity является необходимость работать в среде со средним уровнем доверия. Из того, что я обнаружил, Unity кажется намного легче запустить, если ваш код не имеет полного доверия. Я использовал несколько IoC-контейнеров и использую Unity, когда мне нужно среднее доверие.

...