Вопросы и ответы для разработчиков Windows

Эта статья призвана проинформировать о возможностях разработки для Windows и планах развития продукта.

Начало работы

Что выбрать для создания приложений Windows?

Для разработки классических приложений Windows рекомендуется WinUI 3 и пакет SDK для приложений Windows. WinUI содержит современные элементы управления и стили для создания приложений Windows, которые используют новейшие функции Windows 11 и работают вниз до Windows 10 версии 1809.

Другие варианты могут быть более подходящими в зависимости от того, что вы создаете и как вы создаете его:

  • Если пакет SDK для приложений Windows или WinUI 3 не соответствует вашим потребностям, WPF может.
  • Если вы нацелены на кроссплатформенную платформу: React Native и .NET MAUI позволяют создавать кроссплатформенные приложения. .NET MAUI — это отличный выбор для разработчиков на C#. React Native будет знаком разработчикам на JavaScript/TypeScript.
  • Если вы являетесь веб-разработчиком: вы можете использовать WebView2 в качестве узла приложений. Это позволит вам использовать веб-технологии для создания классических приложений, которые могут использовать API Windows SDK и Windows App SDK. Вы также можете использовать React Native для Windows.
  • Если вы являетесь разработчиком C++: Windows App SDK/WinUI 3 — это отличный выбор для классических приложений. Если вы создаете игру, рассмотрите возможность использования DirectX.
  • Если вы являетесь разработчиком Rust: узнайте больше о Rust для Windows.

Существуют и другие техники разработки, которые могут быть более оптимальны для ваших потребностей и предпочтений в технологиях. Общие сведения о параметрах платформы.

Где можно найти простое сравнение технологий разработки для Windows?

Обзор параметров разработки приложений.

Windows App SDK/WinUI 3

Что собой представляет пакет SDK для приложений для Windows?

Windows App SDK — эта платформа разработки приложений Windows, которая позволяет создавать красивые, современные классические приложения с обратной совместимостью (вплоть до Windows 10 1809). WinUI 3 — эта платформа пользовательского интерфейса в составе Windows App SDK.

В чем разница между Windows App SDK и Windows SDK?

Оба являются пакетами разработки ПО (SDK) для создания приложений Windows.

Windows App SDK — это новая платформа разработки, которая позволяет создавать современные классические приложения для установки в версиях Windows (вплоть до Windows 10 1809). При использовании пакета SDK для приложений Windows для создания приложения у вас будет доступ к новейшим функциям платформы разработки Windows. Windows App SDK включает WinUI 3.

Windows SDK — это платформа разработки, которая позволяет создавать приложения UWP и Win32, а также классические приложения. Этот пакет использует API Windows, которые привязаны к определенным версиям ОС.

Windows App SDK не заменяет Windows SDK. Windows App SDK дополняет Windows SDK. Он предоставляет удобную и не привязанную к ОС абстракцию для широкого каталога API ОС Windows, к которому вы уже имеете доступ через Windows SDK. При создании приложений с помощью Windows App SDK вам может потребоваться использовать некоторые API Windows SDK в зависимости от требуемой функциональности. Функции Windows SDK будут постепенно переноситься в Windows App SDK.

Можно ли использовать Windows App SDK/WinUI 3 в существующем приложении Windows?

Обратите внимание, что WinUI 3 (платформа пользовательского интерфейса) поставляется с Windows App SDK (платформа разработки для Windows).

Как правило, WinUI 3 не следует использовать, если вы не готовы полностью перенести свою платформу пользовательского интерфейса. Мы работаем над функцией, называемой островами XAML, которая позволяет размещать содержимое WinUI 3 в других платформах пользовательского интерфейса (WPF, Win32).

Вы должны иметь возможность использовать элементы Windows App SDK в любом приложении Win32 или классическом приложении (в зависимости от способа создания существующего приложения). Приложения UWP не поддерживаются Windows App SDK/WinUI 3.

Это означает, что приложения WPF/MFC/WinForms могут использовать API Windows App SDK, которые не связаны с WinUI 3. Примеры таких API: жизненный цикл приложений, работа с окнами и всплывающие уведомления.

Нужно ли использовать Visual Studio для создания приложений WinUI 3?

Мы настоятельно рекомендуем использовать Visual Studio 2022 версии 17.1 и более поздних для разработки приложений Windows App SDK/WinUI 3. Последняя версия Visual Studio предоставит вам доступ к многофункциональным возможностям разработки, таким как горячая перезагрузка.

Вы можете использовать другие рабочие процессы и рабочие процессы разработки, но Visual Studio в настоящее время является единственной официально поддерживаемой интегрированной среды разработки для пакета SDK для приложений Windows или WinUI 3. Обратите внимание, что MSBuild требуется для компиляции проектов, использующих xaml или пакет SDK для приложений Windows или WinUI 3.

При создании приложения с помощью Windows App SDK/WinUI 3 я создаю приложение WinUI 3?

Да. "Приложение WinUI 3" — это термин, который рекомендуется использовать.

Можно ли инкрементно обновлять приложение WinUI 2 до WinUI 3, постепенно заменяя компоненты WinUI 2 компонентами WinUI 3?

№ Windows App SDK нельзя использовать в приложениях UWP, а WinUI 2 нельзя использовать совместно с WinUI 3. См. статью "Миграция из UWP" в пакет SDK для приложений Windows.

Насколько трудно перенести приложение UWP в пакет SDK для приложений Windows или WinUI 3?

Перенос компонентов пользовательского интерфейса обычно прост (для C# и C++/WinRT). В противном случае стоимость миграции из UWP в пакет SDK для приложений Windows / WinUI 3 будет зависеть в первую очередь от следующих факторов:

  1. Настройка файла проекта и MSBuild. Перенос проекта может потребовать значительных усилий в зависимости от того, используются ли расширенные функции MSBuild.
  2. Миграция API .NET. Если приложение UWP использует .NET, необходимо обновить до .NET 6 или более поздней версии. В большинстве случаев внедрение .NET 6 является прямым.
  3. Библиотеки компонентов пользовательского интерфейса: если вы используете библиотеки компонентов пользовательского интерфейса, вам потребуется новая версия этих библиотек, предназначенных для WinUI 3.
  4. Если исходный код UWP написан в теперь заменяемом C++/CX, некоторые порты исходного кода будут задействованы. См. раздел "Переход на C++/WinRT" из C++/CX.

Дополнительные сведения о миграции UWP см. в статье "Миграция из UWP в пакет SDK для приложений Windows".

Если у меня есть приложение UWP в Store, можно ли опубликовать новое упакованное приложение WinUI 3, используя те же идентификаторы?

Да, обновленные приложения можно публиковать без необходимости обновлять удостоверение приложения. Пользователи со старой версией получат обновление до новой версии. Эта рекомендация относится только к классическим приложениям. Приложения Xbox, HoloLens и Surface Hub не могут перенестися в WinUI 3.

Как следует упаковывать и распространять приложения WinUI 3?

Где найти рекомендации по миграции на Windows App SDK?

См. статью "Миграция из UWP" в пакет SDK для приложений Windows.

Требуется ли использовать разметку XAML, если я хочу использовать WinUI 3?

№ Элементы управления пользовательским интерфейсом можно создать в коде. Но представление пользовательского интерфейса WinUI 3 в формате декларативной разметки XAML предоставляет множество преимуществ, например более удобную разработку.

Если вы выполняете миграцию с UWP на WinUI 3, вы, вероятно, сможете повторно использовать много разметки XAML и код, связанный с пользовательским интерфейсом (но вам придется обновить некоторые синтаксис). Если вы выполняете миграцию из WPF в WinUI 3, вы сможете повторно использовать множество концепций, но набор элементов управления и API будут отличаться.

Имеет ли Visual Studio панель проектирования или конструктор графического пользовательского интерфейса для WinUI 3?

№ Мы понимаем, что это недостаток при разработке с WinUI 3. Такие средства, как XAML Hot Reload, помогают во множестве сценариев.

Входит ли WinUI 3 в состав Windows App SDK?

Да. WinUI 3 входит в состав пакета SDK для приложений для Windows.

Входит ли WinUI 2 в состав Windows App SDK?

№ WinUI 2 входит в состав платформы UWP.

Основаны ли WinUI 2 и WinUI 3 на одной технологии?

Пока нет. Хотя WinUI 3 основывается на базе кода WinUI 2, они различаются. WinUI 2 и WinUI 3 — это платформы пользовательского интерфейса на основе XAML, которые работают в .NET и C++. Учтите, что WinUI 2 и WinUI 3 несовместимы друг с другом.

Можно ли использовать WinUI 3 без Windows App SDK?

№ WinUI 3 входит в состав Windows App SDK.

Можно ли использовать WinUI 3 в распаковке приложения?

Да. Все технологии в Windows App SDK работают в приложениях без упаковки, включая WinUI 3.

В чем разница между XAML Islands и WinUI 3?

XAML Islands позволяет вам размещать современные элементы управления WinUI вместе с существующими пользовательскими интерфейсами Win32 от других платформ, такими как WinForms и WPF. На сегодня XAML Islands поддерживается с большинством системных элементов управления XAML и WinUI 2. Дополнительные сведения см. в элементах управления WinRT XAML в классических приложениях (XAML Islands). Поддержка элементов управления WinUI 3 в XAML Islands доступна начиная с пакета SDK для приложений Windows 1.4.

Если я использую WinUI 3, будет ли мое приложение выглядеть современным в Windows 11 и Windows 10?

Да, пользовательский интерфейс приложения наследует последние принципы проектирования пользовательского интерфейса Fluent для всех поддерживаемых версий Windows 11 и Windows 10 вплоть до версии 1809 в сценариях с упаковкой и без нее.

Можно ли использовать мику или акриловые фоны в приложениях, созданных с помощью пакета SDK для приложений Windows?

Где можно найти примеры WinUI 3?

См . пример и ресурсы. Некоторые важные репозитории:

  • WindowsAppSDK-Samples — демонстрирует, как использовать определенные наборы API для Windows App SDK.
  • WinUI 3 Demos — содержит демонстрации, используемые во время презентаций Microsoft WinUI 3.
  • Коллекция WinUI: демонстрирует WinUI 3 и пакет SDK для приложений Windows. Вы также можете получить коллекцию WinUI в Microsoft Store.

UWP и WinUI 2

Можно ли распространять приложения UWP за пределами Microsoft Store?

Да. Если пакет MSIX подписан, сертификат подписи должен быть допустимым и доверенным на целевом устройстве.

Можно ли совместно использовать элементы управления пользовательским интерфейсом UWP XAML с элементами управления пользовательским интерфейсом Win32, WPF или WinForms?

Да. XAML Islands предоставляет такую возможность. Подробнее о XAML Islands.

Кроссплатформенная разработка

Можно ли начать с WinUI 3 и Windows App SDK, а затем интегрировать .NET MAUI, если мне потребуются кросс-платформенные возможности?

В настоящее время нет. Хотя приложения .NET MAUI используют Windows App SDK/WinUI 3 при выполнении в Windows, мы рекомендуем начать с .NET MAUI или React Native для Windows, если вам может потребоваться ориентация на несколько платформ.

Что следует использовать, если я хочу создавать приложения для Windows и Xbox?

Если для приложения требуется поддержка Xbox, HoloLens или Интернета вещей, мы рекомендуем использовать UWP. Пакет SDK для приложений Windows не поддерживает эти платформы. Для разработки игр мы рекомендуем использовать комплект Microsoft Game Development Kit.

Что следует использовать, если я хочу создавать приложения для Windows и Surface Hub?

Если вы ориентируетесь на Windows и Surface Hub, мы рекомендуем использовать UWP.

Как создавать близкие к нативным прогрессивные веб-приложения (PWA) в Windows?

Упаковка, развертывание и обновления

Какова разница между приложениями, которые упаковываются, распаковываются и упаковываются с внешним расположением?

Определения приложений, которые упаковываются, распаковываются и упаковываются с внешним расположением, см. в обзоре развертывания. В этом разделе также описываются преимущества и недостатки каждого варианта.

Будет ли мое приложение WinUI 3 автоматически обновляться для конечных пользователей?

Приложение Windows App SDK/WinUI 3 можно предоставлять через Store, appinstaller-файл или в существующем пакете MSI или setup.exe. Store и AppInstaller поддерживают автоматическое обновление для конечных пользователей, у которых включено автоматическое обновление, но приложение MSI/setup.exe должно иметь собственное средство обновления.

Можно ли использовать Windows App SDK без MSBuild?

Как правило, нет. Для Пакета SDK для приложений WinUI 3 и Windows требуется MSBuild, поэтому Visual Studio является обязательным условием для разработки приложений Windows App SDK или WinUI 3. Хотя технически можно создать приложения пакета SDK для приложений Windows, которые не используют WinUI 3 с помощью других цепочк инструментов, это не поддерживается.

Производительность и оптимизация

Что можно сделать, чтобы пользователям было удобно работать с моим приложением Windows?

Совместимость

Потребуется ли пользователям обновлять Windows для использования моего приложения Windows App SDK/WinUI 3?

Пользователи с Windows 10 версии 1809 и более поздних смогут установить приложения WinUI 3/Windows App SDK без обновления ОС.

Можно ли обеспечить ориентацию на ARM64 для моего приложения WinUI 3?

Да.

Нерекомендуемые компоненты и миграции

Являются ли UWP и WinUI 2 нерекомендуемыми?

№ UWP и WinUI 2 пока поддерживаются и будут получать исправления ошибок и обновления для надежности и безопасности. Но большинство новых функций и возможностей, в том числе поддержка последних сред выполнения .NET, будет добавлена только в Windows App SDK/WinUI 3.

Когда следует переносить приложение UWP/WinUI 2 на WinUI 3?

Разработчики UWP могут спокойно перенести приложения на Windows App SDK, если их устраивает функциональность UWP. Для некоторых приложений лучшим выбором может быть вообще не выполнять миграцию. Если вы хотите, чтобы приложения использовали последние возможности платформы Windows и .NET от Майкрософт, их лучше перенести на Windows App SDK. См. статью Миграция из UWP на Windows App SDK.

Когда не следует переносить приложение UWP + WinUI 2 на WinUI 3?

Мы рекомендуем продолжать использовать UWP, если вы создаете приложения для Xbox, Surface Hub или HoloLens.

Является ли WPF нерекомендуемой?

№ WPF все так же поддерживается и получает обновления с некоторыми функциями.

Является ли WinForms нерекомендуемой?

№ WinForms все так же поддерживается и получает обновления с некоторыми функциями.

Является ли среда выполнения Windows (WinRT) нерекомендуемой?

WinRT относится к двоичному интерфейсу приложения (ABI), который позволяет взаимодействовать между несколькими языками. WinRT — это эволюция COM. Windows App SDK предоставляет значительную часть своей функциональности через API WinRT.

Заметки о выпуске

Где можно найти заметки о выпуске для Windows App SDK?