Подтвердить что ты не робот

Есть ли какие-либо плюсы для использования профиля PCL 158 над 78 для Xamarin и MvvmCross?

Я работаю над кросс-платформенным приложением Xamarin для таргетинга на iOS и Android, используя превосходную инфраструктуру MvvmCross от Stuart Lodge.

Недавно Microsoft выпустила новые версии своих пакетов BCL для переносных классов библиотеки, а Стюарт описывает, как настроить проект с помощью http://slodge.blogspot.com.au/2013/11/quick-run-through-using-pcls-in.html.

При использовании профиля PCL 158 необходимо добавить пакет асинхронного доступа BCL и выполнить некоторую настройку, чтобы проект iOS работал.

При использовании профиля PCL 78 это, похоже, работает автоматически, без необходимости в пакетах BCL.

Зачем использовать профиль 158 над профилем 78?

4b9b3361

Ответ 1

Profile158 поддерживает больше платформ. В частности, он может работать на Silverlight 5, где Profile78 не может. Кроме того, Profile158 использует "старые" API-интерфейсы отражения, поэтому, если у вас есть существующий код, который использует отражение, вероятно, будет проще переносить на Profile158.

При прочих равных условиях я бы рекомендовал использовать Profile78, если у вас нет причин. Он должен работать на Xamarin, если не сообщать об этом как об ошибке.:)

Ответ 2

В дополнение к комментарию Даниэля Плейста в профиле 78 отсутствует несколько типов

  • System.Threading.ThreadPool
  • System.Threading.Timer

Оба варианта могут быть обходными, создав плагин с конкретной реализацией для каждой платформы или ссылаясь на более раннюю структуру, которая имеет эти и обертывает эти типы, см. timer-in-portable-library

В дополнение к этому, microsoft выпустила мощный набор: Immutable-Collection,
который поддерживает PCL, но не поддерживается в silverlight и поэтому не поддерживается в профиле 158, но поддерживается в профиле 78.