Windows 開発者プラットフォームには、システム レベルのアクセスから最新の UI フレームワークまで、Windows 用アプリを構築するために必要なものがすべて用意されています。 中核となるのは、OS レベルの API にアクセスできる Windows SDK と、新しい Windows アプリに推奨される UI フレームワークである WinUI を含む、分離された最新の API とツールのセットを提供する Windows アプリ SDK の 2 つの SDK です。
これらの SDK は、一緒に、さまざまなネイティブおよびクロスプラットフォーム のアプリ フレームワークをサポートします。 WinUI を使用して新しいプロジェクトを開始する場合でも、既存の WPF または Windows フォーム アプリを最新化する場合でも、.NET MAUI または React Native を使用してクロスプラットフォームを構築する場合でも、プラットフォームはニーズに適したアプローチを柔軟に選択できます。
Windows SDK
Windows SDK には、Windows OS API の完全なセットに直接アクセスできるプラットフォーム ヘッダー、ライブラリ、およびツールが用意されています。 フレームワークに関係なく、すべての Windows アプリは最終的に Windows SDK に依存します。 これは Windows OS リリースに関連付けられており、最新の OS 機能、低レベルのシステム API、DirectX などのハードウェア機能にアクセスする必要がある場合に適した選択肢です。
Windows App SDK
Windows App SDK は、Windows SDK を基に構築された最新の SDK です。 NuGet パッケージとして提供され、OS から切り離され、Windows 自体よりも高速なリリース サイクルで API とツール ( WinUI、アプリのライフサイクル、ウィンドウ化、通知など) が提供されます。 WinUI は Windows App SDK 上に直接構築されており、その API を、Windows を対象とする WPF、Windows フォーム、Win32 などのフレームワークに統合することもできます。 Windows 10 (1809) 以降をサポートしています。
アプリ フレームワークを選択する
WinUI
WinUI は、最新の Windows アプリを構築するための推奨されるネイティブ UI フレームワークです。 Windows App SDK 上に構築された WinUI は、XAML マークアップと C# または C++ を使用して、Windows ユーザーが期待する Fluent Design の外観でアプリを作成します。 Windows 開発を初めて使用する場合や、新しいプロジェクトを開始する場合は、WinUI を使用することをお勧めします。
その他のフレームワーク
Windows では、デスクトップ アプリを構築するための他のさまざまなネイティブフレームワークとクロスプラットフォーム フレームワークもサポートされています。
WPF
WPF は、.NET 上に構築された Windows デスクトップ アプリ用に確立された XAML ベースのフレームワークです。 コントロール、データ バインディング、レイアウト、グラフィックス、スタイルなど、包括的な機能セットを提供します。 既存の WPF アプリがある場合は、 Windows アプリ SDK を使用して最新化できます。
Windows フォーム
Windows フォームは、 ドラッグ アンド ドロップのビジュアル デザイナーと組み込みコントロールの大規模なコレクションを備えた、.NET 用の迅速なアプリケーション開発プラットフォームです。 これは、基幹業務およびデータドリブン デスクトップ アプリをすばやく構築するための最適な選択肢です。 既存の Windows フォーム アプリは、 Windows App SDK を使用して最新化できます。
Win32
Win32 デスクトップ アプリ ( クラシック デスクトップ アプリとも呼ばれます) は、Windows とハードウェアに直接アクセスするために C++ を使用します。 これは、最高レベルのパフォーマンス、ハードウェア レベルの最適化、DirectX へのアクセスを必要とするアプリに最適な選択肢です。 Windows ランタイム API への最新のアクセスには 、C++/WinRT を使用できます。
UWP
ユニバーサル Windows プラットフォーム (UWP) は、すべての Windows デバイス ファミリのアプリに共通の API サーフェスを提供します。 既存の UWP アプリは引き続き機能しますが、WinUI と Windows App SDK の最新機能を利用するには、 アプリの移行を検討してください。
機能の比較
| 機能 | WinUI | WPF | Windows フォーム | .NET MAUI | React Native | UWP | Win32 |
|---|---|---|---|---|---|---|---|
| 言語 | C#、C++ | C#、Visual Basic | C#、Visual Basic | C# | JavaScript、TypeScript | C#、C++、Visual Basic | C++、Rust |
| UI 言語 | XAML | XAML | Code | XAML/コード | JSX | XAML | Code |
| UI デザイナー (ドラッグ アンド ドロップ) | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
| モダン UI | ✅ | ✅ (Fluent テーマ) | ❌ | ✅ | ✅ | ✅ (WinUI 2) | ❌ |
| クロスプラットフォーム | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ |
| サンドボックス (AppContainer) | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ |
| アクティブに維持される | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ セキュリティとバグの修正のみ | ✅ |
Windows developer