.NET MAUI を使って Windows アプリをビルドする
.NET マルチプラットフォーム アプリ UI (.NET MAUI) は、C# と "必要に応じて" XAML を使用して、ネイティブのモバイル アプリやデスクトップ アプリを作成するためのクロスプラットフォーム フレームワークです。 .NET MAUI を使用すると、Windows、Android、iOS、macOS、Samsung Tizen で実行できるアプリを 1 つの共有コードベースから開発できます。 .NET MAUI を使用して Windows アプリをビルドすると、ネイティブ プラットフォームとして WinUI 3 が使用されるため、Windows 10 バージョン 1809 以降と Windows 11 で実行されます。
Windows で .NET MAUI を使用する理由
.NET MAUI を使用して Windows 用アプリをビルドすると、次のようないくつかの利点があります。
- Windows 上のネイティブ: .NET MAUI では、Windows がターゲットの場合に WinUI アプリが作成されます。 つまり、.NET MAUI アプリは、Windows App SDK アプリケーションと同じユーザー エクスペリエンスを Windows で提供します。
- コード内のユーザー インターフェイス: .NET MAUI Community Toolkit には、C# コードでユーザー インターフェイスを構築するためのフルーエント ヘルパー メソッドのセットである C# マークアップが含まれています。 これにより、XAML と同様に、アプリの UI とビジネス ロジック間の懸念事項を切り分けることができます。 C# マークアップは、.NET MAUI でサポートされているすべてのプラットフォームで使用できます。
- クロスプラットフォーム: Android、iOS、macOS、Samsung Tizen デバイスなど、サポートされているすべてのプラットフォームに Windows アプリを移植できます。
- シンプルさ: .NET MAUI でサポートされているすべてのプラットフォームをターゲットにできる単一の共有プロジェクトで開発できます。
- ホット リロード: .NET MAUI での .NET ホット リロードと XAML ホット リロードのサポートによりデバッグの時間を節約します。 アプリの実行中に編集を行い、変更は自動的に適用されます。
- ネイティブ API: .NET MAUI は、各プラットフォームのネイティブ機能のためにクロスプラットフォーム API を提供します。 .NET MAUI のクロスプラットフォーム API で使用できないネイティブ API については、プラットフォーム固有のコードを呼び出すことができます。
Windows 用の新しいアプリを構築する予定で、追加のプラットフォームをターゲットにする場合は、.NET MAUI の使用を検討してください。 アプリで Windows のみを対象としている場合は、Windows App SDK を引き続き使用した方が良い理由がいくつかあります。
- 知識: .NET MAUI XAML と Windows App SDK XAML にはいくつかの違いがあります。 UWP と Windows App SDK で XAML に慣れている場合は、.NET MAUI のコントロールと XAML 構文について、多少の学習が必要になります。
- ネイティブ コントロール: .NET MAUI は現在、Windows App SDK のコントロールの使用をサポートしていません。 再利用する予定がある、またはサードパーティ製またはオープンソースのコントロールに依存する、他の Windows App SDK プロジェクトの既存のコントロールがある場合は、.NET MAUI プロジェクト用の代替手段を見つける必要があります。
- Windows により近い: .NET MAUI アプリを記述すると、Windows App SDK アプリが出力されますが、コードをネイティブ Windows アプリにするために多少の変換が必要です。 Windows App SDK では、その変換手順が排除され、スタイル、API の互換性、またはレイアウトに関する問題が発生する可能性が低くなります。
Windows 開発者向けの .NET MAUI リソース
.NET MAUI のドキュメント
.NET MAUI のドキュメントには、Windows を含むすべてのプラットフォーム向けの .NET MAUI 開発について学習するためのリソースが含まれています。
WinUI のドキュメント
WinUI の機能については、WinUI ドキュメントを参照してください。
.NET Conf: Focus on MAUI
2022 年 8 月のこの 1 日のライブ ストリームでは、Microsoft と .NET MAUI 開発者コミュニティの講演者が登場します。 アプリを構築する方法について学び、.NET MAUI を構築しているチームの話を聞くことができます。
.NET MAUI のブログ投稿
GitHub
.NET MAUI はオープン ソースであり、GitHub でホストされています。 .NET MAUI リポジトリを使用して、機能のリクエストやバグの提出、開発チームとの対話、Wiki の調査を行うことができます。
コード サンプル
.NET MAUI のコード サンプルを、サンプル ブラウザー、または GitHub (dotnet/maui-samples) で探索します。
特定のタスクを示すサンプル
サンプル名/リンク | タスク |
---|---|
アニメーション | アニメーションを使用すると、よりわかりやすいアプリを作成できます。 |
動作 | ビヘイビアーを使用してサブクラス化せずに機能を追加し、代わりにビヘイビアー クラスをコントロールにアタッチします。 |
コントロール テンプレート | ContentView 派生カスタム コントロールと ContentPage 派生ページの視覚的な構造を定義します。 |
データ バインディング | オブジェクトを実際の UI 要素にバインドし、1 つが変更されたときに互いに応答的に更新します。 |
シェル アプリ | .NET Shell アプリを使用して、複雑さを軽減し、コードを再利用し、既存の Windows 機能 (URI ナビゲーションや統合された検索バーなど) をアプリに統合します。 |
トリガー | トリガーを使用して、イベントまたはデータが変更されたときに特定のコントロールを選択的に更新または表示したり、非表示にしたりします。 |
Windows で .NET MAUI の使用を開始する
Windows で .NET MAUI の使用を開始するには、Visual Studio 2022 バージョン 17.3 以降をインストールします。
Visual Studio をインストールまたは変更するときに、既定のオプションのインストール オプションを選択した状態で、.NET マルチプラットフォーム アプリ UI 開発ワークロードを選択します。 Visual Studio でのワークロードの管理について詳しくは、「Visual Studio ワークロード、コンポーネント、言語パックの変更」を参照してください。 Visual Studio Code と .NET CLI を使用している場合は、ワークロード管理に dotnet workload コマンド を使用します。
PC で開発モードを有効にしていない場合は、「デバイスを開発用に有効にする」を参照してください。 有効になっていない場合は、Windows で最初の .NET MAUI プロジェクトを実行しようとしたときに、Visual Studio によって開発モードを有効にするように求められます。
次の手順
Windows で初めての .NET MAUI アプリを作成する手順を確認してください。
関連トピック
Windows developer