Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вам не нужно переписать 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 — подход, который иногда называют упаковкой с внешним расположением или разреженным пакетом.
- Обзор упаковки
- Функции, требующие идентификацию пакета
- Предоставить идентификацию непакетированному приложению
- Интегрируйте ваше настольное приложение с Windows с использованием расширений упаковки
- Упаковка приложения с помощью единого проекта 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 с помощью ИИ и миграции пользовательского интерфейса см. в статье Модернизация с поддержкой ИИ.
Связанные материалы
- Вызов среда выполнения Windows API в настольных приложениях
- Размещайте элементы управления WinUI с помощью XAML Islands
- Использование пакета SDK для приложений Windows в существующем проекте
- Обзор упаковки
- Выбор пути миграции
- Терминология миграции
- Вызов API взаимодействия из приложения .NET
- Создайте приложение C# .NET с помощью WinUI и взаимодействия с Win32
Windows developer