.NET 6の現状を把握し、具体的な移行方法を学ぶ連載。今回は、.NET MAUIの概要とXamarn.Formsからの改良ポイントについてまとめる。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
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 | |
---|---|---|
プロジェクトの構造 | 非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のプロジェクトは下図のようになっています。
Xamarin.Formsのような「単一の共有プロジェクト+複数のプラットフォーム固有プロジェクト」の構成ではなく、単一のプロジェクトで、複数プラットフォームをターゲットにできるようになりました。
Xamarin.Formsは登場当時、画期的なフレームワークでした。ですが、利用が進むにつれてアーキテクチャに起因する問題点も顕在化しました。
下図のようにレンダラーは共有プロジェクトのUIコントロール実装に依存しています。
Copyright © ITmedia, Inc. All Rights Reserved.