Microsoft は、Multi-platform App UI (MAUI) への Windows デスクトップの追加を含む一連のアップデートを含む、次期 .NET 6 フレームワークのプレビュー 3 を出荷しました。
統合フレームワークの最初の長期サポートバージョンである.NET 6.0は、11月に完成する予定です。.NET 5.0と同様に、.NET Coreという名称は廃止されましたが、Windows専用の.NET Frameworkとは区別されます。Windows専用の.NET Frameworkは引き続きサポートされますが、それ以上の開発は行われません。
.NET 6.0では、サポート対象プラットフォームにAndroid、iOS、Mac、Windows ARM64が追加され、モバイルとMacのGUIサポートはXamarin Formsの統合により実現しました。.NET 5.0は2020年11月にリリースされましたが、サポート期間が短いため、.NET 6.0の方がより重要なリリースとなる可能性があります。
Xamarin Formsを使用すると、開発者はiOS、Android、Windows 10 UWP(ユニバーサルWindowsプラットフォーム)をターゲットにできますが、Windowsデスクトップアプリケーションはターゲットにできません。Windows Presentation Foundation(WPF)をターゲットにする計画は開始されましたが、完了には至りませんでした。一方、.NET MAUIはProject ReunionとWinUI 3をターゲットにできます。WinUI 3は、MicrosoftがWindows 10の将来のネイティブユーザーインターフェースフレームワークと見なしているものです。
最新のプレビューでは Project Reunion が追加されており、プリンシパル プログラム マネージャーの David Ortinau 氏は「これで Windows が Android、iOS、macOS にターゲット プラットフォームとして加わりました」と述べています。
WinUI 3 をターゲットとした MAUI サンプル
更新された MAUI プレビューには、ネイティブ プラットフォームのライフサイクル イベント (アプリケーションの起動時など) に接続する新しい方法、改善されたグリッド レイアウト、新しいセマンティック プロパティによるアクセシビリティの改善も追加されています。
Project Reunionはデスクトップアプリケーションとして動作しますが、UWPに近いルック&フィールを備えています。また、2018年のアップデート以降、Windows 10のみに対応しているため、より幅広いWindowsバージョンをターゲットにしたい開発者から不満の声が上がっています。「Windows 7、Windows 8、Windows 8.1は、現時点ではまだ市場の約20%を占めています」とある開発者は述べています。
.NET 6.0 プレビュー 3 には、MAUI 以外にも多くの機能があります。プログラム マネージャーの Richard Lander 氏は、プレビューには、構造体の値を更新するための安全ではないが高速な API、16 ~ 38 パーセント向上したインターフェイス キャスト パフォーマンス、いくつかのコード生成の改善など、いくつかの「低レベルのパフォーマンス機能」が含まれていると述べています。
ASP.NET Coreも同様にパフォーマンスが向上しており、特にSignalR(リアルタイム通信)とSignalRを使用するBlazor ServerのJavaScriptライブラリが大幅に縮小されました。多くのパフォーマンス向上は、マルチプレイヤーオンラインゲーム「Illyriad」の共同創設者である、マイクロソフト社外の貢献者であるBen Adams氏によるものです。
また、.NET Hot Reloadの初期サポートも追加されました。これは、dotnet watchというツールを使用して、Webアプリケーションを再起動せずにコード変更を適用する機能です。また、Windows WebサーバーであるIISのシャドウコピーも新たにサポートされ、アプリケーションの実行中にアプリケーションバイナリを置き換えることができます。
デスクトップ アプリケーション用の BlazorWebView コントロール
さらに、Microsoftは、Blazor Webコントロールをデスクトップアプリケーションに組み込む「ハイブリッドデスクトップアプリ」の計画を進展させています。このプレビューでは、開発者は.NET 6.0上で動作するWPFおよびWindows FormsアプリケーションにBlazorWebViewコントロールを追加できます。.NET MAUIのサポートは、今後のプレビューで予定されています。Microsoftはこのアプローチを、既存のデスクトップアプリケーションをWebアプリケーション、つまりクロスプラットフォームデスクトップアプリケーションへと進化させる手段として宣伝しています。Blazorを使用すると、HTML5コントロールとCSSスタイルをJavaScriptではなくC#でプログラミングできます。
BlazorWebViewコントロールを使用すると、開発者はWPFおよびWindows FormsデスクトップアプリケーションにBlazor Webコンポーネントを埋め込むことができ、MAUIのサポートも約束されています。
開発者 Jorge Arteiro 氏のサンプルを使って、WPF と BlazorWebView を組み合わせたハイブリッドアプリケーションを実行しました。動作はしましたが、.NET 6.0 のデスクトップで実行されるアプリケーションの場合、Web テクノロジ経由で提供される別の .NET ランタイムで実行される C# のチャンクを埋め込むのは理にかなっているのでしょうか?
ランダー氏は、ホットリロードはWPF、Windowsフォーム、MAUIなど、あらゆる種類の.NETアプリケーションに導入されると述べた。機能面では「.NET 6リリースはほぼ半分が経過した」と付け加えた。®