Это старый вопрос, но я хотел бы поделиться своими 2 центами.
Я использую как MvvmCross, так и ReactiveUI, в одном кросс-платформенном решении для iOS, Android и Windows.
Я бы сказал, что мое решение основано на MvvmCross, потому что класс App, как приложение запускается, и Навигация в ViewModel следуют по пути MvvmCross. Но я также использовать несколько ключевых особенностей ReactiveUI в:
ReactiveCommand
мне очень нравится его автоматическое отключение функции (CanExecute, IsExecuting), когда он привязан к кнопке.
ReactiveList
и он выводится список
Это класс, который я хотел бы рекомендовать кому-либо программирования MVVM, он решил почти все мои болевые точки в ObservalbeCollection. Использование только CreateDerivedCollection
может быть всей причиной того, что я включаю ReactiveUI в свой проект.
MessageBus
Я боюсь, что я испортил его авто маршалинге до УИ основной поток. Мне не нужно беспокоиться, если я в пуле задач или потоке пользовательского интерфейса, я просто вызываю SendMessage. (Это очень отличается от реализации MvvmLight и это главная причина, почему я оставил MvvmLight 2 года назад, извините)
При использовании функции выше, я не волнует, если они реактивная или нет, я просто используйте их, потому что они соответствуют моим потребностям очень хорошо. (Фактически, ReactiveCommand
, ReactiveList
и MessageBus
все являются реактивными)
Могу ли я использовать ReactiveUI? Я также задал этот вопрос самому себе. Я думаю, что я пропущу что-то от MvvmCross:
MvvmCross Плагины.
Я использую несколько плагинов из MvvmCross, и я действительно хочу, чтобы каждый плагин был совместим с MvvmCross и ReactiveUI. (Может быть, они уже есть, просто я не проверял, потому что я уже использую MvvmCross для обработки плагин.)
учебников MvvmCross в
Есть много учебника по MvvmCross и Youtube видео. Я просто не могу представить, как много усилий накладывается на такие вещи.
Я изучаю Xamarin by MvvmCross, если быть честным.
интеграции MvvmCross с Xamarin
Иногда я не могу сказать, если класс обеспечивается MvvmCross или Xamarin, если не для префикса Mvx
. Я проверил свой проект, почти все базовые классы моего кода пользовательского интерфейса - MvxSomething (я не использую Xamarin.Forms). Я не знаю, что именно обеспечивается версией Mvx базовых классов, я просто использую их, и они работают.
Я все еще изучаю обе эти рамки, но я хочу, чтобы они были объединены в один прекрасный день.