Desktop Bridge
Desktop Bridge (также известный как Project Centennial) — это технология, разработанная компанией Microsoft, предназначенная для конвертации классических настольных приложений (Win32, .NET Framework, MFC, WPF) в формат универсальных приложений Windows (UWP) с возможностью их публикации в Microsoft Store. Технология была впервые представлена на конференции Build 2016 и выпущена в составе Windows 10 Anniversary Update (версия 1607). Desktop Bridge позволяет разработчикам адаптировать существующие приложения для работы в среде UWP, не требуя полного переписывания кода, и предоставляет доступ к современным API Windows, таким как Live Tiles, Push-уведомления и интеграция с Cortana.
История
Предпосылки создания
До появления Desktop Bridge в экосистеме Windows существовало два основных типа приложений: классические (Win32) и универсальные (UWP). Win32-приложения, созданные с использованием API Windows 95 и более поздних версий, обладали высокой производительностью и доступом ко всем возможностям системы, но их установка и обновление требовали ручного управления. UWP-приложения, введённые в Windows 8, обеспечивали песочницу (изоляцию), автоматическое обновление через Microsoft Store и поддержку сенсорного ввода, однако имели ограниченный доступ к системным ресурсам и не могли запускать многие legacy-коды.
Разработка и анонс
В 2015 году Microsoft начала внутренний проект под кодовым названием «Centennial», направленный на устранение разрыва между двумя платформами. На конференции Build 2016 компания официально анонсировала Desktop Bridge как инструмент, позволяющий разработчикам упаковывать существующие Win32-приложения в UWP-пакеты (APPX). Первая публичная бета-версия была выпущена в августе 2016 года вместе с Windows 10 Anniversary Update.
Развитие
В последующих обновлениях Windows 10 (версии 1703, 1709, 1803) Microsoft расширила возможности Desktop Bridge: добавила поддержку .NET Core, улучшила совместимость с драйверами, ввела возможность запуска приложений в контейнере (AppContainer) и интеграцию с Windows Defender Application Guard. В 2018 году технология была переименована в «Windows Desktop Bridge» и стала частью платформы Windows 10 SDK. С выходом Windows 11 в 2021 году Desktop Bridge сохранила совместимость, но Microsoft начала продвигать альтернативный подход — Project Reunion (позже переименованный в Windows App SDK), который объединяет Win32 и UWP в единую платформу.
Архитектура и принцип работы
Компоненты
Desktop Bridge состоит из трёх ключевых элементов:
- Упаковщик (Packager): инструмент, который берёт существующее Win32-приложение (EXE, DLL, ресурсы) и создаёт UWP-пакет (APPX или MSIX). Упаковщик анализирует зависимости приложения, включая библиотеки, реестр и файлы конфигурации, и включает их в пакет.
- Мост (Bridge): среда выполнения, которая эмулирует Win32-окружение внутри UWP-контейнера. Мост обеспечивает совместимость с API Win32, такими как CreateWindow, GetMessage, и файловой системой, но перенаправляет вызовы к реестру и изолированному хранилищу.
- Контейнер (AppContainer): изолированная среда, в которой выполняется приложение. Контейнер ограничивает доступ к системным ресурсам (например, к другим процессам, реестру, файловой системе) в соответствии с политиками UWP.
Процесс конвертации
- Анализ: разработчик запускает утилиту Desktop App Converter (DAC) или использует Visual Studio. Утилита сканирует приложение на предмет использования Win32-API, COM-объектов и служб Windows.
- Упаковка: создаётся манифест (Package.appxmanifest), который описывает приложение, его возможности (capabilities) и зависимости. Затем формируется APPX-файл, содержащий все исполняемые файлы, библиотеки и ресурсы.
- Тестирование: приложение запускается в изолированной среде для проверки совместимости. Разработчик может вручную добавлять отсутствующие зависимости (например, DLL) или изменять манифест.
- Публикация: готовый пакет загружается в Microsoft Store или распространяется через sideloading (установка без магазина).
Ограничения
- Доступ к API: некоторые Win32-API, особенно связанные с прямым доступом к оборудованию (например, драйверы, DirectX 9), не поддерживаются в контейнере. Microsoft предоставляет список совместимых и несовместимых API.
- Производительность: из-за изоляции и эмуляции приложения могут работать медленнее, чем в нативном Win32-режиме, особенно при интенсивном использовании реестра или файловой системы.
- Сложность конвертации: приложения, использующие сложные межпроцессные взаимодействия (IPC), службы Windows или установщики (например, MSI), требуют дополнительной ручной настройки.
Применение
Преимущества для разработчиков
- Доступ к Microsoft Store: приложения, конвертированные через Desktop Bridge, могут распространяться через магазин, что упрощает обновления, лицензирование и обнаружение пользователями.
- Современные функции: интеграция с Live Tiles, Push-уведомлениями, Cortana, Windows Hello и другими возможностями UWP.
- Безопасность: изоляция в контейнере снижает риск вредоносного поведения, так как приложение не может модифицировать системные файлы или реестр без разрешения.
- Универсальность: одно приложение может работать на всех устройствах с Windows 10 и Windows 11 (ПК, планшеты, Xbox, HoloLens), хотя для некоторых платформ требуется адаптация интерфейса.
Примеры использования
- Adobe Photoshop Elements: компания Adobe использовала Desktop Bridge для публикации своей программы в Microsoft Store, сохранив полный функционал Win32-версии.
- Evernote: приложение для заметок было конвертировано для поддержки Live Tiles и Push-уведомлений.
- 7-Zip: архиватор был адаптирован для магазина, что позволило пользователям устанавливать его без прав администратора.
- Visual Studio Code: редактор кода от Microsoft был упакован с помощью Desktop Bridge для распространения через Store.
Критика и недостатки
- Сложность для разработчиков: несмотря на обещания Microsoft, конвертация сложных приложений часто требует значительных ручных усилий, включая модификацию кода и настройку манифеста.
- Ограниченная поддержка: многие критики отмечали, что Desktop Bridge не решает проблему фрагментации экосистемы Windows, а лишь добавляет ещё один слой абстракции.
- Отсутствие массового принятия: по состоянию на 2023 год большинство популярных Win32-приложений (например, Google Chrome, Mozilla Firefox, Microsoft Office) не были конвертированы, предпочитая традиционные установщики.
Сравнение с альтернативами
Project Reunion (Windows App SDK)
Project Reunion, анонсированный в 2020 году, является эволюцией Desktop Bridge. Он объединяет Win32 и UWP в единую платформу, позволяя разработчикам использовать современные API (например, WinUI 3, MSIX) без необходимости конвертации. В отличие от Desktop Bridge, Reunion не требует изоляции в контейнере и предоставляет прямой доступ к Win32-API, что упрощает разработку новых приложений.
MSIX
MSIX — это формат упаковки приложений, который пришёл на смену APPX. Desktop Bridge поддерживает экспорт в MSIX, что обеспечивает лучшую совместимость с Windows 11 и инструментами управления корпоративными устройствами (например, Microsoft Intune).
Progressive Web Apps (PWA)
PWA — это веб-приложения, которые могут быть упакованы для Windows Store. Они проще в разработке, но имеют ограниченный доступ к системным ресурсам по сравнению с Desktop Bridge.
Интересные факты
- Изначально Desktop Bridge назывался «Project Centennial» в честь 100-летия компании Microsoft (основана в 1975 году, 100-летие пришлось бы на 2075 год, но название было выбрано как символ долгосрочной стратегии).
- В 2017 году Microsoft выпустила инструмент «Desktop App Converter» для Windows 10, который позволял конвертировать приложения без Visual Studio, используя командную строку.
- Технология поддерживает конвертацию приложений, написанных на Java, C++, C#, Delphi и других языках, если они используют Win32-API.
Источники
- Microsoft Docs: «Desktop Bridge» (официальная документация)
- Build 2016: «Project Centennial: Bringing Desktop Apps to the Universal Windows Platform» (презентация)
- Windows IT Pro Center: «MSIX Packaging and Deployment»
- Статья «What is Desktop Bridge?» на сайте Windows Central (2016)
- Книга «Windows 10 Development Recipes» (2017, авторы: S. Chatterjee, M. Satapathy)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →