Project Centennial: мост из Win32 и .NET к Windows Store и UWP


Пару конференций назад мы объявили о том, что мы планируем строить разнообразные мосты для упрощения задач разработчиков по переносу в Windows Store приложения для разных платформ, включая Windows. У каждого из объявленных тогда мостов сложилась своя судьба, а один из самых ожидаемых — Project Centennial или Desktop Bridge — не так давно стал доступен всем разработчикам, упрощая перенос Win32/.NET приложений в Windows Store, о котором и пойдёт речь внутри.

Если вы хотите пообщаться на эту тему со мной лично, приходите 20 марта на практическое мероприятие.

a34be1ab50764d29b8df7c1dc90542c1.jpg

Простой случай: приложение для стора из Win32 приложения за 5 минут


Самый простой способ перевода вашего Win32 или .NET приложения в пакет для установки из Windows Store — это Desktop App Converter (DAC), который можно скачать собственно из Windows Store. Он представляет собой некоторый набор библиотек и скрипт PowerShell, который позволяет сконвертировать неинтерактивную инсталляцию вашего приложения в пакет для Windows Store. Для того, чтобы решить задачу сбора данных того, что происходит при установке используется технология Windows Containers, соответственно, это определяет требования к машине на которой может быть выполнена конвертация, и, необходимость скачивания референсных образов операционных систем. Версия образа, которую вы скачиваете должна совпадать с версией вашей операционной системы на которой выполняется процедура конвертации. Затем необходимо проинициализировать DAC с соответствующим образом, и вы готовы к конвертации.

Если ваше приложение просто приложение в себе, как, например, многие из классических игр, то этого вполне достаточно, чтобы подготовить ваше приложение для публикации в Windows Store. Однако, Desktop Bridge поддерживает не все сценарии и взаимодействия, которые доступны обычному настольному приложению, и если ваше приложение делает что-то из того, что не поддерживается в данный момент, придётся приложить немного больше усилий.

Хороший пример приложения, которое я сам использую для демонстрации — 7-zip: несколько минут и из установщика приложения для Windows я получаю appx пакет для развёртывания через Windows Store.

Обратная история: UWP приложение с Win32 возможностями


Догадливый читатель, наверное, уже задаёт себе вопрос, а что если… Да! Технически, никто не мешает расширить существующие UWP приложения доступными Win32 возможностями используя технологию Desktop Bridge. Сценариев множество, особенно для разнообразных встраиваемых решений или утилит.

Что надо знать тому, кто решил поступить именно так? Ваш аккаунт в Windows Store должен иметь разрешения для публикации приложений в режиме Full Trust, а именно в нём работают Desktop Bridge приложения.

Сложная история: Win32 приложение с несовместимыми возможностями


В этом случае придётся убирать все несовместимости и заменять их на аналогичный функционал UWP API. Зачем это может потребоваться?

Как самый простой вариант, сразу же приходящий в голову, представьте, что ваше приложение очень популярное и бесплатное, его много скачивают, поэтому вам нужно всё время думать о том, где бы его разместить, чтобы все могли его быстро скачать. Конвертируем его в Windows Store приложение — магия — теперь везде, где есть Windows Store, за доступность вашего приложения можно не беспокоиться.

Второй, корпоративный вариант, Windows Store приложение может распространяться через внутренний магазин приложений внутри организации. Если оно нацелено на крупные компании, возможно, такой удобный способ распространения с самообслуживанием будет востребован.

Это только два самых простых сценария, зачем вам может потребоваться сделать из вашего Win32/.NET приложение Windows Store. Давайте обсудим ваши предложения по сценариям в комментариях. :)

Продолжение истории: сконвертировал, что дальше?


На самом деле, история здесь только начинается! После конвертации ваше приложение получает UWP ID и вы может вызывать все доступные на платформе UWP API, например, легко можно добавить работу с живыми плитками, оповещениями и так далее.

Например, если вам нужно приложение, которое touch friendly, можно запустить Win32 приложение как App Service, написать новый интерфейс на XAML и общаться для выполнения непосредственных задач приложения с приложением App Service, не отображая его классический интерфейс пользователю.

Если у вас появились вопросы и вы хотите задать их мне лично, хочу напомнить, что 20 марта я буду одним из спикеров на Desktop Bridge: из Win32 и .Net в Windows Store. Участие бесплатное, но требуется регистрация.

Короткое видео-введение о том, что я так долго описывал в статье:

Комментарии (0)

© Habrahabr.ru