Какой проект я должен создать для Xamarin.Form (Shared или .Net Standard)? - PullRequest
0 голосов
/ 08 мая 2018

Я должен создать приложение следующим образом.

1 - Приложение должно работать с Android и iOS.

2 - Разрешение должно поддерживать Mobile и Tabs

3 - Хранение данных в облаке. Итак, вызов Restful API будет для данные транзакций

4- Там может быть локальное хранилище для настроек конфигурации

5- Для некоторых функций, таких как implement UrbanAirship Notification, Facebook и т. Д.

, может быть встроенный код

Когда я создаю проект для Xamarin.Forms, я получаю 2 варианта создания приложения:

1- Shared, 2- .Net Standard.

Я пробовал с обоими. Один момент заключается в том, что я не нашел библиотеку, которая содержит имя типа .Shared или .Portable, которое я нашел в одном из моих старых проектов.

Вот сравнение. Пожалуйста, предложите мне, какой тип проекта я должен создать для моего следующего проекта.

enter image description here

Спасибо.

Ответы [ 3 ]

0 голосов
/ 08 мая 2018

В конце все сводится к вкусу. Основное отличие -

  • общие проекты включены в проекты вашей платформы, как если бы файлы исходного кода были частью самих проектов
  • .NET Стандартные проекты компилируются в собственную сборку

.NET Standard заменил переносимые библиотеки классов. Последние устарели и больше не должны использоваться. В любом случае для этого не было бы никаких причин, поскольку .NET Standard более удобен и поддерживает большее подмножество .NET (эффективно - в зависимости от профиля PCL, но тот, который совместим с Xamarin, был довольно ограниченным, например, было очень мало поддержки для классы от System.IO).

Есть плюсы и минусы как для .NET Standard, так и для общих проектов. В общих проектах вы можете использовать классы непосредственно в проектах вашей платформы (в любом случае, это может быть нежелательно, если вы пытаетесь разработать код SOLID), но вам придется использовать #ifdef s, чтобы использовать код, совместимый только с одна из платформ. В .NET Standard вам может понадобиться написать классы, которые дважды зависят от платформо-зависимого кода, и загрузить их через DependencyService или - что еще лучше - полноценный контейнер IoC, но в связи с этим они намного чище, а проблемы разделены гораздо лучше.

Во времена PCL были веские причины идти гибридным путем, например использовать System.IO.File из класса, который был напрямую скомпилирован в проектах вашей платформы, поскольку оба поддерживают его, но профиль PCL Xamarin этого не делает, но с .NET Standard это больше не требуется.

Я бы всегда пользовался библиотеками .NET Standard по указанным причинам.

0 голосов
/ 08 мая 2018

.NET Standard - будущее, и все плагины и библиотеки должны будут следовать и поддерживать его рано или поздно.

Как и в новом пререлизе форм Xamarin 3.0:

Мы сейчас строим с .NET Standard 2.0, используя магию многоцелевой, при этом поддерживая профили PCL и другие Версии .NET Standard вам могут понадобиться. Обратите внимание, насколько быстрее ваш проекты загружаются при использовании типов проектов .NET Standard!

Обновление до предварительной версии Xamarin.Forms 3.0

.NET Standard предоставляет множество функций из коробки. В настоящее время разработчики обновляют свои решения и плагины для поддержки этого стандарта.

0 голосов
/ 08 мая 2018

.Net Стандарт. это новый PCL. Используйте его как PCL.

...