Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Mvvmcross


Mvvmcross


MVVMcross-это мощная, самоуверенная структура MVVM (модель-ViewModel), разработанная для развития кроссплатформенных приложений в экосистеме .NET. Он поддерживает различные платформы, включая Xamarin.ios, Xamarin.android, Xamarin.forms, Universal Windows Platform (UWP), Foundation Windows Presentation (WPF) и многое другое [1] [3] [4]. Вот обзор его ключевых функций и того, как они работают:

Ключевые особенности MVVMcross

- Паттерн архитектуры MVVM: MVVMcross реализует шаблон MVVM, который разделяет логику приложения на три взаимосвязанных компонента: модель, просмотр и ViewModel [3].
-Навигационная система: она обеспечивает надежную навигационную систему, позволяющую легко управлять переходами ViewModel-ViewModel [2] [4].
- Привязка данных: MVVMcross включает настраиваемый двигатель для привязки, позволяющий разработчикам создавать пользовательские привязки для своих представлений [4].
- Инверсия контроля (МОК) и инъекции зависимостей: структура поддерживает МОК посредством инъекции зависимостей, облегчая свободную связь и тестируемость [3] [4].
-Поддержка для конкретной платформы: она предлагает обширную поддержку функций и функциональности, конкретных для платформы [3].
- Плагины и расширения: MVVMcross включает в себя плагин, которая позволяет разработчикам легко интегрировать дополнительные функции, такие как GPS, локализация и многое другое [4].

Как работает mvvmcross

Core и проекты пользовательского интерфейса

Приложения MVVMcross обычно состоят из двух основных частей:

- Основной проект: он содержит бизнес -логику, ViewModels, услуги и модели. Обычно он реализуется как стандартная библиотека .NET для обеспечения кроссплатформенной совместимости [2].
- Проекты пользовательского интерфейса: каждая платформа (например, iOS, Android) имеет свой собственный проект пользовательского интерфейса, который включает в себя код, специфичный для платформы, и представления, которые взаимодействуют с основным проектом [2].

Ключевые объекты и инициализация

- Класс приложений: Расположенный в основном проекте, этот класс отвечает за регистрацию пользовательских объектов с контейнером IOC и инициализации логики приложения [2].
- Объект AppStart: необязательно, этот объект определяет, какой ViewModel будет сначала представить во время запуска приложения [2].
- Настройка класса: Найден в каждом проекте Platform, этот класс инициализирует сервисы MVVMcross и Registers Spectific Platform [2].

Процесс инициализации

1. Запуск платформы: начинается процесс запуска нативной платформы.
2. Настройка mvvmcross: класс `setup` инициализирует структуру в двух шагах:` initializeprimary` (основной поток) и `initizeisecondary` (фоновый поток) [2].
3. Инициализация приложения: класс `app` инициализируется, и он предоставляет объект` appstart` для управления первым шагом навигации [2].

Начало работы с mvvmcross

Чтобы запустить новый проект MVVMcross, разработчики могут использовать такие шаблоны, как MVXScaffolding. Фтруктура доступна через пакеты Nuget, которые должны быть установлены как в основных, так и в проектах, специфичных для платформы [3] [4]. Для получения подробных руководств и документации официальный веб -сайт MVVMcross и репозиторий GitHub являются отличными ресурсами [1] [4].

Цитаты:
[1] https://www.mvvmcross.com
[2] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[3] https://www.mvvmcross.com/documentation/getting-started/getting-started
[4] https://github.com/mvvmcross/mvvmcross
[5] https://www.mvvmcross.com/blog/
[6] https://github.com/mvvmcross
[7] https://x.com/mvvmcross?lang=en
[8] https://www.nuget.org/profiles/mvvmcross