Альтернативы Prism + MEF для модульных приложений MVVM

Моя команда и я начинаем планировать разработку модульного приложения, которое, вероятно, будет многоцелевым WPF и Silverlight.

У меня лично есть опыт использования старой версии PRISM для создания составного приложения Silverlight с использованием шаблона MVVM. Мы не были знакомы с MEF в то время для обработки различных зависимостей модулей, поэтому мы не использовали его.

Мы не состоим в браке с какой-либо конкретной структурой, но хотим использовать одного из более крупных игроков. Таким образом, мы начали изучать Caliburn/Caliburn Micro, Prism, MVVM Light и Reactive UI.

Большинство из того, что я прочитал для модульности, предлагает PRISM и MEF для обработки этой части процесса. Поскольку я все еще обнимаю часть этого, я не уверен, что у меня отсутствуют некоторые очевидные варианты. Я смог найти эту статью на Caliburn Micro и MEF.

Может ли кто-нибудь указать мне на похожие статьи, используя некоторые другие структуры, чтобы составить составное приложение аналогично тому, как PRSIM использует Регионы и т.д.? В идеале я хотел бы ограничить количество необходимых фреймворков, обеспечивая максимальную гибкость. Мы не прочь принять подход "лучший из породы" и использовать, например, MEF/PRISM для обработки композитинга и MVVM Light для управления View и т.д.; но зачем использовать 2, когда 1 будет делать?

Ответ 1

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

Состав приложения

  • Призма (с использованием любого контейнера IoC: MEF, Unity, Ninject, Autofac и т.д. Есть несколько вещей, которые упрощают MVVM с помощью Prism, но я бы не назвал его полнофункциональной структурой MVVM... это в первую очередь модульная компоновка прикладного состава.)
  • MEF (MEF на самом деле способен делать состав приложения из коробки. Он часто отклоняется как только структура IoC, но он обманчиво мощный.)

MVVM Framework

  • ReactiveUI (мой любимый)
  • Caliburn
  • Caliburn Micro
  • Индикатор MVVM

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

Что касается статей, у меня их слишком много. Есть много хороших статей о составе приложения с Prism (что в значительной степени его работа), но вот хорошая статья о составе приложения с MEF сама по себе:

http://blogs.microsoft.co.il/blogs/tomershamam/archive/2009/08/11/wpf-mef-declarative-composite-ui.aspx

Вы также должны ознакомиться с блоком Glenn Block "Building HelloMEF" в своем блоге. Я не мог найти исчерпывающий список (он не соглашался с его пометкой), но вот тег "MEF". Здесь много хорошего:

http://blogs.msdn.com/b/gblock/archive/tags/mef/default.aspx?PageIndex=1