Контейнер Xamarin Forms IoC + служба навигации

  1. Есть ли в Xamarin.Forms встроенная служба навигации IoC? Я имею в виду что-то вроде Prism, где можно было прописать свои маршруты.
  2. Если да - где документация?
  3. Если нет — будет ли в ближайшем будущем Xamarin.Forms иметь встроенную службу навигации?
  4. Кроме того, если нет, то какая прошивка MVVM лучше всего подходит для Xamarin.Android, Xamarin.iOS, Xamarin.WinXYZ и Xamarin.Forms? И почему?

Мне кажется, что дело сводится к битве между Prism и FreshMVVM — это подводит меня к моим самым важным вопросам:

  1. Какой из этих двух работает лучше? (Кто из них быстрее?)
  2. Какой из них, скорее всего, проложит путь фреймворкам MVVM с точки зрения мобильной разработки в будущем?

person PaxForce    schedule 25.07.2017    source источник
comment
Существует, и вы можете найти документацию прямо здесь, вместе со всей другой документацией.   -  person Gerald Versluis    schedule 25.07.2017
comment
Тогда да, спросите об этом. А что не так с "чувак" и "где, черт возьми"? Неужели так сложно задать вопрос, как нормальный человек? Как вы думаете, этот способ общения принесет вам большую пользу? Пожалуйста, прочитайте как задать правильный вопрос.   -  person Gerald Versluis    schedule 25.07.2017
comment
Вы были правы - я удалил фразу "где черт возьми" из своего вопроса. Однако я поддерживаю слово чувак в своем комментарии :)   -  person PaxForce    schedule 25.07.2017


Ответы (2)


No Xamarin Forms не предлагает навигацию, как Prism. У них была цель сделать встроенную навигацию похожей на Prism, но с тех пор она исчезла из их дорожной карты. Также нет прямой концепции IoC, встроенной непосредственно в Xamarin Forms.

Если вы разрабатываете собственный пользовательский интерфейс, то Prism, вероятно, не для вас, поскольку он специально создан для Xamarin Forms. В этом случае я мог бы сказать, что вам следует взглянуть на MvvmCross. Он прошел боевые испытания во многих классических приложениях Xamarin.

Однако, если вы разрабатываете с помощью Xamarin Forms, лучше всего использовать Prism. Мое мнение может быть предвзятым, но это также общественное мнение многих членов команды Xamarin. Помните, что изначально Prism была запущена командой Microsoft Patterns and Practices. Хотя Prism для Xamarin Forms был запущен после этого, основа того, что такое Prism и как она работает, помогает разработчикам развиваться с использованием правильных шаблонов MVVM.

person Dan Siegel    schedule 26.07.2017
comment
Привет Дэн, спасибо за ваш ответ. Я склоняюсь к тому, чтобы принять это, но сначала я был бы признателен, если бы вы могли немного уточнить. Почему MvvmCross лучше при нативном использовании? Почему Prism лучше при работе с формами? - person PaxForce; 07.08.2017
comment
Фактически, MvvmCross был реализован для Xamarin Native (в отличие от Prism). Когда дело доходит до форм, MvvmCross, вероятно, будет моим вторым выбором после Prism. Что, в конечном счете, дает Prism самое большое преимущество, помимо того, что мне просто нравится, так это то, что Prism всегда был разработан для работы с представлениями XAML. Другое дело — навигация. Prism NavigationService — это то, что действительно делает работу с Xamarin Forms смехотворно простой, а IMO превосходит любой другой фреймворк. - person Dan Siegel; 07.08.2017
comment
Последний вопрос. Если я работаю над проектом действительно UUUGE Xamarin.Forms и знаю, что мне придется возиться с проектами Android и iOS (не только PCL. Не лучше ли использовать MVVMCross вместо Prism? ? - person PaxForce; 08.08.2017
comment
Я решил принять ваш ответ и пока использовать Prism. Ответ Джима Беннета на XamarinForums подтверждает то, что вы сказали/написали: forums.xamarin.com/discussion/91020/ - person PaxForce; 08.08.2017

Вопрос 1. Да, в Xamarin.Forms есть встроенная служба навигации.

Вопрос 2: навигация по Xamarin.Forms

Изменить 2 для вопроса 1: нет, в платформе Xamarin.Forms нет встроенной навигации IoC.

Но если вам нужна навигация IoC, возможно, это хороший вариант: Xamarin Forms — View Моделируйте первую навигацию, избегая больших фреймворков, таких как Prism, MVVMLight или MVVMCross. Если нет, то эта структура хорошо работает для этой цели.

person soydachi    schedule 25.07.2017