2026-05-26 comparisonazure-functionsdotnet .NET 11 における Azure Functions の isolated worker と in-process の比較: 2026 年にどちらを選ぶべきか 2026 年の .NET 11 上の Azure Functions アプリケーションでは isolated worker モデルを選び、残存する in-process アプリは 11 月 10 日の廃止期限までに移行してください。
2026-05-26 ef-coredotnet-11sql-server EF Core 11 Preview 4: テンポラルテーブルの期間列がついに本物のプロパティになれる EF Core 11 Preview 4 で SQL Server テンポラルテーブルに対する長年の shadow プロパティ制約が撤廃されました。PeriodStart と PeriodEnd を通常の CLR プロパティとして宣言し、強く型付けされた HasPeriodStart と HasPeriodEnd のラムダで設定できます。
2026-05-25 comparisoncsharpdotnet C# における List<T> vs Span<T> vs ReadOnlySpan<T>: どれを選ぶべきか List<T> は伸長するヒープ上のコレクションです。Span<T> と ReadOnlySpan<T> は、すでに所有しているメモリに対するスタック専用のビューです。保存・async からの返却・伸長が必要なものには List<T> を、同期メソッド内での変更可能でアロケーションのないビューには Span<T> を、文字列・u8 リテラル・スライスに対する読み取り専用の解析には ReadOnlySpan<T> を使います。
2026-05-25 comparisoncsharpdotnet C# における Parallel.ForEach vs Parallel.ForEachAsync vs Task.WhenAll メモリ上のデータに対する CPU バウンドな処理には Parallel.ForEach を、多数の要素に対する非同期 I/O を並行数の上限付きで行うには Parallel.ForEachAsync を、すべての操作を一度に開始して結果が必要な小さく固定的なファンアウトには Task.WhenAll を使います。
2026-05-25 comparisoncsharpdotnet .NET 11 における StringBuilder と文字列補間: どちらを使うべきか 固定された値のセットを一度に組み立てるなら文字列補間を、ループ内や数が不明なフラグメントにわたって追加するなら StringBuilder を使ってください。分かれ目はループであって、値の数ではありません。
2026-05-24 comparisoncsharpdotnet C# における lock vs Monitor vs SemaphoreSlim vs System.Threading.Lock C# でクリティカルセクションを保護する 4 つの方法と、その選択のための判断マトリックス。.NET 9+ での同期的な相互排他には System.Threading.Lock を、セクションが await をまたぐ場合は SemaphoreSlim を、Wait/Pulse が必要な場合のみ Monitor を使います。
2026-05-24 comparisoncsharpdotnet Task.Run vs Task.Factory.StartNew vs ThreadPool.QueueUserWorkItem C# でスレッドプールに作業を投げる 3 つの方法と、どれを選ぶべきか。ほとんどの場合は Task.Run を、アロケーションのない fire-and-forget には ThreadPool.QueueUserWorkItem<TState> を、LongRunning やカスタムスケジューラーのときだけ Task.Factory.StartNew を使います。
2026-05-23 dotnet-11csharpperformance .NET 11 がアロケーションなしの Deflate と GZip 圧縮を追加 .NET 11 Preview 4 は DeflateEncoder、GZipEncoder、ZLibEncoder とそれぞれのデコーダーを提供し、Stream なしで OperationStatus を使って Span<byte> に直接圧縮できます。
2026-05-22 csharpdotnetdotnet-11 C# 16 は unsafe を呼び出し側への契約に作り変えます C# 16 は unsafe キーワードを再設計し、暗黙的に unsafe コンテキストを開く代わりに呼び出し側への義務を伝播するようにします。内部の unsafe ブロックも必須になります。
2026-05-21 comparisoncsharpasync .NET 11 における ConfigureAwait(false) とデフォルトの比較: 今でも重要か? ConfigureAwait(false) は、SynchronizationContext (WinForms、WPF、MAUI) 下で動作する可能性のあるライブラリコードでは依然として必須です。.NET 11 上の ASP.NET Core、コンソールアプリ、Worker サービスのアプリケーションコードでは no-op です。