Ответ 1
Думать о номерах профилей сложно - я предпочитаю думать о платформах.
В идеале мне бы хотелось, чтобы мои проекты поддерживали:
- .Net 3.5 и выше
- SL3 и выше
- Телефон WP7.x и выше
- MonoDroid 1.6 и выше
- MonoTouch iOS6 и выше
- (Mac Desktop OSX Lion)
Основным проектом PCL, который я поддерживаю, является MvvmCross, для которого требуются средства Mvvm, такие как ICommand. Эти средства доступны только на платформах для .Net 4.5 и выше... что жесткий предел - я ничего не могу с этим поделать - так меняет мои потребности:
-
.Net 3.5 и выше.Net 4.5 -
SL3 и вышеSL4 и выше - Телефон WP7.x и выше
- MonoDroid 1.6 и выше
- MonoTouch iOS6 и выше
- (Mac Desktop OSX Lion)
С этим выбором на месте, это приводит меня к номеру профиля - 104 (не знаю, как платформа решила это... перестала спрашивать давно!)
Итак, я нацелил MvvmCross на профиль 104 - и он останется там, пока поддержка WP7.x по-прежнему необходима.
Этот выбор означает, что MvvmCross не может поддерживать такие функции, как async
/await
и CallerMemberName
- но это компромисс, который мы решили сделать - у нас есть пользователи, которые нужна WP7.
Однако некоторые люди спрашивают о ожидании/асинхронном...
Чтобы использовать эти новые функции, есть некоторые взломы BCL.Async Nuget, чтобы заставить их работать в профиле 104... или эти пользователи могут настроить таргетинг своих приложений на новый профиль (тот, который не поддерживает WP7.x и SL4 ) - это заставляет их создавать свои приложения в профиле 78, но добавлять ссылки на мои сборки профиля 104.
Ни один из этих наборов решений не работает очень хорошо с близнецами Хамарина в настоящее время - например, вы сталкиваетесь с такими проблемами, как недостающая сборка System.Runtime.dll. Однако я ожидаю, что, когда Xamarin официально поддержит PCL (и после некоторого альфа/бета-тестирования), эти проблемы будут решены. Эта официальная поддержка ожидается очень скоро - вот почему я не беспокоюсь о том, чтобы тратить слишком много времени на размышления об этих проблемах...
В среднесрочной перспективе я ожидаю, что MvvmCross откажется от поддержки WP7.x и SL4. Когда это произойдет, мы также можем переместить основные библиотеки в профиль 78.
Единственная другая большая платформа, которую я знаю, которая начала поддержку PCL, - это ReactiveUI. Я полагаю, что эта платформа должна использовать профиль 78, потому что версия PCL от Reactive от Microsoft нацелена на 78.