Открыть сервисСервис

Windows App SDK — среда выполнения приложений Microsoft

Windows App SDK (ранее известная как Project Reunion) — это набор библиотек, инструментов и компонентов от Microsoft, предназначенных для унификации разработки приложений под платформу Windows. Он предоставляет единый слой API, позволяющий разработчикам использовать современные возможности Windows 10 и Windows 11 независимо от конкретной версии операционной системы и модели поставки приложения (MSIX-пакет или классическое Win32-приложение).

История и происхождение

До появления Windows App SDK разработчики приложений для Windows сталкивались с фрагментацией платформы. Возможности Windows разделялись между несколькими моделями: классические Win32-приложения, приложения UWP (Universal Windows Platform) и приложения, поставляемые через магазин Microsoft Store с использованием различных моделей пакетирования. Многие новые API были доступны только для UWP-приложений, что ограничивало их использование в традиционных настольных программах.

В мае 2020 года на конференции Microsoft Build проект получил название Project Reunion. Его цель состояла в том, чтобы «соединить» разрозненные экосистемы Windows и предоставить разработчикам доступ к современным возможностям независимо от типа приложения. В апреле 2021 года проект был переименован в Windows App SDK, что отразило его расширенную роль как универсального инструментария для настольной разработки.

Первая стабильная версия 1.0 была выпущена в ноябре 2021 года. Далее SDK развивалась в режиме регулярных релизов: версия 1.1 (май 2022), 1.2 (октябрь 2022), 1.3 (май 2023), 1.4 (октябрь 2023), 1.5 (март 2024) и более новые выпуски, добавлявшие новые API и улучшавшие производительность.

Состав и архитектура

Windows App SDK построена по модульному принципу и включает несколько ключевых компонентов:

  • WinUI 3 — эволюция пользовательского интерфейса Windows, преемница UWP XAML и Fluent Design. Предоставляет современные элементы управления и визуальные эффекты для настольных приложений.
  • MSIX — упаковка и развёртывание приложений через единый формат пакетов, обеспечивающий чистую установку и удаление без остатков в системе.
  • Доступ к файлам и данным — унифицированные API для работы с файловой системой, включая песочницу приложений.
  • Дерево окон и взаимодействие — современные API для управления окнами, включая поддержку нескольких мониторов с разным DPI и тему оформления приложения.
  • Подсистема приложений — модульная система, позволяющая подключать к приложению только необходимые библиотеки.

Одной из ключевых особенностей является возможность использовать Windows App SDK как NuGet-пакеты в существующих проектах, что снижает порог входа для миграции.

Связь с .NET и C++

Windows App SDK тесно интегрирована с платформой .NET (начиная с .NET 6 и далее .NET 8/9) и поддерживает языки C#, C++/WinRT и Rust через проекты-обёртки. Для C#-разработчиков доступен шаблон проекта в Visual Studio, создающий приложение WinUI 3 «из коробки».

Для C++ разработчики используют C++/WinRT — стандартный заголовочный библиотечный слой для работы с WinRT-компонентами, что позволяет создавать высокопроизводительные приложения без упаковки в .NET.

Отличие от Windows Runtime (WinRT)

Стоит различать Windows App SDK и Windows Runtime (WinRT) — это разные сущности. WinRT — это низкоуровневая модель API-интерфейсов, представленная в Windows 8 и используемая в UWP. Windows App SDK построена поверх WinRT и расширяет её, добавляя новые компоненты и унифицируя доступ к возможностям для всех типов приложений.

Применение

Windows App SDK используется для разработки:

  • Настольных приложений с современным интерфейсом (WinUI 3).
  • Игр и мультимедийных приложений, требующих доступа к новым возможностям графики и ввода.
  • Корпоративных приложений, которым требуется единая модель развёртывания через MSIX.
  • Приложений, мигрирующих со старых Win32-программ на современный стек.

Microsoft позиционирует Windows App SDK как основу для будущего настольной разработки в экосистеме Windows, постепенно перенося на неё собственные приложения, такие как «Проводник» и «Фотографии».

Критика

Основные замечания разработчиков связаны с ранними версиями SDK: нестабильность API, недостаточная документация и проблемы с производительностью по сравнению с классическими Win32-приложениями. С течением времени эти проблемы постепенно устраняются, однако некоторые компоненты по-прежнему считаются «preview» и не рекомендуются для критически важных проектов.

Источники

  • Официальная документация Microsoft Learn: Windows App SDK
  • Блог Microsoft Windows Developer Blog
  • Документация по WinUI 3 на Microsoft Learn
  • Открытый репозиторий Windows App SDK на GitHub
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru