CoreCLR replaces Mono in .NET MAUI

Preview 6から、CoreCLRは.NET MAUIモバイルアプリ向けの唯一のランタイムとなりました。Monoは廃止されました。

実際、iOSおよびMac CatalystアプリはMono時代よりも高速化されています。Androidは起動時間とアプリサイズでMonoと約10%以内の差に収まっており、引き換えに得られるフル.NET診断ツールを考慮すれば妥当なトレードオフです。モバイルデバイス上でdotnet-tracedotnet-countersが利用可能になりましたが、これはMonoでは不可能でした。Android向けNativeAOTの基盤も本リリースで導入されています。

デバッグとホットリロードはVisual StudioおよびVS Codeの両方で動作しますが、チームがまだ対応を進めているいくつかの荒削りな部分が残っています。

.NET MAUIアプリをメンテナンスしている場合は、Preview 6でのテストを今すぐ行ってください。チームはGAリリース(11月予定)前に、パフォーマンスベンチマーク、パッケージサイズ、回帰に関する報告を特に求めています。


.NET MAUI improvements

ランタイムの切り替え以外にも、本リリースではいくつかの利便性向上機能が追加されています。

Mapsにいくつかの便利な更新がありました。密集した場所向けの自動ピンクラスタリング、ImageSource経由のカスタムマーカー画像、Google Maps JSONスタイルのサポートです。

AnimationsがCancellationTokenを受け付けるようになり、他の実行中のアニメーションをキャンセルせずに個別のアニメーションを停止できます。古い非同期メソッドであるFadeTo()RotateTo()は非推奨となりました。

Gesturesに新しいLongPressGestureRecognizerが追加され、ワークアラウンドなしで長押し検出が容易になりました。

BoxViewにグラデーションをサポートするFillプロパティが追加されました。

App size: CSSスタイルシートを使用しないアプリは、公開時に自動的にそのインフラストラクチャが削除されます。

Android controlsがデフォルトでMaterial 3スタイルを採用し、追加設定なしで一貫した外観を提供します。

Windows向けCollectionView2も本リリースに含まれています。


Runtime and performance

ランタイム側では、Preview 6にruntime-asyncのパフォーマンス改善とJITの改善が含まれています。NativeAOTのインターフェイスディスパッチが高速化されました。また、低レベル数値処理を行う開発者向けに新しいSIMDレーン構築APIも追加されています。


ASP.NET Core and Blazor

ここではいくつかの注目すべき追加機能があります。

  • Automatic CSRF protectionがASP.NET Coreに組み込まれ、手動で設定する必要がなくなりました。
  • OpenAPI 3.2が新しいデフォルトとなりました。
  • Blazor Virtualizeにスクロール-to-itemサポートが追加されました。
  • SignalRに認証リフレッシュ機能が追加され、トークンが期限切れになる長時間接続で役立ちます。

EF Core

EF CoreはLINQクエリ変換の改善と制約のない外部キー関係のサポートを獲得し、これまで生SQLが必要だった一部のエッジケースに対応しました。


Other additions

  • Stream adapters for memory and text
  • Async validation via DataAnnotations
  • System.Text.Json support for C# union types
  • dotnet test now supports xUnit v3 and NUnit options
  • F# has several language improvements in this release

GAリリースは11月を予定しています。.NET MAUIをご利用の場合は、今テストを行い、問題を報告することで、チームがGA前に問題に対処する時間を最大限に確保できます。