【リンク多数】.NET 7 の ASP.NET Core ロードマップ

【リンク多数】.NET 7 の ASP.NET Core ロードマップ

.NET 7 バージョンでサーバーに追加する予定の機能のハイライトをいくつか紹介します。

最終更新 2022/02/19 18:05
追逐时光者
読了目安 5 分
カテゴリ
ASP.NET Core
タグ
.NET C# ASP.NET Core

文章来源:https://github.com/dotnet/aspnetcore/issues/39504

转载自知乎:https://zhuanlan.zhihu.com/p/469359820

各リストはリンクになっています。概要をご確認いただき、興味があれば上記の原文またはサイトの同期記事リンクをクリックしてください。WeChat の公式アカウントではリンクを貼りません(貼ってもクリックできないため)。

ASP.NET Core ランタイム

サーバー - 機能

以下は、.NET 7 リリースでサーバーに追加する予定の機能のハイライトです。

  • 出力キャッシュのサポート追加 #27387
  • Kestrel+YARP を使用したポート共有 #39640
  • ARM64 向け ANCM #39281
  • HTTP/2 経由の WebSocket サポートを Kestrel に追加 #7801
  • Kestrel の OCSP ステープリングサポート #4762
  • Kestrel のレート制限 - 受付接続にバックプレッシャーを適用する設計メカニズム #13295
  • [テーマ] .NET Framework アプリケーションの .NET Core への移行サポート #40078

サーバー - パフォーマンス

.NET 6 はサーバーパフォーマンスの重要なバージョンであり、.NET 7 では以下のようにさらなる改善を目指しています。

  • 接続パフォーマンスの改善 #39846
  • サーバーメモリプールの縮小を許可 #27394
  • HTTP.sys サーバー向けカーネル応答バッファリングの有効化 #14455
  • Channels を使用した HTTP/2 パフォーマンス向上 #30235

HTTP/3 サポート

HTTP/3 サポートは .NET 6 でプレビュー機能として提供されました。.NET 7 では完成させ、サポート対象機能とすることを目指しています。

  • HTTP/3: UseHttps 構成 #34858
  • Http3 静的応答ヘッダー圧縮の実装 #33980
  • HTTP/3 の動的テーブルサポート #28433
  • HTTP/3: 非最終的な h3 ALPN の削除 #35032
  • HTTP/3: .NET 7 で Kestrel でデフォルト有効化 #36486

ASP.NET Web フレームワーク

Minimal APIs

  • グループ化による最小 API ルーティングの改善 #36007
  • エンドポイントフィルターのサポート追加 #37853
  • [エピック] .NET 7 の OpenAPI #37098
  • Minimal API のカスタムパラメータバインディング機能の拡張 #35489
  • 最小エンドポイントへのアンチフォージェリ (anti-csrf) サポート追加 #38630
  • 個別エンドポイント/操作へのセキュリティスキーム生成 #39761
  • リクエスト本文の Stream/ReadOnlySequence<byte> または ReadOnlyMemory<byte>/ReadOnlySpan<byte> へのバインドサポート #38153
  • 最小操作/コードへのルーティングにおいて JsonOptions を構成するためのより良い API の検討 #39226
  • IResult メソッドのテスト容易性向上 #37502
  • Minimal API がクエリまたはヘッダーから StringValues へのバインドをサポートしない #36726
  • 最小操作 - クエリ文字列バインディングからのメソッドシグネチャでの配列サポート #32516
  • ASP.NET Core 全体での ProblemDetails 使用の不整合 #32957
  • 最小 API の認証構成は非常にシンプルで特徴的であるべき #34545
  • 最小 API の設計検証 #30666
  • [Epic]: Minimal APIs + MVC #36637 のアナライザー(開発者体験の改善)

SignalR

  • クライアントからの返り値呼び出しサポート #5280
  • SignalR の認証トークン更新 #5297
  • [Epic] SignalR は C++ クライアントを持つべき #5301(既存の C++ クライアントの改善)

Rate Limiting

  • 非ジェネリックレート制限器(固定ウィンドウ、スライディングウィンドウ、トークンバケット、並行制限器)の実装完了 #37381
  • ジェネリックレート制限 API の設計 #37383
  • aspnetcore でのレート制限ミドルウェアの実装 #37384
  • 現在の aspnetcore 並行制限器ミドルウェアを新しい抽象化と実装で再設計 #38306
  • Yarp によるレート制限実装 #37387
  • Kestrel のレート制限 - 受付接続にバックプレッシャーを適用する設計メカニズム #13295
  • レート制限の抽象化/API を dotnet/runtime に移動 #37385

gRPC (dotnet-gRPC)

  • [EPIC] gRPC JSON トランスコーディング grpc/grpc-dotnet#1583 (gRPC/HTTP)

Orleans

  • POCO Grains の実装 orleans#7351
  • グレイン永続化のための設定可能なシリアライザ orleans#7471
  • SMS プロバイダーの削除 orleans#7475
  • ステートレスサービス抽象化の実装 orleans#7469
  • [エピック]: Orleans でのワークフローのプリミティブとしての実装 orleans#7487
  • [エピック]: Orleans クライアントの Azure へのデプロイ体験改善 orleans#7486
  • ストリーム構成抽象化の簡素化 orleans#7473
  • aspnetcore 向け Orleans テンプレート追加 orleans#7479

ASP.NET Web UI

Blazor Hybrid

  • maui を使用した Blazor で <InputSelect> または <select> が使用不可 maui#4325
  • Blazor デスクトップ原則: グローバル対応 maui#2532
  • Blazor Desktop テスト基盤と計画 maui#2543
  • 外部 URL を開く際の設定可能性サポート maui#4338
  • MAUI Blazor アプリケーションでホットリロードが機能しない maui#2527
  • Blazor デスクトップ: 認証サポート maui#2529
  • Blazor デスクトップ原則: セキュリティ maui#2540
  • Blazor デスクトップ原則: パフォーマンス maui#2531
  • Blazor デスクトップ原則: アクセシビリティ maui#2541
  • Blazor デスクトップ原則: DPI 認識 maui#2549
  • Blazor デスクトップ開発ツール有効化 maui#2542
  • ドキュメント: Blazor ハイブリッドチュートリアル/はじめに maui#3684
  • Blazor ハイブリッドプロジェクトテンプレート更新 maui#4127
  • [Blazor webview] blazor webview の例外処理 maui#4441

Razor Compiler

  • 型に追加制約がある場合、ジェネリック Blazor コンポーネントが型を正しく推論できない #25588
  • Razor コンパイラの global:: のより自由な使用への更新 #18757
  • 内部テレメトリで報告されたコンパイラクラッシュ問題 #38877
  • 内部テレメトリで報告されたコンパイラクラッシュ問題 #38878
  • 内部テレメトリで報告されたコンパイラクラッシュ問題 #38879
  • Blazor CascadingTypeParameter 問題 #38479
  • 5.0 アプリ向け SDK スナップショットテスト追加 #28489
  • コードブロックの上に閉じられていないフォームがあるとすべてが青色になる #27133
  • デザイン時/ランタイムで異なるコードを生成する Razor からの脱却 #30669
  • Razor エディターがタグが閉じられていないと報告する #30573
  • Razor 構文ツリーで所有者の特定に失敗する可能性 #36689

Blazor

  • 同一ドキュメントで複数の Blazor サーバー/WebAssembly アプリケーションを実行可能に #38128
  • NavigationManager の位置変更イベント公開 #14962
  • InvokeAsync(StateHasChanged) を呼び出すとページが既定のカルチャに戻る #28521
  • Web テンプレートのクリーンアップ手順の実行 #30162
  • 空の Blazor プロジェクトテンプレート #32832
  • ObjectGraphDataAnnotationsValidator / ValidateComplexTypeAttribute の同梱検討 #28640
  • カスタム要素サポートパッケージの製品化 #38447
  • Blazor のプリレンダリングと認証体験の改善 #27592
  • Blazor アプリケーションの一時停止と再開 #27576
  • Blazor HTTP エンドポイントからアクセスできない画像を表示するための画像要素 #25274
  • 設計案: get/set/after 修飾子のバインディング #39837
  • Blazor サーバーでの一時的な破棄可能オブジェクト解決のための設計 #26676
  • Blazor サーバーサイド Blazor 回線の一時停止と再開 #30344
  • 大きなバイナリデータ(ファイルやメディア)を扱うための専用コンポーネント #30290
  • サードパーティ資産管理ソリューションとの統合有効化 #38445
  • ホットリロード更新中にコンポーネントが受け取ったパラメータをリセットしない #31272
  • モデルバインディングとルーティングへの DateOnly および TimeOnly サポート追加 #34591
  • 他のシナリオへのより良い MSAL サポート #38122
  • Blazor Server で IHttpClientFactory を使用して HttpClient ベースアドレスを構成する方法 #25758
  • 回線ライフサイクルへのより多くの制御(回線アクティビティ監視、クライアント/サーバーからの終了機能) #30287
  • サーバーサイド Blazor: 回線退去のための API/拡張ポイント提供 #17866
  • 真のマルチスレッド(対応ブラウザ上で) #17730
  • browser-wasm 向け開発者が Web Crypto API を使用可能に runtime#40074
  • Mono メソッド本体置換の継続的改善 runtime#57365

MVC

  • EndpointRouting における IRouter.GetVirtualPath の代替 #23041
  • パラメータをキャプチャせずにルート一致を許可 #27996
  • 10進数フィールドのローカライズされた数値書式と間違った入力タイプ #6566
  • リンク生成の改善 #38121
  • LinkTagHelper はインラインスクリプトを使用すべきでない #14736
  • DI に存在する型に対する FromServices の暗黙的推論サポート追加 #39667
  • FromBody.AllowEmptyBehavior = Allow を null 可能性情報に基づいて推論 #39754
  • バインディングプリミティブとして TryParse をサポートする方法の検討 #39682
  • EmptyBodyBehavior.Allow は Content-Type が欠落している場合に許可すべき #36466
  • SkipStatusCodePagesAttribute は AuthorizeAttribute の前に実行されるべき #10317
  • ApiExplorer が同一アクションメソッド上の複数のルートを正しく処理しない #26234
  • FromServices を null 可能性情報に基づいてオプショナル推論 #39757
  • Razor Pages ComplexTypeModelBinder が "または、'YModel' コンストラクターで 'X' プロパティを null 非許容値に設定してください" の提案を処理できない #21916
さらに探索

関連読書

その他の記事