Start Debugging

dotnet

440 件 · ページ8/44

StackExchange.Redis 3.3 はサーバーに切断される前に Redis ノードから移動します

StackExchange.Redis 3.3.0 は Redis Enterprise、Redis Cloud、Azure Managed Redis 向けにオプトインのメンテナンス通知 (スマートクライアントハンドオフ) を追加しました。移行中のタイムアウト緩和、トポロジの再読み込み、エンドポイントが消える前の事前移動を行います。有効化の方法と、最初に遭遇する SER010 エラーを解説します。

OpenTelemetry .NET 1.19.1 で net8.0 のワイルドカード NotSupportedException が修正されました

OpenTelemetry 1.19.0 はワイルドカードのソース用正規表現を RegexOptions.NonBacktracking に切り替えましたが、net8.0 では十分な数のソースを登録すると例外がスローされます。2026-09-21 にリリースされた 1.19.1 は、マッチタイムアウト付きのコンパイル済み正規表現に戻しています。
2026-09-21 aspirekafkadotnet

Aspire 13.5.4 で Kafka ヘルスチェックがプローブのたびに producer をリークしなくなりました

Aspire 13.5.4 より前は、AddKafka リソースに対する AppHost のヘルスチェックが実行のたびに新しい Confluent の producer を作成し、誰も破棄しませんでした。そのためポーリングスレッドが積み上がり、AppHost が CPU を消費していました。この修正と、その背後にある HealthCheckRegistration.Factory の落とし穴は、独自のヘルスチェックにも当てはまります。

MessagePack 3.1.9 と 2.5.303、32 KiB のペイロードが 120 MiB を確保する問題を修正

CVE-2026-92707: ネストした MessagePack の配列ヘッダーが同じ残りバイト数を使い回して長さチェックを通過できたため、object へのデシリアライズがペイロードサイズの数千倍のアロケーションを引き起こしていました。この修正の内容、修正前後の検証、そして .NET 8 から 11 RC 1 までの SignalR アプリで直接のパッケージ固定が必要な理由を解説します。

Polly 8.8 は独自の IOptionsMonitor からレジリエンスパイプラインをリロードできます

Polly 8.8.0 で EnableReloadsWithMonitor が追加され、DI に登録されていない機能フラグやリモート設定のモニターからレジリエンスパイプラインをホットリロードできるようになりました。検証コードで再構築の様子を示すとともに、落とし穴を 1 つ紹介します。context.GetOptions は引き続き DI のモニターを読むため、既定値が返されます。

.NET 11 における Microsoft.Data.SqlClient と System.Data.SqlClient の比較

Microsoft.Data.SqlClient を使ってください。System.Data.SqlClient は非推奨で、触れる型すべてに CS0618 が出ます。さらに .NET 8 が 2026-11-10 にサポート終了を迎えると .NET 向けアセットが削除されます。その日は .NET 11 のリリース日でもあります。実測した機能差、マイグレーションを壊す Encrypt の既定値、そして 7.0 でのパッケージ分割について解説します。
2026-09-17 mstesttestingcsharp

MSTest 4.4.1 が、4.4.0 で C# 14 未満において壊れた CS0121 のあいまいな Assert 呼び出しを修正

MSTest 4.4.0 は Assert.Contains と Assert.DoesNotContain に Span<T> と ReadOnlySpan<T> のオーバーロードを追加しました。その結果、net8.0、net9.0、または C# 14 未満のあらゆるプロジェクトで、ごく普通の配列や文字列のアサーションが CS0121 で失敗するようになりました。2026-09-16 に公開された MSTest 4.4.1 は、配列に完全一致するオーバーロードと制約付きのフォワーダーを追加します。ただし、明示的なジェネリック引数を指定する 2 つの呼び出し形式は依然として失敗します。

.NET 11 の Process.Run と Process.Start: どちらを使うべきか

ツールを起動して終了の仕方だけが気になるなら Process.Run を使います。1 回の呼び出しで済み、タイムアウトで子プロセスを強制終了し、シグナルを含む ProcessExitStatus を返します。stdin への書き込み、出力を届いたそばから読む処理、UseShellExecute、プロセスツリー全体の強制終了など、Process オブジェクトが必要な場合は Process.Start を使い続けます。
2026-09-16 dotnetdotnet-11jit

.NET 11 の JIT がジェネリック仮想メソッドを非仮想化し、アロケーションも一緒に消える

Stephen Toub の Performance Improvements in .NET 11 では、ジェネリック仮想メソッド呼び出しが 6.7 ns / 24 バイトから 1.8 ns / アロケーションゼロまで下がっています。3 本の RyuJIT のプルリクエストが、.NET で最も不透明だったディスパッチのインライン化を可能にしました。
前へ 次へ