.NET 11 Preview 2が性能向上、マッピング改善、ネイティブOpenTelemetryサポートを提供
Microsoftは.NET 11 Preview 2をリリースし、ASP.NET CoreへのネイティブOpenTelemetryトレーシング、.NET MAUIのマップ制御とバインディングの改善、Blazor TempDataサポート、新規Web Workerプロジェクトテンプレート、およびランタイム・SDK・ライブラリ全体のパフォーマンス向上を特徴としている。
キーポイント
ネイティブOpenTelemetryサポート
ASP.NET CoreにネイティブなOpenTelemetryトレーシングが導入され、分散トレーシングとアプリケーション監視の実装が容易になる。
.NET MAUIの機能強化
マップコントロールの大幅な改善と高速なバインディングが実装され、クロスプラットフォームモバイル・デスクトップアプリ開発の生産性が向上する。
BlazorとWeb Workerの新機能
BlazorにTempDataサポートが追加され、新規Web Workerプロジェクトテンプレートが提供されることで、Webアプリケーション開発が強化される。
広範なパフォーマンス向上
ランタイム、SDK、ライブラリ全体でパフォーマンス改善が行われ、.NETアプリケーションの実行効率が全体的に向上する。
影響分析・編集コメントを表示
影響分析
このリリースは、.NET開発者にとって実用的な価値が高く、特に分散システムの監視(OpenTelemetry)とクロスプラットフォーム開発(MAUI)の分野で開発体験を向上させる。ただし、これは既存フレームワークの進化版であり、業界を変革するような根本的な革新ではない。
編集コメント
.NETエコシステムの定期的なアップデートであり、開発者にとっては実用的な改善点が多いが、AI/機械学習分野への直接的な言及はない。
先週、Microsoft は .NET 11 の2回目のプレビュー版をリリースし、開発プラットフォーム全体にわたる幅広い改善をもたらしました。報告によると、今回のリリースにはランタイム、SDK、ライブラリ、ASP.NET Core、Blazor、.NET MAUI、F# などへの更新が含まれています。このプレビューは現在利用可能であり、発表された通り、これはプラットフォームの継続的な開発サイクルにおける重要な前進を意味しています。
今回のリリースでは、ASP.NET Core にネイティブ OpenTelemetry トレースサポートが追加されました。フレームワークは now HTTP サーバーアクティビティに直接 OpenTelemetry セマンティック属性を追加するため、開発者は標準的なトレースデータを収集するために別々のインストルメンテーションライブラリを必要としなくなりました。リクエストメソッド、URL パス、レスポンスステータスコード、サーバーアドレスなどの属性は、現在フレームワーク自体によって自動的に設定されます。
Blazor サーバーサイドレンダリングでは、TempData がサポートされるようになりました。これにより、HTTP リクエスト間でデータを保持できるようになり、フラッシュメッセージ、リダイレクトフロー、ワンタイム通知に有用です。この機能は自動的に登録され、デフォルトで ASP.NET Core データ保護機構を使用して暗号化されます。
また、新しい dotnet new webworker プロジェクトテンプレートも導入されました。これにより、Blazor WebAssembly アプリケーションが重い計算処理を Web Worker にオフロードできるようになり、UI スレッドをブロックすることなく、要求の多い操作中もアプリケーションの応答性を維持できます。
Kestrel の HTTP/1.1 リクエストパーサーは、不正なリクエストに対して例外をスローしないように再設計されました。前述の通り、ポートスキャンや設定ミスのあるクライアントなど、不正なトラフィックが多いシナリオでは、スループットが 20〜40 パーセント向上したとの報告があります。
.NET MAUI の Map コントロールはこのプレビュー版で大きな注目を集めています。開発者は now、簡略化された構文を使用して XAML で直接地図座標を定義できるようになり、以前必要だった冗長なマークアップが不要になりました。また、新しい Map.Region バインド可能プロパティにより、開発者は宣言的に地図の初期領域を設定できるようになりました。
ポリゴン、ポリライン、円などの地図要素は、新しい IsVisible プロパティと ZIndex プロパティを通じて表示切り替えや描画順序制御をサポートするようになりました。これにより、より動的でインタラクティブな地図オーバーレイが可能になります。また、Android と iOS の両方で地図要素のクリックイベントもサポートされるようになり、追加の回避策なしにリッチなユーザーインタラクションの実現への道が開かれました。
.NET MAUI におけるバインディングパフォーマンスも大幅に改善されました。デリゲートキャッシュ、バインドモードキャッシュ、不要な型変換の削除により、TypedBinding と SourceGeneratedBinding は、1 操作あたりのメモリ割り当てが約 50 パーセント減少し、速度は約 29 パーセント向上したと報告されています。前述の通り、空文字列を Nullable な値型にバインドする際に長年存在していたバグも修正され、入力フィールドがクリアされたときにバインド先プロパティが正しく null に設定されるようになりました。
C# と対照的に、Preview 2 では F# プログラミング言語に対していくつかの注目すべき追加機能が導入されました。言語は #elif プリプロセッサディレクティブをサポートするようになり、深くネストされた条件付きコンパイルブロックが必要なくなります。また、コアコレクション型全体に新しい partitionWith 関数が追加され、説明されているように、異なる要素型の 2 つのグループにコレクションを分割できるようになりました。
新しいオーバーロード解決キャッシュ機構により、テストベンチマークでは型チェック時間が 6.5 秒から 2.9 秒に短縮される見込みです。コアコレクションモジュールに属する全 462 関数には、IDE のツールチップで直接確認できる Big-O 計算量に関する注釈もすべて追加されました。
今回のリリースにおけるその他の変更点としては、System.Text.Json 向けの汎用 GetTypeInfo、tar アーカイブ形式の選択機能、および Matrix4x4.GetDeterminant における 15% のパフォーマンス向上が報告されています。
興味のある読者のために、完全なリリースノートは公式 .NET ブログと dotnet GitHub リポジトリで公開されています。
著者について
アルミル・ヴーク
👋 .NET の最新情報については、私をフォローしてください!私はマイクロソフト関連のイベントやユーザーグループの会議で頻繁に登壇しています。余暇にはチェスを楽しんだり、自然の中でランニングをしたり、ブログ記事を書いたり、StackOverflow や MSDN フォーラムでコミュニティ支援を行ったり、オープンソースプロジェクトに貢献したり、NGO のプログラミング関連イベントでインストラクターを務めたりするのが大好きです。
ソフトウェア開発、特に.NET プラットフォームに全精力を注ぎ、C# と ASP.NET Core を用いて Web アプリケーションを開発し、Xamarin ツールを用いてモバイルアプリの開発を行っています。
幼い頃からプログラミングに心から魅了されています。
原文を表示
Last week, Microsoft released the second preview of .NET 11, bringing a wide range of improvements across its development platform. As reported, the release covers updates to the runtime, SDK, libraries, ASP.NET Core, Blazor, .NET MAUI, F#, and more. The preview is available now, and as stated, it represents a significant step forward in the platform's ongoing development cycle.
ASP.NET Core gains native OpenTelemetry tracing support in this release. The framework now adds OpenTelemetry semantic attributes directly to HTTP server activity, meaning developers no longer need the separate instrumentation library to collect standard tracing data. Attributes such as request method, URL path, response status code, and server address are now populated automatically by the framework itself.
Blazor Server-Side Rendering now supports TempData, allowing data to persist across HTTP requests, which is useful for flash messages, redirect flows, and one-time notifications. The feature is registered automatically and uses ASP.NET Core Data Protection for encryption by default.
A new dotnet new webworker project template has also been introduced, allowing Blazor WebAssembly applications to offload heavy computations to a Web Worker without blocking the UI thread, keeping applications responsive during demanding operations.
Kestrel's HTTP/1.1 request parser has been reworked to avoid throwing exceptions on malformed requests. As stated, throughput improvements of 20 to 40 percent have been reported in high invalid-traffic scenarios such as port scanning or misconfigured clients.
The Map control in .NET MAUI has received significant attention in this preview. Developers can now define map coordinates directly in XAML using a simplified syntax, removing the need for verbose markup that was previously required. A new Map.Region bindable property also allows developers to set the map's initial region declaratively.
Map elements such as polygons, polylines, and circles now support visibility toggling and draw-order control through new IsVisible and ZIndex properties, enabling more dynamic and interactive map overlays. Click events on the map elements are also now supported on both Android and iOS, opening the door for richer user interaction without additional workarounds.
Binding performance has also improved considerably in .NET MAUI. TypedBinding and SourceGeneratedBinding are reported to be approximately 29 percent faster with 50 percent less memory allocation per operation, thanks to delegate caching, binding mode caching, and the removal of unnecessary type conversions. As described, the long-standing bug affecting empty-string binding to nullable value types has been resolved, correctly setting the bound property to null when an input field is cleared.
In contrast to C#, Preview 2 brings several notable additions to the F# programming language. The language gains support for the #elif preprocessor directive, eliminating the need for deeply nested conditional compilation blocks. A new partitionWith function has been added across core collection types, allowing as-explained collections to be split into two groups of different element types.
A new overload resolution caching mechanism is reported to reduce type-checking time from 6.5 seconds to 2.9 seconds in tested benchmarks. All 462 functions across core collection modules now also include Big-O complexity notes visible directly in IDE tooltips.
Other changes in this release include a generic GetTypeInfo for System.Text.Json, tar archive format selection, and, as reported 15 percent performance improvement to Matrix4x4.GetDeterminant.
For interested readers, the full release notes are available on the official .NET blog and the dotnet GitHub repository.
About the Author
Almir Vuk
👋 Follow me for more .NET content! I am a frequent regional and international speaker at Microsoft-related events and User Group meetings. While spending my free time, I love to play chess, run in nature, write blog posts, help the community on StackOverflow and MSDN forums, contribute to open source projects or be an instructor at NGO programming-related events.
Completely dedicated to Software Development, mostly on the .NET platform, crafting apps using C# and ASP.NET Core for web and Xamarin tools for mobile development.
Truly in love with programming since my childhood days.
Show moreShow less
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み