Данный пост является продолжением первой части.
Сходство данных платформ
API этих двух платформ все больше и больше становятся похожими на друг на друга.
Эта картинка явно показывает, что WinRT занимает еще более больший набор API-интерфейсов для Windows Phone 8.1 приложений, чем это было в Windows Phone 8.0 и, на высоком уровне, я думаю, вы могли бы рассматривать эту проблему как «тот же самый набор WinRT API, что и для разработчика Windows 8.1», хотя это и не совсем верно, когда дело доходит до деталей.
Я нарисовал пунктирные линии вокруг Win32, Silverlight, NET API, в приведенной выше диаграмме, потому что не каждый разработчик 8.1 приложений назвал бы это API, все зависит от того, что приложение делает, но каждый разработчик 8.1 приложений будет использовать WinRT API, так или иначе.
Я думаю, что справедливо сопоставить данные платформы по приведенной ниже схеме;
Теперь XAML на Windows и Phone одно и тоже. Это означает, что;
- Сопоставления пространства имен CLR будут работать таким же образом.
- Встроенные типы, как х:String и т.п. будут работать так же.
- Возможности привязки данных и синтаксис будет работать таким же образом и т.д.
Важно также отметить, что подмножество. NET, которое представлено как в Windows так и Phone 8.1 — это одно и то же подмножество .NET, поэтому общий код может быть расположен в общем слое.
Windows Phone 8.1 обратно совместимая ОС — приложения и игры из предыдущих версий операционной системы будет продолжать работать и разработчики, имеющие существующую Silverlight приложение не должны пересоздавать их для Windows Phone Winrt, для этого существует возможность ретаргерить его до Windows Phone 8.1 Siverlight. Последняя возможность предоставляет следующий рисунок
Это означает, что Silverlight разработчик продолжает работать с «Silverlight XAML» и продолжает работать с «Silverlight. NET”, но также получает доступ к новым API WinRT, которые были расширены для Windows Phone 8.1.
Схожесть — это не означает, что одно приложение можно будет запускать везде
Разработчики, которые разрабатывают для Windows/Phone 8.1 на новой платформе будут по-прежнему писать 2 приложения и представлять их в магазине отдельными приложениями.
Тем не менее, возможность для шаринга кода между этими двумя приложениями становится значительно больше с Windows Phone 8.1, чем это было до настоящего времени. С точки зрения разработчика XAML:
В данный момент можно получать два приложения с различным интерфейсом, которые используют общий .NET код и API-интерфейсы платформы Win32.
Это означает, что традиционная «проблема» (невозможность разработки полноценной портативной библиотеки классов) уходит — сейчас код, встроенный в PCL, может использовать WinRT для доступа к файловой системе, камере, сети и так далее, т.к. API WinRT доступно теперь на обоих платформах Windows/Phone.
Общий XAML — что это значит?
Теперь можно разрабатывать на XAML сразу для обеих платформ — Windows/Phone 8.1. Как и следовало ожидать, есть некоторые тонкости. Мы всегда должны помнить, как выглядят контролы на этих двух платформах:
Распределяются они на 4-е категории:
- Контрол, такой как Button, одинаковые элементы управления на обеих платформах и делают то же самое.
- Контрол, такой как Hub (Windows 8.1), которые одинаковы в управлении на обеих платформах, но, скорее всего, будут иметь различный контент внутри себя на каждой платформе.
- Контрол, такой как DatePicker, у которых одинаковое управление на обеих платформах, но работают по-другому.
- Контрол, такой как Pivot, которые существуют только на одной платформе — в случае Pivot это только Windows Phone.
В любом случае между ними есть некоторые различия, но мелочные и вы быстро к ним приспособитесь.
Общий WinRT — что это значит?
Здесь намного больше общего, чем в том же XAML.
Очень много из API будет одинаковое и это больше повлияет написание кода. Разработчики под Windows Phone заметят на порядок больше изменений, чем, например, разработчики Windows 8.1. Например:
разработчик собирается использовать WinRT API, для данного вида функциональности, тогда как в Phone 8.0 использовались Silverlight.NET API-интерфейсы.
Есть еще несколько последствий — использование API-интерфейсов WinRT для уведомлений, например, Windows Phone 8.1 использует Windows Notification Service.
Описанная выше картина свидетельствует, что есть некоторые API-интерфейсы, которые все еще привязаны к определенной платформе.
В итоге.
В ОС Windows/Phone 8.1 платформы гораздо более сильно унифицированы, чем ранее. Windows Phone 8.1 поддерживает ряд различных способов построения 8.1 приложений:
- XAML / C + +
- XAML / .NET
- Silverlight 8.1
И это не считая вариантов вокруг разработки игр.
Схожесть API, которое значительно унифицировано, должна значительно упростить жизнь разработчикам XAML.
Ссылка на источник: Windows/Phone 8.1 – Building for Both, Part 2
[…] статья является продолжением из предыдущей. Перед прочтением данной рекомендую пересмотреть […]