Windows App SDK への UWP 機能のマッピング

このトピックでは、UWP と Windows App SDK に表示されるさまざまな形式の主要な機能領域を比較します。 この移行ガイドの内容は、UWP XAML から Windows App SDK XAML への移行に対応しています。Windows Presentation Foundation (WPF) などの別の UI フレームワークへの移行は、このガイダンスの範囲外となります。

機能 UWP Windows App SDK (パッケージ アプリ) 移行に関する注意事項
パッケージ MSIX
アプリに ID がある
MSIX
アプリに ID がある
Windows App SDK に移行する UWP アプリは、信頼できるクリーン インストール/アンインストール エクスペリエンスと、ID を必要とするものを含めたすべての API へのアクセスを実現するために、常に MSIX を使用する必要があります。
コンテナー アプリ コンテナー:
- セキュリティ = LowIL
- ファイル システム アクセスが仲介される
- レジストリ アクセスなし
MSIX コンテナー:
- セキュリティ = MediumIL
- ユーザーと同じファイル システム アクセス、AppData 書き込みを仮想化
- HKCU レジストリ書き込みを仮想化
Windows App SDK を使用してより高い整合性レベルに移行すると、アプリの機能を向上させることができます。 ただし、移行したアプリケーションの機能を拡張して、HKCU または AppData に書き込む場合は、仮想化に注意してください。
アクティブ化とインスタンス化 パッケージ ID + CoreApplication のアクティブ化、既定で単一インスタンス化 パッケージ ID、Main/WinMain + Windows App SDK のアクティブ化、既定で複数インスタンス化 アプリケーションで複数インスタンスの動作を処理できることを確認するか、AppInstance を使用してインスタンスを管理します。
ライフサイクル管理 中断/再開 電源/状態通知 電源/状態の変更通知を使用して、システム負荷を軽減できます。
バックグラウンド タスク インプロセスおよび OOP バックグラウンド タスク インプロセス COM および OOP バックグラウンド タスク OOP バックグラウンド タスクを引き続き使用できます。 OOP バックグラウンド タスクは LowIL で実行され、Windows App SDK メイン プロセスは MediumIL で実行されているので、アプリでメイン プロセスへの通信が必要な場合は、IPC メカニズムを評価します。

インプロセス バックグラウンド タスクは、COM バックグラウンド タスクに移行する必要があります。「winmain COM バックグラウンド タスクの作成と登録」を参照してください。

C# OOP バックグラウンド タスクについては、「C#/WinRT を使用してWindows ランタイム コンポーネントを作成する」および「バックグラウンド タスクのサンプル」を参照してください。
ウィンドウ化 CoreWindow、AppWindow (プレビュー) HWND、AppWindow v2 Windows App SDK では、ウィンドウ化の動作が大幅に変更されました。 「ウィンドウ機能の移行」を参照してください。
メッセージング CoreDispatcher と DispatcherQueue DispatcherQueue、WndProc DispatcherQueue では、Win32 アプリがサポートされます。 CoreDispatcher から DispatcherQueue への移行の詳細については、「スレッド機能の移行」を参照してください。
UI プラットフォーム System XAML、WebView、DirectX など WinUI 3、Webview2、DirectX など 詳細については、Windows UI ライブラリ (WinUI) の移行に関する記事を参照してください。
テキストレンダリング DirectWrite DWriteCore アプリケーションが最新の DWrite 機能にダウンレベルでアクセスし、OS リリース スケジュールとは別に新しい DWrite 更新プログラムを受信できるようにします。 詳細については、「DirectWrite から DWriteCore への移行」を参照してください。
リソース MRT MRTCore 詳細については、「MRT から MRT Core への移行」を参照してください。
.NET ランタイム .NET Native/C# 7 .NET 6+/C# 9 Windows App SDK は、最新の.NET ランタイムへのアクセスと、新しい言語機能へのアクセスを提供します。 ただし、.NET ReadyToRun コンパイルは .NET Native と異なるので、パフォーマンスのトレードオフを評価する必要があります。
2D グラフィックス Win2D WinUI 3 用 Win2D Microsoft では、現在、Windows App SDK で動作する Win2D のバージョンへの取り組みを進めています。 詳細については、 ドキュメント をご覧ください。
Windows ランタイム コンポーネント UWP 用Windows ランタイム コンポーネント プロジェクト テンプレート - C++: Windows ランタイム コンポーネント (WinUI 3) プロジェクト テンプレートを使用します。
- C#: C#/WinRT を使用して、.NET クラス ライブラリのWindows ランタイム コンポーネントを作成します。
現在、Windows アプリ SDK と WinUI 3 で使用するために C#/WinRT を使用して Windows ランタイム コンポーネントを作成するサポートに取り組んでいます。