Сопоставление функций UWP с пакетом SDK для приложений Windows
В этом разделе сравниваются основные области функций в разных формах, в которых они отображаются в UWP и в пакете SDK для приложений Windows. Содержимое в этом руководстве по миграции поддерживает переход с XAML UWP на XAML пакета SDK для приложений Windows— переход на другую платформу пользовательского интерфейса, например Windows Presentation Foundation (WPF), выходит за рамки этого руководства.
Функция | UWP (Универсальная платформа Windows) | Пакет SDK для приложений Windows (упакованные приложения) | Примечания о переходе |
---|---|---|---|
Упаковка | MSIX Приложение имеет идентичность |
MSIX Приложение имеет идентификацию |
Приложения UWP, перенесенные в пакет SDK для приложений Windows, должны оставаться в MSIX, чтобы обеспечить доверенный чистый интерфейс установки и удаления, а также доступ ко всем API, включая те, которые требуют удостоверения. |
Контейнер | Контейнер приложений: - безопасность = LowIL — доступ к файловой системе осуществляется через посредника — нет доступа к реестру |
Контейнер MSIX: - безопасность = MediumIL — доступ к файловой системе аналогичен правам пользователя, записи в AppData виртуализированы. — виртуализированная запись реестра HKCU |
Переход на более высокий уровень целостности с помощью пакета SDK для приложений Windows позволяет приложению иметь более высокую функциональность. Однако следует учитывать виртуализацию, если вы хотите расширить возможности перенесенного приложения для записи в HKCU или AppData. |
Активация и инстанцирование | Удостоверение пакета + активация CoreApplication, одноэлементная по умолчанию | Идентификация пакета, активация через Main/WinMain и Windows App SDK, несколько экземпляров по умолчанию | Убедитесь, что приложение может обрабатывать поведение нескольких экземпляров или использовать AppInstance для управления экземплярами. |
Управление жизненным циклом | Приостановка и возобновление | Уведомления о питании и состоянии | Уведомления об изменении состояния Power/State можно использовать для уменьшения системной нагрузки. |
Фоновые задачи | Фоновые задачи InProc и OOP | Фоновые задачи Inproc COM и объектно-ориентированного программирования (ООП) | Вы можете продолжать использовать фоновые задачи 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 Runtime для UWP | — C++: используйте шаблон проекта компонента среды выполнения Windows (WinUI 3). — C#: используйте C#/WinRT для создания компонентов среды выполнения Windows в библиотеке классов .NET. |
В настоящее время мы работаем над поддержкой создания компонентов среды выполнения Windows с помощью C#/WinRT для использования в пакете SDK для приложений Windows и WinUI 3. |
См. также
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Windows developer