MVVM - Фреймворки
В этой главе мы обсудим доступные инструменты или фреймворки MVVM. Вы также можете использовать эти фреймворки, чтобы вам не приходилось писать кучу повторяющегося кода для самостоятельной реализации шаблона MVVM. Вот некоторые из самых популярных фреймворков -
- Prism
- MVVM Light
- Калибурн Микро
Призма
Prism предоставляет руководство в виде примеров и документации, которые помогут вам легко разрабатывать и создавать многофункциональные, гибкие и легко обслуживаемые настольные приложения Windows Presentation Foundation (WPF). Богатые Интернет-приложения (RIA), созданные с помощью подключаемого модуля браузера Microsoft Silverlight и приложений Windows.
Prism использует шаблоны проектирования, которые воплощают важные принципы архитектурного проектирования, такие как разделение задач и слабая связь.
Prism помогает вам разрабатывать и создавать приложения с использованием слабосвязанных компонентов, которые могут развиваться независимо, но которые могут быть легко и беспрепятственно интегрированы в общее приложение.
Эти типы приложений известны как составные приложения.
Prism имеет ряд готовых функций. Ниже приведены некоторые из важных функций Prism.
Шаблон MVVM
Prism поддерживает шаблон MVVM. Он имеет класс Bindablebase, аналогичный тому, который реализован в предыдущих главах.
Он имеет гибкий ViewModelLocator, который имеет к нему соглашения, но позволяет вам переопределять эти соглашения и декларативно подключать ваши представления и ViewModels слабосвязанным способом.
Модульность
Это возможность разбить ваш код на полностью слабо связанные библиотеки классов по частям и объединить их во время выполнения в единое целое для конечного пользователя, при этом код остается полностью разделенным.
Состав пользовательского интерфейса / регионы
Это возможность подключать представления к контейнерам без представления, которое выполняет подключение, и для этого требуется явная ссылка на сам контейнер пользовательского интерфейса.
Навигация
Prism имеет функции навигации, которые накладываются поверх регионов, такие как прямая и обратная навигация и стек навигации, который позволяет вашим моделям представления напрямую участвовать в процессе навигации.
Команды
В Prism есть команды, поэтому у них есть команда делегата, которая очень похожа на MyICommand, которую мы использовали в предыдущих главах, за исключением того, что она обладает некоторой дополнительной надежностью для защиты от утечек памяти.
Pub / Sub События
Prism также поддерживает события Pub / Sub. Это слабо связанные события, в которых издатель и подписчик могут иметь разное время жизни и не должны иметь явных ссылок друг на друга для связи посредством событий.
MVVM Light
MVVM Light разработан Laurent Bugnion и помогает отделить представление от модели, что позволяет создавать более чистые приложения, которые проще поддерживать и расширять.
Он также создает тестируемые приложения и позволяет иметь гораздо более тонкий слой пользовательского интерфейса (который труднее тестировать автоматически).
В этом наборе инструментов особое внимание уделяется открытию и редактированию пользовательского интерфейса в Blend, включая создание данных во время разработки, чтобы пользователи Blend могли «что-то видеть», когда они работают с элементами управления данными.
Калибурн Микро
Это еще одна небольшая платформа с открытым исходным кодом, которая помогает вам реализовать шаблон MVVM, а также поддерживает ряд вещей прямо из коробки.
Caliburn Micro - это небольшая, но мощная платформа, предназначенная для создания приложений на всех платформах XAML.
Благодаря мощной поддержке MVVM и других проверенных шаблонов пользовательского интерфейса Caliburn Micro позволит вам быстро создать свое решение без необходимости жертвовать качеством кода или тестируемостью.