Start Debugging

Трекер .NET 11

Одна закладка на весь цикл .NET 11.

Эта подборка собирает всё, что я писал о .NET 11: preview-версии, изменения в рантайме, обновления GC, работа JIT и новый API в BCL. Добавьте страницу в закладки - я буду поддерживать её актуальной с каждой новой preview.

С чего начать

Если вы только знакомитесь с .NET 11, начните со статей с тегом “.net 11 preview” в верхней части списка. Каждая освещает ключевые моменты одной preview. Более старые статьи остаются полезными, потому что набор возможностей .NET 11 накапливается.

Что на этой странице

Таблица ниже автоматически собирается из статей с одним из тегов: .net 11, dotnet 11, .net 11 preview, dotnet, .net. Еженедельный задачник переупорядочивает её так, чтобы свежие материалы всплывали наверх.

Если вам нужна быстрая шпаргалка вместо хронологической подборки, посмотрите сопутствующие подборки “EF Core 11 cheat sheet” и “Возможности C# 14” в индексе /pillars/.

Указатель (257 статей)

2026 / 07

  • Как добавить сжатие ответов в API на ASP.NET Core 11

    Полное руководство по сжатию ответов в ASP.NET Core 11: AddResponseCompression и UseResponseCompression, новый встроенный провайдер Zstandard рядом с Brotli и Gzip, уровни сжатия, EnableForHttps и риск CRIME/BREACH, пользовательские MIME-типы, порядок middleware и когда стоит доверить это обратному прокси.

  • Как вернуть типизированное объединение Results<T1, T2> из эндпоинта minimal API в ASP.NET Core 11

    Объявите тип возврата обработчика как Results<Ok<T>, NotFound> и возвращайте TypedResults.Ok / TypedResults.NotFound: объединение даёт проверку на этапе компиляции того, что обработчик возвращает только то, что объявляет, и само описывает себя для OpenAPI, так что вам никогда не придётся писать .Produces вручную. Рассматриваются асинхронные обработчики, ограничение в шесть типов и тестирование в ASP.NET Core 11.

  • Как добавить кеширование выходных данных в minimal API на ASP.NET Core 11

    Полное рабочее руководство по кешированию выходных данных в minimal API на ASP.NET Core 11: AddOutputCache и UseOutputCache, CacheOutput на конечных точках и MapGroup, именованные и базовые политики, Expire, VaryByQuery и VaryByHeader, вытеснение по тегам с EvictByTagAsync, защита от cache stampede, повторная валидация через ETag и хранилище на Redis.

  • Как настроить документ OpenAPI с помощью AddOperationTransformer и AddSchemaTransformer в ASP.NET Core 11

    Подробный разбор встроенного конвейера трансформеров OpenAPI в .NET 11: трансформеры операций и схем, объекты контекста, порядок выполнения, трансформеры, активируемые через DI, а также рецепты для заголовков, ответов, примеров и точечных изменений свойств.

  • Что такое PGO в .NET и нужно ли его включать?

    PGO (оптимизация на основе профиля) позволяет JIT-компилятору .NET специализировать горячий код под типы и ветви, которые действительно встречаются в вашей нагрузке. Dynamic PGO включён по умолчанию начиная с .NET 8, поэтому в .NET 8 и более поздних версиях включать его не нужно. Вот что он делает, как увидеть его эффект и те редкие случаи, когда стоит тронуть настройку.

  • Что такое многоуровневая компиляция и как о ней рассуждать?

    Многоуровневая компиляция позволяет JIT в .NET компилировать каждый метод дважды: сначала быстро и без оптимизаций, чтобы приложение запустилось, а затем ещё раз с полными оптимизациями, когда среда выполнения узнаёт, что метод горячий. Здесь показано, как tier 0, tier 1, замена на стеке и Dynamic PGO складываются вместе, и как их наблюдать и настраивать.

  • Агент модернизации .NET теперь работает в CLI Copilot, а не только в Visual Studio

    Агент modernize-dotnet от GitHub Copilot вышел как переносимый плагин 2026-07-09. Теперь он работает в VS Code, в CLI Copilot и на GitHub, с процессом оценить, спланировать и выполнить, артефакты которого фиксируются в вашем репозитории для проверки.

  • В чём разница между dotnet build и dotnet publish?

    dotnet build компилирует проект для внутреннего цикла разработки и по умолчанию использует Debug. dotnet publish запускает target Publish в MSBuild, по умолчанию использует Release для net8.0 и более поздних версий и упаковывает готовую к развёртыванию папку с уже обработанными веб-ресурсами, автономными средами выполнения, одним файлом, обрезкой и AOT. Здесь ровно то, что производит каждая команда и когда её применять.

  • В чём разница между dotnet watch и dotnet run?

    dotnet run один раз собирает ваш проект и запускает его. dotnet watch оборачивает dotnet run в наблюдатель за файлами: он перезапускает приложение или применяет hot reload каждый раз, когда вы сохраняете исходный файл. Вот что именно делает каждая команда, что задаёт dotnet watch, чего не задаёт dotnet run, и когда какую выбирать.

  • Что такое контракт IHostedService и когда его использовать?

    IHostedService -- это интерфейс из двух методов (StartAsync/StopAsync), которые универсальный хост .NET вызывает при запуске и корректном завершении. Вот что гарантирует контракт, когда реализовывать его напрямую и какие изменения поведения в .NET 10 и 11 застают людей врасплох.

  • Что такое trim-safe код и как его писать?

    Trim-safe код -- это код, который триммер .NET может статически доказать как достижимый, поэтому он выживает при удалении неиспользуемого кода из self-contained приложения. Это практическое руководство: включите анализатор, доведите каждое предупреждение IL2xxx до нуля, аннотируйте рефлексию с помощью DynamicallyAccessedMembers, распространите RequiresUnreferencedCode на публичные API и замените неанализируемые паттерны генераторами исходного кода.

  • Миграция сидинга с HasData на UseAsyncSeeding в EF Core 11

    Пошаговое руководство по переносу данных сида с HasData на UseSeeding и UseAsyncSeeding в EF Core 11, включая ловушку миграции DeleteData, которая удаляет ваши существующие строки, если вы её пропустите.

  • Именованные фильтры запросов vs один глобальный фильтр запросов в EF Core 11: что выбрать?

    Оба варианта генерируют одинаковый SQL. Прибегайте к именованным фильтрам только тогда, когда нужно отключить один предикат независимо; один комбинированный фильтр проще для единственной задачи в EF Core 11.

  • Исправление: "415 Unsupported Media Type" от endpoint минимального API в ASP.NET Core 11

    Минимальный API возвращает 415, когда Content-Type запроса не совпадает с тем, что связывает endpoint. Отправьте Content-Type: application/json для типа, связанного с телом, или используйте [FromForm] для форм и загрузки файлов.

  • Исправление: CS9035 "Required member 'X' must be set in the object initializer" в C#

    CS9035 означает, что член, помеченный как required, не был присвоен. Присвойте его в инициализаторе объекта или добавьте конструктор с [SetsRequiredMembers], который присваивает каждый член required.

  • Решение: "The LINQ expression could not be translated" в EF Core 11

    EF Core 11 выбрасывает это, когда Where или OrderBy вызывает метод, который нельзя преобразовать в SQL. Перепишите предикат с помощью транслируемых операторов или сначала загрузите данные на клиент через AsEnumerable.

  • Исправление: "The required column 'X' was not present in the results of a 'FromSql' operation" в EF Core 11

    EF Core выбрасывает это, когда ваш сырой SQL не возвращает все столбцы, на которые мапится сущность, или имена не совпадают. Верните все сопоставленные столбцы с совпадающими именами или запросите скалярный либо бесключевой тип.

  • Как настроить ответы об ошибках валидации в minimal API с помощью IProblemDetailsService в ASP.NET Core 11

    Вызовите AddProblemDetails с колбэком CustomizeProblemDetails, чтобы изменить форму ответа 400, который встроенная валидация minimal API возвращает в ASP.NET Core 11: добавьте traceId, перепишите title, замените 400 на 422 или получите полный контроль с помощью собственного IProblemDetailsWriter.

  • Как настроить JWT bearer-аутентификацию в minimal API в ASP.NET Core 11

    Полная рабочая настройка JWT bearer-аутентификации в minimal API в ASP.NET Core 11: установить пакет, подключить AddAuthentication().AddJwtBearer(), выпустить токен, защитить endpoint через RequireAuthorization, добавить политики ролей и claim, и протестировать всё это с помощью dotnet user-jwts.

  • Как использовать именованные фильтры запросов для мягкого удаления и мультитенантности в EF Core 11

    Примените два независимых глобальных фильтра запросов к одной сущности в EF Core 11: фильтр мягкого удаления и фильтр тенанта, каждый с именем, чтобы можно было отключить один без другого через IgnoreQueryFilters.

  • Запускайте Binlog MCP Server в CI для автоматической диагностики ошибок сборки

    2026-06-30 Microsoft показала Binlog MCP Server, работающий без надзора в GitHub Agentic Workflow, чтобы агент читал .binlog и комментировал первопричину, как только сборка в CI падает.

  • Как реализовать и использовать IAsyncDisposable с await using в C#

    Полное руководство по IAsyncDisposable в C#: когда применять await using, как правильно писать DisposeAsync и DisposeAsyncCore, и какие детали со стекированием и ConfigureAwait приводят к утечке ресурсов.

  • Как пробросить CancellationToken через асинхронные методы в .NET 11

    Проведите CancellationToken чисто через каждый слой асинхронной цепочки вызовов в .NET 11: соглашение о последнем параметре, значения по умолчанию, связанные токены, RequestAborted в ASP.NET Core и анализатор CA2016, который находит забытые.

  • Ограничение времени выполнения асинхронной операции с помощью CancellationTokenSource.CancelAfter в C#

    Используйте CancellationTokenSource.CancelAfter для задания дедлайна асинхронных операций в .NET 11: конструктор против CancelAfter, связанные токены, обработка исключений, Task.WaitAsync, TryReset для пула объектов и тестируемые тайм-ауты с TimeProvider.

  • SkiaSharp 4.0 выходит стабильной: рендеринг на GPU на 24% быстрее и очищенный API

    SkiaSharp 4.148.0 - это первый стабильный релиз v4. Интерфейсы с нагрузкой на GPU рендерятся до 24% быстрее, шейдеры на CPU работают примерно в 6 раз быстрее, а устаревшая поверхность API наконец удалена. Вот во что реально обходится обновление.

2026 / 06

2026 / 05

2026 / 04

2026 / 03

2026 / 02

2026 / 01

2025 / 04

2025 / 01

2024 / 12

  • Что нового в C# 14.0

    Обзор всех новых возможностей C# 14.0, включая ключевое слово field, члены расширения, null-условное присваивание, неявные преобразования span и многое другое.

  • Что нового в .NET 10

    Что нового в .NET 10: LTS-релиз с 3 годами поддержки, новые оптимизации JIT, девиртуализация массивов, улучшения размещения в стеке и многое другое.

  • История версий языка C#

    Эволюция C# превратила его в современный высокопроизводительный язык. Это руководство отслеживает каждую важную веху. Ранние годы (C# 1.0 - 1.2). C# был выпущен в 2002 году как основной язык для .NET Framework. Он напоминал Java, но с фокусом на разработке под Windows. Версия 1.2 появилась вскоре после с небольшими...

2024 / 04

2023 / 11

2023 / 10

2023 / 09

2023 / 08

  • Как установить dotnet script

    dotnet script позволяет запускать C#-скрипты (.CSX) из .NET CLI. Единственное требование — наличие .NET 6 или новее на машине. Установить dotnet-script глобально можно следующей командой: Затем для выполнения файла-скрипта достаточно вызвать dotnet script <file_path>, как в примере ниже: Как...

  • C# Как дождаться завершения процесса?

    Дождаться завершения процесса можно с помощью метода WaitForExit. Ваш код синхронно подождёт, пока процесс завершится, и затем продолжит выполнение. Рассмотрим пример: Этот код запустит новый процесс cmd.exe и выполнит команду timeout 5. Вызов process.WaitForExit() заставит вашу программу...

  • .NET 8 JsonNamingPolicy: SnakeCaseLower и KebabCaseLower (System.Text.Json)

    Используйте новые `JsonNamingPolicy.SnakeCaseLower` (а также SnakeCaseUpper, KebabCaseLower, KebabCaseUpper) в .NET 8 для сериализации JSON в snake_case / kebab-case через System.Text.Json без своего конвертера.

2023 / 06

  • dotnet new api -aot: '-aot' is not a valid option

    Исправьте ошибку '-aot is not a valid option', используя правильный синтаксис с двойным дефисом: dotnet new api --aot.

  • Как начать программировать на C#

    Руководство для начинающих по началу программирования на C#: от установки Visual Studio до написания первой программы и поиска ресурсов для обучения.

  • Что нового в .NET 8

    .NET 8 был выпущен 14 ноября 2023 года как версия LTS (Long Term Support), что означает поддержку, обновления и исправления ошибок не менее трёх лет с даты выхода. Как обычно, .NET 8 включает поддержку новой версии языка C#, а именно C# 12.

Все подборки Главная