このトピックでは、UWP と Windows App SDK に表示されるさまざまな形式の主要な機能領域を比較します。 この移行ガイドの内容は、UWP XAML から Windows App SDK XAML への移行に対応しています。Windows Presentation Foundation (WPF) などの別の UI フレームワークへの移行は、このガイダンスの範囲外となります。
機能 | ユニバーサル Windows プラットフォーム (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 バックグラウンド タスクの実装 | 詳細については、「バックグラウンド タスクの移行戦略」を参照してください。 |
ウィンドウ化 | 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 など | 詳細については、「WinUI の移行」を参照してください。 |
テキストレンダリング | DirectWrite | DWriteCore(ドライトコア) | アプリケーションが最新の DWrite 機能にダウンレベルでアクセスし、OS リリース スケジュールとは別に新しい DWrite 更新プログラムを受信できるようにします。 詳細については、「DirectWrite から DWriteCore への移行」を参照してください。 |
リソース | MRT | MRTCore | 詳細については、「MRT から MRT Core への移行」を参照してください。 |
.NET ランタイム | .NET Native/C# 7 | .NET 6+/C# 9 | Windows アプリ SDK では、最新の .NET ランタイムと新しい言語機能にアクセスできます。 ただし、.NET ReadyToRun コンパイルは .NET Native と異なるので、パフォーマンスのトレードオフを評価する必要があります。 |
2D グラフィックス | Win2D | WinUI 3 用 Win2D | Microsoft では、現在、Windows App SDK で動作する Win2D のバージョンへの取り組みを進めています。 詳細については、ドキュメントを参照してください。 |
Web 認証 | WebAuthenticationBroker | OAuth2Manager | Windows App SDK には、OAuth 2.0 機能用の新しい API が用意されています。 詳細については、「Windows アプリ で OAuth 機能を実装する」を参照してください。 |
Windows ランタイム コンポーネント | UWP 用の Windows ランタイム コンポーネント プロジェクト テンプレート | - C++: Windows ランタイム コンポーネント (WinUI 3) プロジェクト テンプレートを使用します。 - C#: C#/WinRT を使用して、.NET クラス ライブラリ の Windows ランタイム コンポーネントを作成します。 |
現在、Windows アプリ SDK および WinUI 3 で使用するために、C#/WinRT を使用して Windows ランタイム コンポーネントを作成するためのサポートに取り組んでいます。 |
参照
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
Windows developer