[Перевод] Какие изменения ждут разработчиков после выхода новой Windows 10X
Изображение: Microsoft
Запуск Windows 10X — важный шаг для Microsoft, он знаменует собой рождение «нового поколения Windows». Об этом на конференции Ignite 2021 много говорил Пэнос Панай, директор по продуктам в Microsoft.
Не секрет, что в этом году Microsoft запускает новую операционную систему. Представители корпорации анонсировали Windows 10X ещё в 2019 году. Система построена на основе Windows Core OS. Это современная модульная программная платформа (именно она управляет гарнитурой дополненной реальности HoloLens 2). Изначально разработчики Windows 10X ориентировались на устройства с двумя экранами (например, складной планшет Surface Neo). Однако впоследствии они добавили оптимизацию графического интерфейса и для устройств с одним экраном.
По мнению авторитетного журналиста Зака Боудена, Windows 10X — это ответ на запуск Google Chrome OS (легковесная ОС для сравнительно дешёвых устройств, ориентированная на облачные и веб-приложения). Точно известно, что новая ОС от Microsoft не будет обладать полным функционалом десктопной Windows 10, которую многие используют для работы или гейминга. Поэтому 10X вряд ли когда-нибудь заменит 10-ку. А дизайн Windows 10X претерпел ряд изменений и теперь больше напоминает Windows 8 ARM (Windows RT).
Новое поколение
По сравнению с предыдущими версиями ОС в архитектуре Windows 10X много изменений. Не всё уже существующее программное обеспечение, написанное для более ранних версий Windows, можно будет установить и запустить на ней. Изначально разработчики планировали реализовать нативную поддержку классических Win32-приложений наравне с UWP-приложениями. Но в процессе планы поменялись и задачи усложнились.
В первых релизах не будет нативной поддержки Win32-приложений. Разработчики отложили эту задачу в долгий ящик. Чтобы разрабатывать UWP-приложения под Windows 10X, нужно обращаться к WinRT API. Другой вариант — разработка прогрессивных веб-приложений (Progressive Web App, PWA).
В итоге разработчики пришли к тому, что система должна работать примерно как Windows 10 в S-режиме. Только её GUI должен быть более современным и адаптивным. Windows 10X — облачно-ориентированная модульная операционная система с повышенной скоростью запуска и обновления. Набор сервисов Microsoft 365 (например, OneDrive для хранения файлов) интегрирован непосредственно в ОС.
Первые устройства с Windows 10X на борту нацелены на образовательный и бизнес-сегмент, где веб-приложения, в отличие от нативных UWP, наиболее востребованы. Но даже при таком раскладе многие пользователи захотят скачивать UWP-приложения из Windows Store, устанавливать их и запускать на новой операционной системе.
Современная разработка под Windows с Project Reunion
Но каким же образом перенести старые приложения на новую ОС? Под Windows написано множество приложений разного типа, и UWP — только один из них. А если приложение разработано с использованием Win32 API? Стоит отметить, что таких приложений по-прежнему немало, и они бывают востребованы.
Изображение: Microsoft
В Microsoft достаточно долго думали и наконец придумали единую платформу для разработки под Windows — Project Reunion. Разработчики реализовали в ней специальную технологию, позволяющую объединить Win32 API и UWP API. Единая платформа позволяет конвертировать уже существующие классические Win32-приложения в UWP-приложения с минимальными усилиями.
С появлением платформы разработки Project Reunion появилась возможность отделить API старых десктопных приложений и UWP-приложений от кода самой ОС, объединив их в единый Reunion SDK. Это должно облегчить жизнь разработчикам.
Безусловно, Project Reunion не сможет полностью заменить Windows SDK. Проекту и без того предстоит долгий путь развития: портирование API, создание подобия полифиллов, функций-обёрток над комбинациями вызовов новых и старых API для достижения более высокого уровня абстракции.
Project Reunion не подразумевает формирования очередного монолитного SDK: он будет работать по принципу пакетов NuGet, которые могут обновляться без обновления всего SDK. С одной стороны, это позволит заменять полифилы нативными вызовами, с другой стороны, добавлять в SDK новые порции API по мере их готовности. На сегодняшний день можно посмотреть последнюю сборку (0.5), и составить об этом своё представление. Но пока это лишь небольшой набор API и UI-контролов, но уже сейчас можно собрать и упаковать своё приложение в MSIX-установщик.
Одним из главных компонентов Project Reunion стала библиотека Windows-контролов нового поколения WinUI 3.0. Её можно использовать для разработки и Win32-приложений, и UWP-приложений. Библиотека соответствует спецификациям нового дизайна для Windows 10X, а контролы способны адаптироваться и менять свои размеры в зависимости от устройства.
Объединение API для Win32 и UWP должно избавить разработчиков от многих проблем и рисков, связанных с портированием приложений (например, срыв всех возможных сроков из-за непредсказуемого поведения приложения, переписанного под новую платформу).
После выхода .NET 5 Microsoft ещё больше уходит от монолитного .NET Framework в сторону модульного легковесного .NET Core. Теперь .NET 5 заслуживает особого внимания, если вы хотите разрабатывать под Windows 10X. Более того, это даже выгодно, так как приложения, разработанные под Windows 10X запустятся и на других версиях Windows 10. По крайней мере, это обещают в Microsoft.
Напомним, что в Windows Store можно публиковать приложения для всех версий Windows 10. И, как всегда, поможет в этом Visual Studio, которая позволяет собирать, тестировать и паковать приложения под платформы Intel и ARM.
Использование виртуальных рабочих столов в облаке
Не все приложения смогут использовать преимущества Project Reunion или Windows Store. В ближайшие год-два они вряд ли дождуться появления тех API, которые нужны, на самом деле, уже сейчас. Корпоративным клиентам и образовательным учреждениям в этом плане будет легче. Они смогут настроить в облаке виртуальные рабочие столы Windows, чтобы их приложения стали доступны для пользователей. Для работы с GUI на устройствах с Windows 10X можно использовать UWP Remote Desktop. Код при этом будет крутиться на виртуальной машине Microsoft Azure.
Сейчас идёт активная работа над облачным сервисом Cloud PC, который обещает стать усовершенствованной версией Windows Virtual Desktop (по крайней мере, с точки зрения юзабилити). Новый сервис должен стать частью Microsoft 365 и предоставить учебным заведениям и бизнесу простой тариф с фиксированной оплатой за каждого пользователя размещённых в облаке приложений и рабочих столов.
Взглянув на бета-версии, гуляющие по сети, можно предположить, что пользовательский интерфейс сервиса спроектирован в стиле Windows 10. Вероятно, Microsoft запустит Cloud PC одновременно с одной из следующих версий Windows 10X. Скорее всего, тогда мы и посмотрим на него в деле: например, увидим как добавлять свои собственные приложения в образ Cloud PC.
Что делать сейчас
Уже ясно, что и без нативной поддержки классических Win32-приложений будет много интересных причин для перехода на Windows 10X. Максимально эффективно на этой системе будут работать нативные приложения UWP. Возможность запускать (плюс-минус) один и тот же код на ещё большем количестве разных устройств — это очень серьёзная причина отказаться от legacy-кода и старых API в пользу современного и (по замыслу разработчиков проекта) более секурного кода.
Пока нельзя предсказать, куда в итоге выведёт орбитальная кривая развития Windows 10X и её спутников, но нам явно стоит включить в свои ближайшие планы знакомство с ней. Миграцию можно начинать уже после выхода первого релиза Project Reunion и появления обратной совместимости с Windows 10 1809. Если же какие-то из ваших пользователей откажутся от этого, то их проекты можно перекинуть на Cloud PC.
Наиболее конъюнктурный вариант — пересаживаться сразу на UWP и .NET 5. Именно в эту сторону Microsoft планирует сдвинуть свой сегмент рынка. По мере появления новых API в Project Reunion, привлекательность портирования будет расти. Конечно, на миграцию, дописывание и переписывание может уйти много времени. Но, если вы хотите быть впереди планеты всей, то, начав в ближайшее время (пока ОС не получит широкого распространения), сможете стать одним из первопроходцев.
Наша компания предлагает серверы на Windows от 23 рублей в сутки!
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!