Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вам не нужно переписать WPF, Windows Forms или приложение Win32, чтобы воспользоваться современными функциями Windows. Windows App SDK и более широкие Windows платформы предлагают модульные возможности, которые можно применять постепенно, в собственном темпе.
Замечание
В этой статье описывается добавление современных Windows функций в существующее классическое приложение. Если вы хотите модернизировать цепочку инструментов .NET или компилятор C++, ознакомьтесь с GitHub Copilot модернизацией .NET или руководством по переносу и обновлению Microsoft C++.
Переносите свой UI-фреймворк?
Если ваша цель — полностью модернизировать слой пользовательского интерфейса приложения, рекомендуется перейти на WinUI 3 — собственную платформу пользовательского интерфейса для классических приложений Windows. Чтобы приступить к работе, см. статью "Создание первого приложения WinUI 3 ".
Если вы хотите добавить Windows функции в существующую платформу приложений (WPF, WinForms или C++ Win32), не изменив уровень пользовательского интерфейса, продолжайте чтение.
Выбор подхода
Три подхода к модернизации являются независимыми. Вы можете использовать один, два или все три в одном приложении.
| Approach | Что это дает вам | Требуется упаковка? |
|---|---|---|
| API WinRT | Прямой доступ к API-интерфейсам платформы Windows (уведомлениям, Bluetooth, совместному доступу к контракту, датчикам и т. д.) из любого классического приложения .NET или C++ | Нет, для большинства API |
| Пакет SDK для приложений Windows | Пакет NuGet, который предоставляет современные функции разработки Windows (окна, отрисовка текста, ресурсы и многое другое) для существующих приложений | Нет, для большинства функций |
| Упаковка MSIX | Современный установщик с чистой деинсталляцией, автоматическими обновлениями и идентификацией пакета; может быть добавлен без изменения исходного кода приложения | N/A — упаковка — это подход |
Подсказка
Начните с API WinRT, если вы хотите вызвать определенный API платформы Windows. Добавьте Windows App SDK, если вам нужны его возможности (DWriteCore, MRT Core, оконный интерфейс). Добавьте пакетирование MSIX, если вам нужен идентификатор пакета или вы хотите модернизировать установщик.
интерфейсы программирования приложений WinRT
API среда выполнения Windows (WinRT) предоставляют Windows функции платформы, такие как уведомления приложений, контракт общего доступа, Bluetooth и многое другое. Эти API можно вызывать непосредственно из приложений WPF, Windows Forms и C++ Win32.
Пакет SDK для приложений Windows
Windows App SDK предоставляет современные функции разработки Windows в виде пакета NuGet, добавляемого в существующий проект. Вам не нужно изменять платформу пользовательского интерфейса.
Упаковка MSIX и идентификация пакета
Пакет MSIX заменяет существующий установщик и присваивает вашему приложению идентификатор пакета. Некоторые функции Windows, включая фоновые задачи, задачи запуска, ассоциации файлов и Windows AI Foundry, требуют идентификатора пакета во время выполнения. Если вы хотите сохранить существующий установщик, вы по-прежнему можете назначить идентификатор пакета без полной упаковки в MSIX — подход, который иногда называют упаковкой с внешним расположением или разреженным пакетом.
- Обзор упаковки
- Функции, требующие идентификацию пакета
- Предоставить идентификацию непакетированному приложению
- Интегрируйте ваше настольное приложение с Windows с использованием расширений упаковки
- Упаковка приложения с помощью единого проекта MSIX
Отправные точки для конкретных фреймворков
| Ваша платформа | Рекомендуемая начальная точка |
|---|---|
| WPF | Использование пакета SDK для приложений Windows в существующем проекте |
| WinForms | Использование пакета SDK для приложений Windows в существующем проекте |
| C++ Win32 | Использование пакета SDK для приложений Windows в существующем проекте |
| C++ (WinRT) | Интерфейсы API WinRT для настольных приложений |
Каталог компонентов
В следующей таблице перечислены распространённые функции модернизации, а также указано, требуется ли для них Windows App SDK или идентификатор пакета.
AI
| Функция | требуется Windows App SDK? | Требуется идентификатор пакета? |
|---|---|---|
| Windows Фабрика ИИ | Нет | Да |
Пользовательский интерфейс и текст
| Функция | требуется Windows App SDK? | Требуется идентификатор пакета? |
|---|---|---|
| Компоненты WinUI 3 в классическом приложении | Да | Нет |
| Отрисовка текста с помощью DWriteCore | Да | Нет |
| Применение Mica или Acrylic в приложениях Win32 | Нет | Нет |
| Применение округлых углов | Нет | Нет |
| Применение тем Windows | Нет | Нет |
Жизненный цикл приложения
| Функция | требуется Windows App SDK? | Требуется идентификатор пакета? |
|---|---|---|
| Фоновые задачи (Windows App SDK) | Да | Да |
| Задачи запуска | Нет | Да |
Интеграция Windows
| Функция | требуется Windows App SDK? | Требуется идентификатор пакета? |
|---|---|---|
| Интеграция листов общего доступа | Нет | Нет |
| API пользователей между устройствами | Нет | Нет |
| Сопоставления файлов | Нет | Да |
| Мини-приложения Windows | Нет | Да |
Security
| Функция | требуется Windows App SDK? | Требуется идентификатор пакета? |
|---|---|---|
| Хранилище учетных данных | Нет | Нет |
| OAuth 2.0 | Нет | Нет |
| Биометрия отпечатков пальцев | Нет | Нет |
| Смарт-карты | Нет | Нет |
| Криптография | Нет | Нет |
Resources
| Функция | требуется Windows App SDK? | Требуется идентификатор пакета? |
|---|---|---|
| Управление ресурсами MRT Core | Да | Нет |
Полный список функций, доступных в классических приложениях, см. в разделе "Функции" для разработки приложений Windows.
Дальнейшие действия
Windows developer