Start Debugging

タグ: dotnet-11

310 件 · ページ3/31

System.Text.Json で Vector3 や Quaternion などの public フィールドをシリアル化する方法
Vector3 や Quaternion はデータを public フィールドに保持しているため、System.Text.Json は Vector3 を {}、Quaternion を {"IsIdentity":false} として書き出します。IncludeFields、カスタムコンバーター、リゾルバーの修飾子、ソース生成でこれを解決する方法を、.NET 10 と .NET 11 RC 1 で計測しながら解説します。
ASP.NET Core 11 で単一の minimal API フォームエンドポイントだけ antiforgery 検証を無効化する方法
対象のエンドポイント、または MapGroup に .DisableAntiforgery() を付けます。ASP.NET Core 11 ではこれ 1 つでトークンミドルウェアと新しい自動 CSRF チェックの両方から除外されます。実測したマトリクス、優先順位の落とし穴、より範囲の狭い代替手段を解説します。
IPluralizer で dotnet ef dbcontext scaffold のテーブル名複数形化をカスタマイズする方法
Gas という名前のテーブルは Ga というエンティティにスキャフォールドされます。組み込みの Humanizer 複数形化サービスを独自の IPluralizer に置き換え、スタートアッププロジェクトの IDesignTimeServices から登録する方法と、そこで TryAddSingleton が黙って何もしない理由を解説します。
2 つのアプリインスタンスが同じメッセージを消費するときに EF Core 11 で冪等なメッセージ処理を保証する方法
ハンドラーの存在チェックは、あなたが思っているようなガードではありません。inbox テーブルに一意インデックスを張り、業務上の変更と同じ SaveChanges でマーカーを書き込み、勝者はデータベースに決めさせます。さらに、それを静かに台無しにする ExecuteUpdate の罠も扱います。
1 つの ASP.NET Core リクエストの中でデータベース書き込みと Azure Blob Storage へのアップロードの整合性を保つ方法
SQL Server と Blob Storage をまたぐトランザクションは存在しません。データベースが既に知っている名前にアップロードし、コミットは後から行い、失敗時には補償し、クラッシュの隙間はスイーパーに片付けさせます。条件付き作成を黙って上書きに変えてしまう UploadAsync のオーバーロードについても。
EF Core 11 のマイグレーションで主キー、外部キー、インデックスにカスタム命名規則を適用する方法
EF Core 11 が生成する PK_、FK_、AK_、IX_ の名前を 1 つの IModelFinalizingConvention ですべて付け替え、明示的に指定した名前を優先させ、識別子の長さ制限に収め、既存データベースで次のマイグレーションが生成するクラスター化インデックスの再構築を回避します。
EF Core 11 の生成 id エスケープ変更後に EF Core Cosmos アプリを移行する
EF Core 11 は Cosmos DB の生成 id 値に含まれる '/', '\', '?', '#' をエスケープしなくなったため、EF Core 8-10 で書き込んだドキュメントがキーで解決できなくなります。影響を受けるかどうかの確認方法、EscapeIllegalCosmosIdCharacters スイッチを設定すべき場面、そしてトランザクションバッチで id を安全に書き換える方法を解説します。
.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 でのパッケージ分割について解説します。
.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 で最も不透明だったディスパッチのインライン化を可能にしました。
前へ 次へ