2026-07-25 migrationcsharpdotnet レガシーな C# コードベースでブロッキングな .Result/.Wait() 呼び出しを全面的な非同期へ移行する 既存の .NET コードベースから sync-over-async を取り除くための段階的な手順書です。アナライザーで棚卸しし、ThreadPool の枯渇を計測し、呼び出しチェーンを 1 本ずつ変換して、.NET 11 で件数をゼロまで削り込みます。
2026-07-25 migrationdotnetdotnet-11 .NET 11 で ILogger の文字列補間から構造化ログのメッセージテンプレートへ移行する $ 補間を使った ILogger 呼び出しを、メッセージテンプレートと [LoggerMessage] によるソース生成メソッドへ .NET 11 で置き換える手順: 何が壊れるか、CA2254 でコードベースを一掃する方法、JSON の State を検証する方法、ロールバックの手順。
2026-07-24 comparisoncsharpdotnet ASP.NET Core 11 のエンドポイントフィルター vs ミドルウェア: どちらを使うべきか ASP.NET Core 11 のための判断ガイド。ミドルウェアはハンドラーがバインドを行う前にすべてのリクエストで実行され、エンドポイントフィルターは一致したエンドポイントに対してのみ、バインドの後に実行され、型付き引数を見ることができます。比較表、それぞれを選ぶ場面、順序のルール、選択を強制する要点を含みます。
2026-07-24 comparisoncsharpdotnet C# の .Result vs .Wait() vs GetAwaiter().GetResult() vs await: どれを使うべきか await はほぼ常に正しい答えです。本当にブロックしなければならないときは、GetAwaiter().GetResult() が元の例外をスローするため .Result や .Wait() より優れています。.NET 11 と C# 14 のための判断マトリクスです。
2026-07-24 aspnetcoredotnet-11signalr SignalR クライアントが .NET 11 Preview 6 でついに実行中のハブメソッドをキャンセルできます InvokeAsync に渡す CancellationToken のキャンセルがサーバーに届き、ハブメソッドをキャンセルするようになりました。2019 年から開いていた SignalR の要望が解決します。
2026-07-23 comparisoncsharpdotnet ASP.NET Core 11 における型付き結果 (Results<>) vs IResult vs IActionResult ASP.NET Core 11 では、minimal API には TypedResults を使って Results<T1, TN> を返し、コントローラーには ActionResult<T> を返します。素の IResult と素の IActionResult は非常手段として扱いましょう。どんなレスポンスでもコンパイルは通りますが、OpenAPI には何も伝えないため、手書きの ProducesResponseType 属性という代償を払うことになります。
2026-07-23 comparisonaspnetcoredotnet-11 ASP.NET Core 11 における WebApplication.CreateBuilder vs CreateSlimBuilder vs CreateEmptyBuilder 通常のアプリには CreateBuilder を、TLS プロキシの背後でトリミングまたは Native AOT を使って発行する場合は CreateSlimBuilder を、すべてのサービスを自分で登録したい場合にのみ CreateEmptyBuilder を使いましょう。ここでは機能マトリクスと、選択を左右する落とし穴を紹介します。
2026-07-22 comparisonaspnetcoredotnet-11 ASP.NET Core 11 における出力キャッシュとレスポンスキャッシュ:どちらを使うべきか ASP.NET Core 11 では、ほぼすべてのサーバーサイドアプリにとって出力キャッシュが正しいデフォルトです。レスポンスキャッシュが勝るのは、HTTP ヘッダーを通じてブラウザーやプロキシのキャッシュを制御することが目的の場合だけです。ここでは機能マトリクスと、判断を左右する落とし穴とともに、その決定方法を示します。
2026-07-21 errorscsharpcsharp-14 解決: CS4014 "Because this call is not awaited, execution of the current method continues" in C# CS4014 は Task を返すメソッドを await せずに呼び出したことを意味します。await を追加するか、意図的な fire-and-forget なら _ = で破棄し、例外を処理してください。
2026-07-21 errorscsharpdotnet 解決: System.InvalidOperationException: Sequence contains no elements この例外は、空のシーケンスに対して .First() や .Single() を呼び出したことを意味します。FirstOrDefault/SingleOrDefault で null をチェックするか、クエリをガードするか、ソースが空になる原因を修正します。