マイクロソフト、マルチプラットフォームUIを実現する「.NET Multi-platform App UI」(MAUI)を実際にデモ。単一コードからWebとWindowsアプリを生成
マイクロソフトは2月26日にオンラインイベント「.NET Conf 2021 - Focus on Windows」を開催しました。
イベントの中で同社は、マルチプラットフォームUIを実現するフレームワーク「.NET Multi-platform App UI」(以下、.NET MAUI)を用いて開発したアプリケーションをデモし、実際に単一コードから生成されたWebアプリケーションとWindowsネイティブなデスクトップアプリケーションを披露しました。
.NET 6に組み込まれる「MAUI」はマルチプラットフォームUIを実現
.NET MAUIは、今年11月に正式リリース予定の「.NET 6」に組み込まれる予定のマルチプラットフォーム対応UIフレームワークです。
.NET MAUIでアプリケーションを開発すれば、単一のソースコードでWindows、macOS、iOS、Androidそれぞれのネイティブユーザーインターフェイスを実現できます。

参考:マイクロソフト「.NET 6」初めてのプレビュー版リリース。Xamarin統合、マルチプラットフォームUI、Blazorでデスクトップアプリ、Apple M1ネイティブなど
BlazorもMAUIを採用
また、同じく.NET 6で登場予定の「Blazor hybrid desktop app」も、この.NET MAUIをベースにしています。

Blazor hybrid desktop appは、C#など.NETテクノロジーでWebアプリケーションを記述できるBlazorフレームワークの新機能です。
Blazorには、サーバサイドでアプリケーションのコードが実行される「Blazor Server」とWebブラウザ側にWebAssemblyで実装されたフレームワークが用意され、その上でコードが実行される「Blazor WebAssembly」がすでに登場しています。
新たに登場するBlazor hybrid desktop appは、いわゆるハイブリッドアプリ、つまりHTMLやJavaScriptなどのWeb技術を用いてアプリケーションを実装し、それをElectronのようなWebViewコンポーネントの上で実行することでネイティブアプリのような使い勝手を実現するのと似た仕組みで、デスクトップアプリケーションを実現します。
単一のソースコードからWebアプリとWindowsデスクトップアプリを生成
今回のオンラインイベントでは、この.NET MAUIを用いて単一のソースコードから共通のUIを備えたWebアプリケーションとWindowsネイティブなデスクトップアプリケーションの生成が披露されました。
下の画面は、Blazorを用いて開発されたWebアプリケーション。Webブラウザ上で実行されています。

そして同じソースコードから生成された、Windowsネイティブなデスクトップアプリケーションも実行されました。

マイクロソフトは.NET 6でXamarinも.NETに統合予定です。これにより.NETは、デスクトップ、Web、モバイルなどあらゆるプラットフォームに対応するマルチプラットフォーム対応のユニバーサルなフレームワークになります。

そしてロジック部分のコードの共通化はもちろん、.NET MAUIを用いることでUI部分のコードも共通化できるようになれば、.NETは本当の意味でのユニバーサルなフレームワークに近づくことになるでしょう。
しかし本当に単一コードでWindows、Web、iOS、Androidといった複数のプラットフォームにまたがるユーザーインターフェイスを表現できるのか、まだ懐疑的な声は多いと思われます。
マイクロソフトは今後もそうした懐疑的な視線に対して、実際に動作するデモやコードを示していくことで応えていくことになるのでしょう。
関連記事
あわせて読みたい
「Red Hat OpenShift 4.7」正式リリース。既存の仮想マシンをKubernetes管理下へ移行するツール提供、vSphere上のWinowsコンテナをサポート
≪前の記事
Cloubhouseが流行った理由/内製化のワナと抜け出し方/IntelのCEOにゲルシンガー氏。クラウド業界の出来事とその背景を、サーバーワークス大石氏が解説[PR]