「.NET MAUI(Multi-platform App UI)」とは――Xamarn.Formsからの改良ポイント:.NET 6移行入門(6)
.NET 6の現状を把握し、具体的な移行方法を学ぶ連載。今回は、.NET MAUIの概要とXamarn.Formsからの改良ポイントについてまとめる。
.NET MAUIリリース
2022年5月23日(米国時間)、.NET MAUIがGA(一般提供)されました。Microsoftは「.NET MAUIは、.NET Multi-platform App UIの略称で、モバイル、タブレット、デスクトップにまたがるネイティブデバイスのアプリケーションを構築するフレームワークです」と紹介しています。
.NET MAUI自体はGAされましたが、2022年6月26日の原稿執筆では開発環境「Visual Studio」は、Windows版も、Mac版も最新のプレビュー版での対応です。こちらは程なく安定版のVisual Studioでも対応されるでしょう。
.NET MAUIはXamarin.Formsから全く違う製品名に変わりましたが、何が違うのでしょうか? 分かりやすくいえば、.NET MAUIはXamarin.Formsの改良版です。本稿では、.NET MAUIはXamarin.Formsと比べて、どこが改良されたのか、具体的に解説します。
Xamarin.Formsと.NET MAUIの主な違い
Xamarin.Formsと.NET MAUIの主な違いを表でまとめました。
Xamarin.Forms | .NET MAUI | |
---|---|---|
プロジェクトの構造 | 非SDKスタイル(Franken-proj) プラットフォームごとに個別のプロジェクトを使用 |
SDKスタイル 単一のプロジェクトで、複数プラットフォームをターゲットにできる |
ツールチェーン | .NET Framework | .NET CLI |
リソース管理 | プラットフォームごとに個別管理 プラットフォーム固有のデバイスの解像度に応じたイメージを準備する必要がある |
単一のプロジェクト内で一元管理 SVGを準備すれば各プラットフォームの解像度のPNGに変換でされる |
スタートアップ | 独自(Appクラス) | Generic Host対応 |
ホットリロード | 完全なXAMLホットリロード (SDK 5.xおよびVisual Studio 2019 16.9以降) |
完全な.NETホットリロード 完全なXAMLホットリロード |
UIコントロールアーキテクチャ | レンダラー | ハンドラー |
以降、.NET MAUIの改良点の中で、特に注目のポイントを紹介します。
.NET MAUIのプロジェクト構成
.NET MAUIのプロジェクトは下図のようになっています。
Xamarin.Formsのような「単一の共有プロジェクト+複数のプラットフォーム固有プロジェクト」の構成ではなく、単一のプロジェクトで、複数プラットフォームをターゲットにできるようになりました。
Xamarin.Formsのアーキテクチャに起因する問題点
Xamarin.Formsは登場当時、画期的なフレームワークでした。ですが、利用が進むにつれてアーキテクチャに起因する問題点も顕在化しました。
Xamarin.Formsのレンダラーアーキテクチャ
下図のようにレンダラーは共有プロジェクトのUIコントロール実装に依存しています。
Xamarin.Formsレンダラーアーキテクチャの問題点
- レンダラーがXamarin.FormsのUIコンポーネントと密結合している
- アセンブリスキャンとリフレクションというコストの大きい処理を使用してUIコントロールのレンダラーを取得するので遅い
- 共有プロジェクトからネイティブUIコントロールをカスタマイズする場合、たった1つのプロパティの変更でも、共有プロジェクトとネイティブプロジェクトにまたがるレンダリングの仕組みを理解した上で、定型的な多くのコードを記述する必要があり、非常に手間がかかる
.NET MAUIの最大の変更点
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Arm64デバイスでネイティブ開発が可能に、「Visual Studio 2022 17.3 Preview 2」がリリース
MicrosoftはWindows 11向けのネイティブArm64アプリケーションとして「Microsoft Visual Studio 2022バージョン17.3 Preview 2」をリリースした。「Windows 11 Armデバイス」でArm64アプリケーションのビルドとデバッグをネイティブにサポートする。 - デベロッパーが注目したいMSの開発関連技術「.NET MAUI」「Microsoft Dev Box」の威力とは
Microsoftは開発者向けカンファレンス「Build 2022」で発表したツールやサービスのうち、Visual Studioユーザーにとって要注目の技術「.NET MAUI」と「Microsoft Dev Box」を紹介した。さらに「Azure Deployment Environments」とArm64対応の「Visual Studio」も取り上げている。 - Microsoft、「Xamarin」の全APIドキュメントをオープンソース化
Microsoftは、モバイルアプリの開発プラットフォームである「Xamarin」の全てのAPIドキュメントをGitHubでオープンソースとして公開した。