はじめに読む
はじめての方へ。これは私が開発者にまず読んでもらいたい記事です。日々のニュース記事よりも長く、より長く有効で、より多くを教えるものを選んでいます。本当に勧めたい記事を書いたときに更新します。
14 件 · トピック別
C# 言語
言語側で実際に何が変わったのか、そしてそれが現場のコードでどう着地するのか。
- C# 14 の拡張メンバー: 拡張プロパティ、演算子、静的拡張 C# 14 は拡張メンバーを導入し、新しい extension キーワードを使って既存の型に拡張プロパティ、演算子、静的メンバーを追加できるようにします。
- C# 14 の null 条件代入: ?. と ?[] を左辺で使う C# 14 は null 条件演算子を代入の左辺でも動作するように拡張し、プロパティやインデクサーを設定する際の冗長な null チェックを排除します。
- C# 15 の union 型がここに: 型ユニオンが .NET 11 Preview 2 で出荷 C# 15 は網羅的なパターンマッチングと暗黙の変換を伴う型ユニオン用の union キーワードを導入します。.NET 11 Preview 2 で今すぐ利用可能です。
EF Core
EF Core 10 / 11 で深掘りしたデータアクセスのコア機能。
- EF Core 11 が DiskANN インデックスでネイティブな SQL Server ベクトル検索を追加 EF Core 11 Preview 2 は SQL Server 2025 の VECTOR_SEARCH() と DiskANN ベクトルインデックスを LINQ から直接サポートします。インデックスのセットアップ、近似クエリの実行方法、EF Core 10 の VectorDistance アプローチからの変更点を紹介します。
- EF Core 11 が split query で不要な reference join を刈り込む EF Core 11 Preview 3 は split query から冗長な to-one join を除去し、不要な ORDER BY キーを落とします。報告された一つのシナリオは 29% 速くなり、別のは 22% でした。今の SQL はこう見えます。
- EF Core 11 がデフォルトで Cosmos DB transactional batch を有効にする EF Core 11 は Cosmos DB の書き込みを SaveChanges ごとに container と partition 単位で transactional batch にグループ化し、コード変更なしで best-effort な原子性とラウンドトリップ削減を提供します。
パフォーマンスとプロファイリング
フィーチャーフラグではなく、内部で動いている部品を見せる記事。
- .NET 10 パフォーマンス: SearchValues .NET 10 で SearchValues を使い、高性能なマルチ文字列検索を実現します。foreach ループを Aho-Corasick および Teddy アルゴリズムによる SIMD 加速のマッチングに置き換えます。
- Perfetto + dotnet-trace: .NET 9/.NET 10 のための実践的なプロファイリングループ .NET 9 と .NET 10 のための実践的なプロファイリングループ: dotnet-trace でトレースをキャプチャし、Perfetto で可視化し、CPU、GC、スレッドプールの問題を反復的に解決する。
- C# でマイクロ秒レイテンシのデータベースエンジンを構築する Loic Baumann の Typhon プロジェクトは、ref struct、ハードウェア組み込み関数、ピン留めメモリを使って 1-2 マイクロ秒の ACID コミットを目指し、C# がシステムプログラミングレベルで競争できることを証明しています。
.NET ランタイムとツール
.NET の日々の作業の手触りを変える要素。
- .NET 11 Runtime Async がステートマシンを置き換え、よりクリーンなスタックトレースを実現 .NET 11 の Runtime Async は async/await の処理をコンパイラ生成のステートマシンからランタイム自体に移し、読みやすいスタックトレース、正しいブレークポイント、ヒープ割り当ての削減を実現します。
- ASP.NET Core 11 がネイティブ OpenTelemetry トレーシングを出荷: 追加の NuGet パッケージを捨てよう .NET 11 Preview 2 の ASP.NET Core は OpenTelemetry セマンティック属性を HTTP サーバーアクティビティに直接追加し、OpenTelemetry.Instrumentation.AspNetCore を不要にします。
MAUI と Flutter
そのまま手を動かせるだけの粒度を持つモバイル系の記事。
- .NET MAUI 11 がビルトインの LongPressGestureRecognizer を出荷 .NET MAUI 11 Preview 3 は LongPressGestureRecognizer を first-party のジェスチャーとして追加し、duration、移動しきい値、state イベント、command バインディングを備え、一般的な Community Toolkit の behavior を置き換えます。
- .NET MAUI 11 Maps に pin clustering が着陸 .NET MAUI 11 Preview 3 は Android と iOS の Map コントロールにビルトイン pin clustering を追加し、ClusteringIdentifier グループと ClusterClicked イベントを備えます。
- Flutter Text: UI の "呼吸" を変える `leadingDistribution` という細部 Flutter の TextHeightBehavior にある leadingDistribution プロパティは、追加の leading をグリフの上下にどう分配するかを制御します。これが効いてくる場面と、テキストが縦方向にずれて見えるときの直し方を解説します。