2013-02-24 2 views
1

Я хотел бы начать использовать контейнер IoC в существующем приложении WPF.
Мне нужна хорошая производительность, но из того, что я читал, производительность на самом деле не проблема большинства контейнеров.
Что мне больше всего нужно, это очень простой в использовании контейнер, который можно легко интегрировать в мое приложение. Я прочитал рекомендации о StructureMap (и синтаксис выглядит великолепно), но на их сайте кажется, что за последние 3 года обновлений не было, поэтому у меня есть некоторые сомнения по этому поводу.Контейнер IoC для приложения WPF

Просьба предоставить рекомендации с использованием основных примеров кода использования (инициализация + использование).

Редактировать
Я не ищу полную структуру. Мне нужна только емкость контейнера IoC, поэтому существует много других альтернатив. Последнее актуальное обсуждение, которое я нашел здесь, - это несколько лет, и я хотел бы его обновить.

+1

Легко и быстро? Попробуйте [Простой инжектор] (http://simpleinjector.codeplex.com) (бесстыдный плагин). – Steven

+0

Я прочитал про Simple Injector и увидел, что он работает на 'SilverLight'. Будут ли проблемы в приложениях WPF? – Noich

ответ

1

Ответ действительно зависит от личных предпочтений и деталей вашего прецедента. Во всяком случае, после использования Unity, MEF (я знаю, не настоящий контейнер IoC) и написав некоторые отдельные решения, теперь я использую Autofac и, как и много. Очень легко вникать и постоянно раскрывать свои преимущества, чем дольше вы его используете. Он обеспечивает свободный интерфейс и является быстрым, по сравнению с другими платформами (кстати, производительность вашего контейнера может быть очень важной проблемой, в зависимости от того, что вы хотите сделать). Для использования и образцы Autofac см. Ссылку выше.

Почему мне нравится:

  • Легко попасть в
  • Fluent интерфейс
  • Поддержка открытых дженерики
  • Поддерживает сканирующее устройство
  • Interoperability с MEF и другие структуры
  • достаточно быстрого (Performance comparison of IoC containers)

Тем не менее, это личный выбор, и есть другие хорошие решения, которые могут быть даже лучше для вашего особого случая.

И, более или менее не по теме, я могу порекомендовать эту статью, особенно вторую половину, для общих соображений. Это мне очень помогло. Так, на всякий случай:

Article by Martin Fowler

+0

Спасибо за полезный ответ. Я читал статью Фаулера. Основное сопротивление использованию контейнера в нашем коде - это «черная магия». Я хочу показать, что он очень прост в использовании и понимании. – Noich

+1

@Noich: Это черная магия! Так что будь волшебником;) – Marc

+0

Черная магия нахмурилась. :/ Я бы очень хотел быть волшебником. – Noich

1

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

Существует ряд структур типа IoC, некоторые из которых требуют декларативных или программных манипуляций для выполнения своей работы, некоторые из которых используют семантику кода для соединения.

Я хотел бы предложить вам начать с Unity пока вы не получите в качание вещей, а затем посмотреть на ветку, в некоторых более exotic frameworks, когда вы можете оценить различия между ними.


Вот хорошее недавнее введение статьи: Visual Studio magazine: Creating Modularity with WPF, Prism and Unity

2

StructureMap Эйнт dead.

Мы используем его для нашего нового проекта с зеленым полем, а когда v3 выходит, мы можем перейти на него. ATM с использованием 2.6.4.

Смежные вопросы