Современные функции Windows для классических приложений

Вам не нужно переписать WPF, Windows Forms или приложение Win32, чтобы воспользоваться современными функциями Windows. Windows App SDK и более широкие Windows платформы предлагают модульные возможности, которые можно применять постепенно, в собственном темпе.

В этой статье представлено три независимых подхода к модернизации— вызов API среда выполнения Windows (WinRT), добавление Windows App SDK и внедрение упаковки MSIX, поэтому вы можете решить, какие функции следует добавить и где начать на основе платформы вашего приложения.

Миграция платформы пользовательского интерфейса в WinUI 3

Если ваша цель — полностью модернизировать слой пользовательского интерфейса приложения, мы рекомендуем перейти на WinUI 3 — собственный фреймворк пользовательского интерфейса для настольных приложений Windows. Чтобы приступить к работе, см. статью "Создание первого приложения WinUI 3 ".

Если вы хотите добавить Windows функции в существующую платформу приложений (WPF, Windows Forms или C++ Win32), не изменив уровень пользовательского интерфейса, используйте один из подходов к модернизации, описанных в этой статье.

Замечание

В этой статье описывается добавление современных Windows функций в существующее классическое приложение. Если вы хотите модернизировать цепочку инструментов .NET или компилятор C++, ознакомьтесь с GitHub Copilot обновлением или руководством по переносу и обновлению Microsoft C++.

Подходы к модернизации

Три подхода к модернизации являются независимыми. Вы можете использовать один, два или все три в одном приложении.

Approach Что это дает вам Требуется упаковка?
WinRT API Прямой доступ к 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 — подход, который иногда называют упаковкой с внешним расположением или разреженным пакетом.

Отправные точки для конкретных фреймворков

В следующей таблице приведена рекомендуемая отправная точка для каждого фреймворка настольных приложений.

Ваша платформа Рекомендуемая начальная точка
WPF Использование пакета SDK для приложений Windows в существующем проекте
Windows Forms Использование пакета SDK для приложений Windows в существующем проекте
C++ Win32 Использование пакета SDK для приложений Windows в существующем проекте
C++ (WinRT) Интерфейсы API WinRT для настольных приложений

Каталог функций для модернизации настольных приложений

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

AI

Функция требуется Windows App SDK? Требуется идентификатор пакета?
Windows Фабрика ИИ Нет Да

Пользовательский интерфейс и текст

Функция требуется Windows App SDK? Требуется идентификатор пакета?
Компоненты WinUI 3 в классическом приложении Да Нет
Размещение элементов управления WinUI с помощью XAML Islands Да Нет
Отрисовка текста с помощью 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.

Модернизация с помощью искусственного интеллекта

Средство обновления GitHub Copilot может анализировать и обновлять поддерживаемые настольные проекты .NET. Сведения о внедрении функций Windows с помощью ИИ и миграции пользовательского интерфейса см. в статье Модернизация с поддержкой ИИ.