個人的なメモ

Tomohiro Suzuki @hiro128_777 のブログです。Microsoft MVP for Developer Technologies 2017- 本ブログと所属組織の公式見解は関係ございません。

ASP.NET Core Update(.NET 6)の整理(随時更新中)

.NET 6 の RC 2 がリリースされました。ASP.NET Core についても Preview 1 から RC 2 まで段階的に情報や新機能がリリースされており、情報が分散して探しにくいので重要な更新情報を整理してみました。
  
公式情報も更新されているため、内容は随時更新中です。
 
.NET 6 の更新情報は以下をご覧ください。
hiro128.hatenablog.jp
 
 

 
 

Minimal API の導入(.NET 6 Preview 4)

公式情報:
Introducing minimal APIs
関連記事:
hiro128.hatenablog.jp
 

Minimal API のアップデート(.NET 6 RC 2)

Minimal API に対し、以下のいくつかのアップデートがあります。
公式情報:Minimal API updates
 

パラメータのバインディングの対応強化(.NET 6 RC 2)

  • TryParseBindAsync に継承されたメソッドに対するサポートを追加
  • パブリックの TryParseBindAsync メソッドが正しい形式かどうかをチェックする機能が追加
  • これらのメソッドに間違った構文を使っている場合エラーがスローされるようになった
  • カスタムタイプにルート、ヘッダ属性、およびクエリ文字列から値をバインドしたい場合、カスタムタイプに静的な TryParse メソッドを追加することができる

公式情報:Parameter Binding
 

OpenAPI の対応強化(.NET 6 RC 2)

  • Accepts() 拡張メソッドや [Consumes(typeof(Todo), "application/json", IsRequired = false)] 属性を使って、リクエストボディが必須かどうかを記述できる
  • Accepts 拡張メソッドとConsumes 属性で、生成された open-api docs に対して、Todo タイプと application/json の両方を表現することができる。

公式情報:OpenAPI
 

ソースコードの分析(.NET 6 RC 2)
  • ルートハンドラの問題を素早く発見したり、ミドルウェアの設定ミスを警告したりするためのアナライザを追加
  • アナライザは、WebApplicationBuilder のミドルウェアの順序を検証し、誤ったミドルウェアの構成や順序が検出された場合に警告する
  • IActionResult を実装した型がルートハンドラから返された場合に検出し、結果が意図せずに JSON としてシリアル化された場合に警告する機能を追加

公式情報:Source Code Analysis
 

APIの名前変更(破壊的変更)(.NET 6 RC 2)

  • 意図を適切に説明するために以下のAPIの名称を変更した。
    • DelegateEndpointConventionBuilder -> RouteHandlerBuilder
    • OpenApiDelegateEndpointConventionBuilderExtensions -> OpenApiRouteHandlerBuilderExtensions
    • DelegateEndpointRouteBuilderExtensions は、既存のEndpointRouteBuilderExtensions と統合した。

(上記の変更により、DelegateEndpointRouteHandlerに置き換え、クラス名のConventionを削除した)

公式情報:Breaking Changes (APIs Renames)
 

非同期ストリーミング(.NET 6 Preview 4)

  • コントローラのアクションからレスポンスのJSONフォーマッタに至るまで、非同期ストリーミングがサポートされるようになった
  • アクションからIAsyncEnumerableを返しても、レスポンスの内容が送信される前にメモリにバッファリングされなくなった
  • 非同期に列挙できる大規模なデータセットを返す際のメモリ使用量が削減される

公式情報:Async streaming
 

HTTP logging ミドルウェア(.NET 6 Preview 4)

  • HTTPリクエストとHTTPレスポンスの情報(ヘッダーとボディ全体を含む)を記録する、新しい組み込みミドルウェア
  • HTTP logging は以下のログを提供する
    • HTTP リクエスト情報
    • 共通のプロパティ
    • ヘッダー
    • ボディ
    • HTTP レスポンス情報

公式情報:HTTP logging middleware