Как настроить таргетинг на Windows 10 UWP и Windows Phone 8.1 в одном приложении?

18

Фон

С точки зрения разработчика, основным преимуществом Windows 10 является ее новая универсальная платформа Windows (UWP) .

* Где «универсальный» действительно означает «универсальный для всех устройств, работающих под управлением Windows 10», а не «универсальный для устройств, работающих под управлением не только Windows 10, но также Windows 8.1 и, возможно, Windows 7». Поэтому, если вы создаете приложение UWP, вы на самом деле просто создаете «приложение для Windows 10». Приложения UWP не будут работать даже на устройствах Windows 8.1 и Windows Phone 8.1, то есть они вообще не совместимы с предыдущими версиями.

По состоянию на третий квартал 2015 года Windows 10 доступна для ПК и устройств IoT . Пройдет еще как минимум несколько месяцев, прежде чем Windows 10 Mobile будет выпущен для широкой публики, но, вероятно, не более года. Это означает, что Windows Phone 8.1 будет еще какое-то время.

Вопрос

Я собираюсь приступить к разработке приложения для Windows Phone и планирую опубликовать его в течение следующего месяца или около того, поскольку это довольно простое приложение. Поскольку Windows 10 Mobile не появится в ближайшее время, не говоря уже о том, чтобы обновлять устройства по всему миру, я должен пока настроить Windows Phone 8.1. Однако, так как он не будет , что задолго до того, для Windows 10 мобильных роллов, я задаюсь вопросом , если бы целесообразно подготовить мое решение для развертывания в Windows 10 UWP , а также Windows Phone 8.1 (который также позволит мне продолжать поддерживать 8.1 столько, сколько мне нужно).

Я вижу, что я могу сгруппировать проект UWP и проект 8.1 в одном решении и совместно использовать исходные файлы и ресурсы через общий проект, как это было сделано с помощью универсального шаблона Windows 8.1 в Visual Studio. Я на правильном пути? Если да, есть ли какие-либо дополнительные рекомендации, которым я должен следовать, чтобы гарантировать, что все (включая XAML, так как в идеале я хотел бы иметь одинаковый или хотя бы одинаковый интерфейс на обеих платформах) действительно работает правильно на обеих платформах с учетом любых несоответствий?

В качестве альтернативы, я мог бы просто сейчас не беспокоиться о Windows 10 Mobile и начать с проекта 8.1, а затем перенести его на UWP , но мне все равно придется поддерживать обе версии моего приложения, поскольку я не планирую переход на 8.1 пользователи сразу. В этом случае мне все равно придется беспокоиться о паритете функциональности / XAML.

BoltClock
источник
3
В качестве обновления я продолжил работу и создал решение, состоящее из общего проекта, проекта UWP и проекта WP8.1. Я подробно
опишу
Есть ли какие-либо обновления, которыми вы хотите поделиться о своих открытиях на эту конкретную тему? Мне действительно интересно узнать, как этот подход работает для вас.
Нельсон Рейс
3
@ Нельсон Рейс: Я работаю над выпуском своего приложения для WP8.1 (что здорово!), Поэтому я еще не начал работу над приложением UWP. Но я скоро. Пока что все хорошо работает на стороне WP8.1.
BoltClock
Я просто заинтересован в обновлении. Как шла разработка WP8.1 и UWP? (У меня меньше 50 баллов, поэтому я не могу комментировать.) Причина этого в том, что я начинаю разрабатывать кроссплатформенное приложение и сейчас решаю, какие технологии использовать. ( programmers.stackexchange.com/questions/314850/… )
makons,
2
Привет, извините, это так долго. Идет разработка моего приложения UWP, поэтому у меня будет, чем поделиться в ближайшие пару недель.
BoltClock

Ответы:

2

Как вы сказали в одном из ваших комментариев, лучший способ сделать это - использовать общий проект и добавить к нему несколько заголовков. В вашем случае голова Windows Phone 8.1 и голова UWP. Эта позиция была также выражена в MVA Джерри Никсоном и Энди Уигли (я думаю, что это так, но с тех пор оно обновлялось), в разделе о переносе 8.1-приложений на uwp.

В вашем совместном проекте вам, возможно, придется использовать директивы условной компиляции, чтобы различать код, выполняемый в uwp и phone 8.1. (Как при создании универсальных приложений для Windows 8.1 / Phone 8.1)

Corcus
источник
1

В зависимости от особенностей Windows, в которой должно быть ваше приложение, вы можете использовать платформу, например Xamarin, которая позволит вам писать не только для Windows, но также для iOS и Android в одной кодовой базе.

Кайл СП
источник
1

Исходя из моего опыта: стоит поместить несколько помощников / логики / и т.д. в библиотеки PCL. Затем вы можете создать два проекта (для UWP и WP8 соответственно), которые могут использовать PCL с нулевыми изменениями. Кроме того, вы можете делиться сервисами, просматривать модели и модели (с очень небольшим количеством строк условной компиляции #if).

Единственной вещью, которой НЕ стоит делиться, является персонал, связанный с пользовательским интерфейсом, так как слишком много вещей нужно переключить / подготовить (поэтому гораздо проще подготовить отдельные макеты для каждого из UWP и WP8, даже если они практически одинаковы).

PS Я сделал это для UWP и WP8.1 Silverlight

Юрий Сккатула
источник