Xamarin Forms: можно ли использовать Prism и ReactiveUI в одном проекте?Если так, это хорошая идея? - PullRequest
1 голос
/ 13 мая 2019

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

Идея заключается в создании кроссплатформенного приложения при тестировании некоторых принципов кодирования:

Я планирую использовать следующие компоненты:

  • Prism.Unity.Forms: кажется, обеспечивает структуру приложения, ioc, навигацию, кажется широко используемым и выполняется высококлассными людьми
  • ReactiveUI, ReactiveUI.XamForms, ReactiveUI.Fody: WhenAnyValue, ObservableAsPropertyAttribute, ReactiveAttribute ( учебник ), без их использования выглядит для меня огромной упущенной возможностью

ТекущийМоя Visual Studio имеет следующую структуру:

  • Csproj
    • ViewModels
      • CreateExercisePageViewModel
      • HomePageViewModel
    • Просмотров
      • CreateExercisePage
      • HomePage

Мне удалось выполнить следующее:

  • Установить домашнюю страницув качестве начальной страницы, содержащейся в NavigationPage, с использованием навигационных функций Prism.
  • Объявление именованной кнопки в XAML, установка ее свойства Command с помощью привязки OneWay, созданной в коде позади, с использованием функций ReactiveUI (как показано в учебном пособии, с использованием метода WhenActivation)
  • Перейдите квторая страница (CreateExercisePage), использующая навигацию Prism

Одна проблема заключается в том, что в Интернете существует несколько статей, в которых проводится сравнение между Prism и ReactiveUI ( google Prism против ReactiveUI ).

Так что вопрос: Я что-то не так делаю, используя оба одновременно?

У меня пока нет проблем, но столкнусь ли я с одним?И даже если я этого не сделаю, имеет ли смысл использовать их оба одновременно?

1 Ответ

4 голосов
/ 13 мая 2019

Итак, вопрос в том, что я делаю что-то не так, используя оба одновременно?

Нет проблем при использовании Prism и ReactiveUI вместе.ReacitveUI - это набор методов расширения, а не самоуверенный фреймворк.

У меня пока нет проблем, но столкнусь ли я с одним?

Вы можете столкнуться спроблема с событиями изменения свойств, происходящими между двумя средами (вероятно, меньше в Prism, чем в других средах Mvvm), но это должно быть легко решаемо.

И даже если я этого не сделаю, делает этоимеет смысл использовать их оба одновременно?

Я обычно говорю, что при выборе Mvvm-фреймворка вы выбираете тот, который вы хотите использовать в своем наборе функций.Если Prism обладает большинством функций, и вы просто хотите оживить его с помощью какого-то реактивного программирования, это хороший способ.

...