.NET MAUI for .NET 7 の新機能

.NET 7 は .NET 6 の後継であり、統一性、モダンさ、シンプルさ、速度に重点を置いています。 Xcode や Android SDK Tools などの基になる外部依存関係を操作するため、.NET マルチプラットフォーム アプリ UI (.NET MAUI) サポート ポリシーは、.NET および .NET Core サポート ポリシーとは異なります。 詳細については、「.NET NAUI のサポート ポリシー」をご覧ください。

この記事では、.NET MAUI for .NET 7 の新機能を一覧で説明し、各項目のより詳細な情報へのリンクを示します。

.NET 7 の新機能については、「.NET 7 の新機能」をご覧ください。

新しい機能

.NET MAUI for .NET 7 では、主要なフィードバックの問題に対処し、次の新機能が導入されています。

  • Map コントロールは、マップを表示および注釈付けするためのクロスプラットフォーム ビューです。 Map コントロールは各プラットフォームのネイティブ マップ コントロールを使用し、Microsoft.Maui.Controls.Maps NuGet パッケージで提供されます。 詳細については、「マップ」をご覧ください。
  • TwoPaneView コントロールは折りたたみ式デバイス用のコンテナー コントロールであり、サイドバイサイドまたは上から下のいずれかの使用可能なスペースにコンテンツのサイズ設定と配置を行う 2 つのビューを提供します。 このコントロールは、Microsoft.Maui.Controls.Foldable NuGet パッケージによって提供されます。
  • PointerGestureRecognizer クラスはポインター ジェスチャ認識を実行し、マウス ポインターがビュー内に入り、終了し、移動するタイミングを検出します。 詳細については、「ポインター ジェスチャの認識」をご覧ください。 .NET MAUI は、ビューの上にマウス カーソルを置いたときにビューの外観を変更できる PointerOver 表示状態も定義します。 詳細については、「表示状態」をご覧ください。
  • Window クラスは追加のプロパティを定義し、ウィンドウをデスクトップ プラットフォーム上に配置およびサイズ設定できるようにします。 詳細については、「.NET MAUI Windows」をご覧ください。
  • ユーザーがビューにポインターを置くと、ビューのヒントを表示できます。 詳細については、「ヒントの表示」をご覧ください。
  • Mac Catalyst と Windows では、コンテキスト メニューは Element の派生コントロールに追加できます。 詳細については、「コンテキスト メニューの表示」をご覧ください。
  • メニュー バーには区切り記号を含めることができます。これは、メニュー内の項目を区切る水平線です。 詳細については、「メニュー バーの表示」をご覧ください。
  • iOS ライフサイクル イベントが発生した場合に応答して、追加の .NET MAUI デリゲートが呼び出されます。 詳細については、「アプリのライフサイクル」をご覧ください。
  • iOS および Mac Catalyst 上の WebView の基になるネイティブ コントロールは、WKWebViewConfiguration オブジェクトを使用して構成できます。 詳細については、「iOS および Mac Catalyst でネイティブ WebView を構成する」をご覧ください。 iOS/Mac での WebView 構成

さらに、MessagingCenter は非推奨となり、CommunityToolkit.Mvvm NuGet パッケージWeakReferenceMessenger に置き換えられました。

パフォーマンス

パフォーマンスは、.NET 7 の .NET MAUI の主な焦点です。

  • Android では、起動時のパフォーマンスが向上しました。
  • iOS では、アプリケーションのサイズが縮小されました。
  • ビューのレンダリング パスが最適化されました。
  • CollectionView でのスクロール のスムーズさに影響を与える多くの問題が対処されています。

詳細については、「.NET MAUI の.NET 7 のパフォーマンスの向上」をご覧ください。

.NET 6 からのアップグレード

.NET 6 から .NET 7 にプロジェクトをアップグレードするには、 .csproj ファイルを開き、ターゲット フレームワーク モニカー (TFM) を 6 から 7 に変更します。 次の例は、.NET 6 プロジェクトの TFM を示しています。

<TargetFrameworks>net6.0-ios;net6.0-android;net6.0-maccatalyst;net6.0-tizen</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows')) and '$(MSBuildRuntimeType)' == 'Full'">$(TargetFrameworks);net6.0-windows10.0.19041</TargetFrameworks>

次の例は、.NET 7 プロジェクトの TFM を示しています。

<TargetFrameworks>net7.0-ios;net7.0-android;net7.0-maccatalyst;net7.0-tizen</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows')) and '$(MSBuildRuntimeType)' == 'Full'">$(TargetFrameworks);net7.0-windows10.0.19041</TargetFrameworks>

関連項目