ニュース

Microsoft、.NETのUIを統一する「.NET Multi-platform App UI」(.NET MAUI)を発表

「Xamarin.Forms」の後継。モバイルからタブレット、デスクトップまでを単一のコードベースで

Microsoft、「.NET Multi-platform App UI」(.NET MAUI)を発表

 米Microsoftは5月19日(現地時間)、開発者向けオンラインカンファレンス“Build 2020”で「.NET Multi-platform App UI」(.NET MAUI)を発表した。「.NET Core」と「Mono/Xamarin」を1つのベースクラスライブラリ(BCL)とツールチェーン(SDK)に統合し、.NETプラットフォームの統一を図る。

 「.NET MAUI」の内実は、今月で6年目を迎えるクロスプラットフォーム開発ツールキット「Xamarin.Forms」だ。「Xamarin.Forms」はオープンソースのユーザーインターフェイス(UI)フレームワークで、Android、iOS、Windowsに対応するネイティブアプリケーションを1つのソースコード(C#/XAML)から作成できる。この実績のある「Xamarin.Forms」をベースに、いくつかの要素を加えたものが「.NET MAUI」となるようだ。Windowsでは.「NET Framework」、iOS/Androidでは「Mono」と別れていた.NETの実装が「.NET Core」に統一される点や、これまで開発ターゲット(Windows、iOS、Android……)ごとに分かれていたソースコードやリソースの管理が統一され、単一のプロジェクト、単一のコードベースで開発できる点が魅力的といえる。

「Xamarin.Forms」と「.NET MAUI」の比較

 さらに「.NET MAUI」はUIの実装方法として、従来からある「XAML」(XMLベースのUI定義言語)を用いた“MVVM”(Model/View/ViewModel)パターンに加え、「Flutter」などで用いられている“MVU”(Model/View/Update)パターンが新たにサポートされる。

C#/XAMLで記述したカウントアップの例(MVVMパターン)
C#だけで記述したカウントアップの例(MVUパターン)

 “MVU”パターンはC#言語でUIを記述可能で、状態の遷移が一方向に限定され管理がシンプルになるほか、コードの変更をデバッグ中のアプリへ即時反映する“ホットリロード”開発に向いているという。

“MVU”パターン“- Beginning Elm”より引用

 「.NET MAUI」は、今年後半が予定されているLTS(長期サポート)リリース「.NET 6」をターゲットに開発が進められるとのこと。年内にもプレビュー版がお披露目されるはずだ。一般提供は2021年11月が見込まれている。

 「Xamarin.Forms」の開発はそれまで継続され、今夏には「Xamarin.Forms 5.0.0」がリリースされる(執筆時現在の最新安定リリースは「Xamarin.Forms 4.6.0」)。その後は「.NET 6」「.NET MAUI」へ統合されるが、6週間ごとの開発サイクルはそのまま維持されるとのこと。また、「Xamarin.iOS」と「Xamarin.Android」も「.NET for iOS」「.NET for Android」として「.NET 6」の一部になる。