С чего начать
Впервые здесь? Это статьи, которые я бы посоветовал прочитать разработчику в первую очередь. Они длиннее, более вечнозелёные или больше учат, чем ежедневные новостные посты. Обновляется, когда я пишу что-то, что действительно стоит рекомендовать.
14 статей · по темам
Язык C#
Что на самом деле изменилось в языке и как это ложится на реальный код.
- Члены расширений в C# 14: свойства расширений, операторы и статические расширения C# 14 вводит члены расширений, позволяя добавлять свойства расширений, операторы и статические члены к существующим типам с помощью нового ключевого слова extension.
- Null-условное присваивание в C# 14: использование ?. и ?[] в левой части C# 14 расширяет null-условные операторы, позволяя использовать их в левой части присваиваний и устраняя многословные проверки на null при установке свойств или индексаторов.
- Union-типы C# 15 здесь: типы-объединения поставляются в .NET 11 Preview 2 C# 15 вводит ключевое слово union для типов-объединений с исчерпывающим сопоставлением с образцом и неявными преобразованиями. Доступно прямо сейчас в .NET 11 Preview 2.
EF Core
Ключевые возможности доступа к данным, которые я разобрал в EF Core 10 и 11.
- EF Core 11 добавляет нативный векторный поиск SQL Server с индексами DiskANN EF Core 11 Preview 2 поддерживает VECTOR_SEARCH() из SQL Server 2025 и векторные индексы DiskANN прямо из LINQ. Вот как настроить индекс, выполнять приближённые запросы, и что меняется по сравнению с подходом VectorDistance из EF Core 10.
- EF Core 11 вырезает ненужные reference joins в split queries EF Core 11 Preview 3 убирает избыточные to-one joins из split queries и роняет ненужные ORDER BY ключи. Один заявленный сценарий стал на 29% быстрее, другой на 22%. Вот как теперь выглядит SQL.
- EF Core 11 включает transactional batches Cosmos DB по умолчанию EF Core 11 группирует writes Cosmos DB в transactional batches по container и partition на каждом SaveChanges, давая best-effort атомарность и меньше roundtrips без изменений кода.
Производительность и профилирование
Статьи, в которых видно, как всё устроено внутри, а не только фиче-флаги.
- Производительность .NET 10: SearchValues Используйте SearchValues в .NET 10 для высокопроизводительного поиска по нескольким строкам. Заменяет циклы foreach на сопоставление, ускоренное SIMD, с алгоритмами Aho-Corasick и Teddy.
- Perfetto + dotnet-trace: практический цикл профилирования для .NET 9/.NET 10 Практический цикл профилирования для .NET 9 и .NET 10: захватывайте трассировки с помощью dotnet-trace, визуализируйте их в Perfetto и итеративно разбирайтесь с проблемами CPU, GC и пула потоков.
- Создание движка базы данных с микросекундной задержкой на C# Проект Typhon Лоика Бауманна нацелен на ACID-коммиты за 1-2 микросекунды с использованием ref struct, аппаратных интринсиков и закреплённой памяти, доказывая, что C# может конкурировать на уровне системного программирования.
Рантайм .NET и инструменты
Вещи, которые меняют ощущения от ежедневной работы с .NET.
- Runtime Async из .NET 11 заменяет state machines более чистыми трассировками стека Runtime Async в .NET 11 переносит обработку async/await из state machines, генерируемых компилятором, в саму среду выполнения, давая читаемые трассировки стека, корректные точки останова и меньше выделений в куче.
- ASP.NET Core 11 поставляет нативную трассировку OpenTelemetry: уберите дополнительный NuGet-пакет ASP.NET Core в .NET 11 Preview 2 добавляет семантические атрибуты OpenTelemetry прямо в активность HTTP-сервера, устраняя необходимость в OpenTelemetry.Instrumentation.AspNetCore.
MAUI и Flutter
Мобильные статьи с достаточной детализацией, чтобы по ним можно было действовать.
- .NET MAUI 11 поставляется со встроенным LongPressGestureRecognizer .NET MAUI 11 Preview 3 добавляет LongPressGestureRecognizer как жест first-party, с duration, порогом движения, событиями state и command-binding, заменяя распространённый behavior из Community Toolkit.
- Pin clustering приземляется в .NET MAUI 11 Maps .NET MAUI 11 Preview 3 добавляет встроенный pin clustering в контрол Map на Android и iOS, с группами ClusteringIdentifier и событием ClusterClicked.
- Flutter Text: деталь `leadingDistribution`, меняющая то, как "дышит" ваш UI Свойство leadingDistribution в TextHeightBehavior во Flutter управляет тем, как дополнительное leading распределяется над и под глифами. Вот когда это важно и как починить текст, который выглядит вертикально смещённым.