Caliburn.Micro

Бесплатно
Открытый исходный код
Windows
macOS
Linux

Сайт: caliburnmicro.com

Caliburn.Micro — компактный и ориентированный на соглашения MVVM-фреймворк для платформ, использующих XAML, таких как WPF, Silverlight и UWP. Он был разработан для упрощения привязки представлений и ViewModel посредством набора соглашений, вспомогательных классов и сервисов, уменьшающих шаблонный код при построении пользовательских интерфейсов. Фреймворк предоставляет механизмы инверсии управления, управления жизненным циклом экранов и маршрутизацией команд, делая акцент на продуктивности разработчика и тестируемости приложения.

В основе Caliburn.Micro лежит набор концепций, среди которых автоматическое связывание именованных элементов представления с свойствами ViewModel, механизм действий (Actions) для связывания событий интерфейса с методами ViewModel, а также абстракции типа Screen/Conductor для управления состоянием и жизненным циклом модулей приложения. Фреймворк включает простой EventAggregator для обмена сообщениями между компонентами без жесткой связности. Благодаря малому объёму и минимальным внешним зависимостям Caliburn.Micro часто используется в проектах, где требуется лёгкая и гибкая инфраструктура MVVM.

  • Sensible conventions: автоматическое связывание представлений и ViewModel по соглашениям имен и структуре, уменьшающее необходимость в явных привязках.
  • Actions: декларативная обработка событий UI, позволяющая вызывать методы ViewModel напрямую из представления без кода-бихайнд.
  • Screen и Conductor: абстракции для управления экранами, состояниями и жизненным циклом компонентов, включая активацию и деактивацию.
  • EventAggregator: простой механизм публикации/подписки для обмена сообщениями между слабо связанными компонентами.
  • IoC интеграция: поддержка внедрения зависимостей и простая интеграция с контейнерами инверсии управления.
  • Навигация и маршрутизация: средства для организации навигации между экранами и управления стеком представлений.
  • Поддержка тестирования: архитектурные решения, облегчающие модульное тестирование ViewModel без зависимости от UI.
  • Кросс-платформенность в пределах XAML: применение в разных XAML-платформах с сохранением одинаковых принципов разработки.
Подробнее