Сопоставление функций UWP с пакетом SDK для приложений Windows
В этом разделе сравниваются основные области функций в разных формах, в которых они отображаются в UWP и в пакете SDK для приложений Windows. Содержимое в этом руководстве по миграции поддерживает переход с XAML UWP на XAML пакета SDK для приложений Windows— переход на другую платформу пользовательского интерфейса, например Windows Presentation Foundation (WPF), выходит за рамки этого руководства.
Функция | UWP | Пакет SDK для приложений Windows (упакованные приложения) | Примечания о переходе |
---|---|---|---|
Упаковка | MSIX Приложение имеет удостоверение |
MSIX Приложение имеет удостоверение |
Приложения UWP, перенесенные в пакет SDK для приложений Windows, должны оставаться в MSIX, чтобы обеспечить доверенный чистый интерфейс установки и удаления, а также доступ ко всем API, включая те, которые требуют удостоверения. |
Контейнер | Контейнер приложений: - security = LowIL — доступ к файловой системе является брокером — нет доступа к реестру |
Контейнер MSIX: - security = MediumIL — доступ к файловой системе, аналогичный пользователю, AppData записывает виртуализированную — реестр HKCU записывает виртуализированную |
Переход на более высокий уровень целостности с помощью пакета SDK для приложений Windows позволяет приложению иметь более высокую функциональность. Однако следует учитывать виртуализацию, если вы хотите расширить возможности перенесенного приложения для записи в HKCU или AppData. |
Активация и включение | Удостоверение пакета + активация CoreApplication, одноэлементная по умолчанию | Удостоверение пакета, активация пакета Main/WinMain + пакет SDK для приложений Windows, много экземпляры по умолчанию | Убедитесь, что приложение может обрабатывать поведение нескольких экземпляров или использовать AppInstance для управления экземплярами. |
Управляемый жизненным циклом | Приостановка и возобновление | Уведомления о power/State | Уведомления об изменении состояния Power/State можно использовать для уменьшения системной нагрузки. |
Фоновые задачи | Фоновые задачи InProc и OOP | Фоновые задачи COM и OOP | Вы можете продолжать использовать фоновые задачи OOP. Если приложению требуется взаимодействие с основным процессом, оцените механизм IPC, так как фоновая задача OOP выполняется в LowIL, а основной процесс пакета SDK для приложений Windows выполняется в MediumIL. Все фоновые задачи, которые необходимо перенести в фоновые задачи COM, см. в статье "Создание и регистрация фоновой задачи WINMAin COM". Фоновые задачи C# OOP см. в разделе "Создание среда выполнения Windows компонентов" с помощью C#/WinRT и примера фоновой задачи. |
Оконное расширение | CoreWindow, AppWindow (предварительная версия) | HWND, AppWindow v2 | Поведение окна значительно изменилось в пакете SDK для приложений Windows. См. статью "Миграция функций окна". |
Обмен сообщениями | CoreDispatcher и DispatcherQueue | DispatcherQueue, WndProc | DispatcherQueue поддерживает приложения Win32. Дополнительные сведения о переходе из CoreDispatcher в DispatcherQueue см. в разделе "Миграция функций потоков". |
Платформа пользовательского интерфейса | System XAML, WebView, DirectX и другие | WinUI 3, Webview2, DirectX и другие | Дополнительные сведения см. в статье о миграции WinUI. |
Отрисовка текста | DirectWrite | DWriteCore | Позволяет приложениям получать доступ к последним функциям DWrite и получать новые обновления DWrite отдельно от расписания выпуска ОС. Дополнительные сведения см. в разделе DirectWrite to DWriteCore migration. |
Ресурсы | MRT | MRTCore | Дополнительные сведения см. в разделе MRT to MRTCore migration. |
Среда выполнения .NET | .NET Native / C# 7 | .NET 6+/C# 9 | Пакет SDK для приложений Windows предоставляет доступ к современной среде выполнения .NET и доступ к новым функциям языка. Однако компиляция .NET ReadyToRun не совпадает с .NET Native, поэтому следует оценить компромиссы производительности. |
2D Графика | Win2D | Win2D для WinUI 3 | В настоящее время мы работаем над версией Win2D, которая работает с пакетом SDK для приложений Windows. Дополнительные сведения см. в документации. |
Компоненты среды выполнения Windows | Шаблоны проектов компонентов среда выполнения Windows для UWP | — C++: используйте шаблон проекта среда выполнения Windows (WinUI 3). — C#: используйте C#/WinRT для создания компонентов среда выполнения Windows в библиотеке классов .NET. |
В настоящее время мы работаем над поддержкой создания компонентов среда выполнения Windows с помощью C#/WinRT для использования в пакете SDK приложений Windows и WinUI 3. |
См. также
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Windows developer