2026-06-21 csharpdotnetcsharp-15 C# 15 の閉じたクラス階層: .NET 11 Preview 5 の closed キーワード .NET 11 Preview 5 で C# 15 は closed 修飾子を追加し、クラス階層に switch 式でのコンパイル時の網羅性をもたらします。その仕組みと唯一の注意点を解説します。
2026-06-21 csharpdotnetdotnet-11 ASP.NET Core 11 で JWT 保護された API の CORS を設定する方法 ASP.NET Core 11 における bearer トークン API の CORS 完全ガイド。認証に対する UseCors の正しい順序、Authorization ヘッダーの bearer トークンが CORS の資格情報ではない理由、AllowAnyHeader は機能するのに手書きのワイルドカードが Authorization を含めない理由、そして preflight を失敗させない方法を解説します。
2026-06-20 csharpdotnetasync ValueTask<T> とは何か、そしていつ使う価値があるのか ValueTask と ValueTask<T> は、同期的に完了する場合に Task をヒープ割り当てせずに非同期メソッドが結果を返せるようにする構造体です。利点は、待機せずに完了することが多いホットパスで割り当てが 1 つ減ることです。代償は厳格な await-once 契約です。この型が実際に何であるか、どう動作するか、そしてその価値を発揮する狭い範囲のケースを解説します。
2026-06-20 dotnettrimmingnative-aot DynamicallyAccessedMembers 属性とは何ですか? DynamicallyAccessedMembers は、リフレクションで到達する Type のメンバーを .NET トリマーと AOT コンパイラーに伝え、トリミングで削除される代わりに保持させます。これにより、サイレントなランタイムの MissingMethodException が、ビルド時の IL2070 警告に変わります。この属性が何をするのか、その背後にあるデータフロー解析がどのように動くのか、そしてパラメーター、フィールド、ジェネリック型パラメーターを正しく注釈する方法を解説します。
2026-06-19 csharpdotnetdotnet-11 IAsyncEnumerable<T> とは何か、いつ使うべきか IAsyncEnumerable<T> は非同期ストリームのためのインターフェースです。要素が時間とともに到着し、それぞれの生成に await が必要になり得るシーケンスです。それが実際に何であるか、await foreach と yield がどう駆動するか、そして Task<List<T>> ではなくこれを選ぶ基準を解説します。
2026-06-19 csharpdotnetdotnet-11 ソースジェネレーターとは何か、いつ必要になるのか? C# のソースジェネレーターについてのわかりやすいガイドです。実際に何をするのか、IIncrementalGenerator のパイプラインがどう動くのか、リフレクションや T4 より優れるのはどんなときか、そして使うべきでないケースまで解説します。.NET 11 と C# 14 で動く例つきです。
2026-06-19 dotnetnative-aotperformance Native AOT とは何か、そして何を犠牲にするのか? Native AOT は .NET アプリを JIT のない単一の自己完結型ネイティブバイナリにコンパイルし、高速な起動と小さなメモリフットプリントを手に入れます。その代償は、ビルド時の C ツールチェーン、遅くなるパブリッシュ、RID ごとのビルド、リフレクションや Reflection.Emit の不可、必須のトリミング、そして Dynamic PGO の不在です。ここに完全な収支を示します。
2026-06-16 blazordotnet-11aspnetcore .NET 11 Preview 5 で Blazor static SSR に [SupplyParameterFromSession] が追加 静的サーバーレンダリングの Blazor でセッション状態を読むには、HttpContext.Session にアクセスして手動でシリアライズする必要がありました。.NET 11 Preview 5 は [SupplyParameterFromSession] を追加し、コンポーネントのプロパティをセッションキーに直接バインドします。
2026-06-16 migrationswashbuckleopenapi Swashbuckle から .NET 11 の組み込み OpenAPI ジェネレーターへ移行する .NET 11 で Swashbuckle.AspNetCore から Microsoft.AspNetCore.OpenApi へのステップバイステップの移行: AddSwaggerGen を AddOpenApi に置き換え、操作・スキーマ・ドキュメントのフィルターをトランスフォーマーに変換し、UI を残し、噛みついてくる Microsoft.OpenApi v2 の破壊的変更を扱います。
2026-06-15 comparisonef-coreef-core-11 EF Core 11 における AsNoTracking と AsNoTrackingWithIdentityResolution: どちらを使うべきか 読み取り専用のクエリにはデフォルトで AsNoTracking を使います。結果のグラフが同じエンティティを複数回含み、かつコードが単一の共有インスタンスを受け取ることに依存している場合にのみ AsNoTrackingWithIdentityResolution を使います。