2026-08-23 csharplinqdotnet C# で IEnumerable<T> がすでにマテリアライズ済みかどうかを判定する方法 IEnumerable<T> に HasBeenEnumerated フラグはありません。TryGetNonEnumeratedCount が実際に何を調べているのか、なぜ Enumerable.Range が ICollection<T> のテストを通過するのか、そして無駄な ToList() を避けるガードを解説します。
2026-08-18 errorsdotnetlogging 解決: CA1873 "Evaluation of this argument may be expensive and unnecessary if logging is disabled" CA1873 は暗黙の params object[] 配列に反応するため、ほぼすべての LogDebug 呼び出しで発生します。[LoggerMessage] か IsEnabled ガードで解決します。
2026-08-15 comparisondotnetdotnet-11 .NET 11 のレスポンス圧縮における Zstandard と Brotli と Gzip の比較 .NET 11 の動的な API レスポンスには Zstandard が正しい既定値ですが、ASP.NET Core のプロバイダーが出荷時に設定している品質のままではいけません。実際の JSON ペイロードを使ったベンチマークで、品質 1 が既定の品質 3 をサイズと CPU の両方で上回る理由、Brotli が今も勝つ場面、そして Gzip が互換性のためのフォールバックとしてのみ残る理由を示します。
2026-08-02 csharpdotnetdotnet-11 ASP.NET Core 11 で Kestrel に HTTP/3 を配信させる設定方法 ASP.NET Core 11 で Kestrel の HTTP/3 を有効にするための完全ガイドです。HttpProtocols.Http1AndHttp2AndHttp3 によるエンドポイント設定、Windows / Linux / macOS における MsQuic のプラットフォーム要件、最初のリクエストが決して HTTP/3 にならない理由、HttpClient とミドルウェアによる確認方法、QuicTransportOptions のチューニング、そして黙ってフォールバックさせてしまうファイアウォールとプロキシの落とし穴を扱います。
2026-08-02 csharpdotnetdotnet-11 .NET 11 で new Regex(...) を [GeneratedRegex] ソースジェネレーターに置き換える方法 .NET 11 で new Regex(pattern, RegexOptions.Compiled) を [GeneratedRegex] に変換する完全ガイドです。機械的な書き換え、部分メソッドと部分プロパティの違い、実測した起動時間とスループット、SYSLIB1040-1045 の診断、そしてジェネレーターが黙ってキャッシュ済み Regex にフォールバックする 2 つのパターンを扱います。
2026-08-02 csharpdotnetdotnet-11 .NET 11 で Web Workers を使って Blazor WebAssembly アプリの CPU 集約的な処理を実行する方法 .NET 11 で CPU 集約的な処理を Blazor WebAssembly の UI スレッドから追い出すための完全ガイドです。Task.Run が役に立たない理由、新しい blazorwebworker テンプレート、キャンセルとタイムアウトに対応した WebWorkerClient API、JSExport のマーシャリング制限、そして worker ごとに支払う 2 つ目のランタイムのコストを解説します。
2026-07-28 flutterdartwebassembly flutter build web --wasm で Flutter Web アプリを WebAssembly にビルドする方法 Flutter 3.44 で WebAssembly にコンパイルした Flutter Web アプリを公開するための完全ガイドです。出力される 2 つのビルドの中身、ローダーの wasmAllowList が原因で Firefox と Safari が今も JavaScript を受け取る理由、dart2wasm のための dart:html からの移行、skwasm がマルチスレッドで動くかを決める COOP/COEP ヘッダー、そしてブラウザーが実際にどちらのビルドを読み込んだかをランタイムで確認する方法を扱います。
2026-07-27 csharpdotnetdotnet-11 dotnet-gcdump と dotnet-dump でマネージドメモリリークを診断する方法 .NET 11 でマネージドメモリリークを見つけるための完全な手順です。dotnet-counters で増加を確認し、gcdump を 2 回取得して差分を見て、その後ダンプを収集して dotnet-dump analyze の dumpheap、gcroot、objsize で参照を保持しているものを突き止めます。
2026-07-22 comparisonaspnetcoredotnet-11 ASP.NET Core 11 における出力キャッシュとレスポンスキャッシュ:どちらを使うべきか ASP.NET Core 11 では、ほぼすべてのサーバーサイドアプリにとって出力キャッシュが正しいデフォルトです。レスポンスキャッシュが勝るのは、HTTP ヘッダーを通じてブラウザーやプロキシのキャッシュを制御することが目的の場合だけです。ここでは機能マトリクスと、判断を左右する落とし穴とともに、その決定方法を示します。
2026-07-14 csharpdotnetdotnet-11 ASP.NET Core 11 の API にレスポンス圧縮を追加する方法 ASP.NET Core 11 におけるレスポンス圧縮の完全ガイド。AddResponseCompression と UseResponseCompression、Brotli と Gzip に加わった新しい組み込みの Zstandard プロバイダー、圧縮レベル、EnableForHttps と CRIME/BREACH のリスク、カスタム MIME タイプ、middleware の順序、そしてリバースプロキシに任せるべき場合を解説します。