.NET 11 вышел: C# 15 получил union-типы, а CLI запускается без управляемой среды

Microsoft выпустила .NET 11 — STS-релиз с двумя годами поддержки. Главное: union-типы и закрытые иерархии в C# 15, Native AOT CLI-хост и тёплый MSBuild-сервер в SDK, Runtime Async в превью с более чистым стеком вызовов, а также Zstandard-сжатие, новые in-memory адаптеры потоков и LINQ FullJoin. Для AI-разработки добавлены шаблон MCP-сервера, Microsoft.Extensions.AI и Microsoft Agent Framework.

Runtime Async переносит приостановку и возобновление асинхронных операций в саму среду выполнения вместо опоры на сгенерированные компилятором конечные автоматы.
  1. CharlieDigital

    По моему опыту, C# и .NET оба «недооценены» во многом из-за наследия.

    Некоторые до сих пор думают, что .NET работает только на Windows. Некоторые не смотрели на C# со времён .NET Framework. Некоторые до сих пор злятся из-за некоторых решений Microsoft вокруг OSS (отладчик, фиаско с hot reload и т.д.).

    Но в повседневной работе с C# и .NET для бэкендов? Это действительно фантастика. ИИ, похоже, очень его любит, и множество инструментов для агентов позволяют развернуться вовсю. Анализатор Roslyn, генераторы исходного кода, работающий hot reload (для компилируемого языка), куча действительно хорошей документации от Microsoft, в целом низкая вариативность и высокая согласованность от кодовой базы к кодовой базе (например, по сравнению с Drizzle vs Prisma vs TypeORM vs Kysely vs ... в мире Node).

    Моя предыдущая команда перешла с TS на C# и F#[0][1], и это было благословением; многое из платформенных операций упростилось. Это просто одна очень солидная цепочка инструментов, и пакеты в целом стабильны (гораздо меньше усилий на поддержание конфигурации/инструментов платформы и больше фокуса просто на создании). Первопартийные пакеты получают регулярные обновления безопасности, и C# не имеет почти такого же уровня подверженности транзитивным пакетам, как в экосистеме JS/TS.

    C# кажется действительно надёжным выбором в эпоху ИИ-кодинга благодаря общей стабильности, мощному статическому анализатору, настойчивости в отношении типов и очень хорошим инструментам. Подходит не для всех случаев (например, CLI, serverless-функции), но фантастичен для бэкенд-API.

    Если вы ищете […]

  2. giancarlostoro

    C# был моим вторым языком программирования после VB6. Помню, в начале 2000-х, когда мне было 12, я использовал компьютер лучшего друга, чтобы попытаться скачать VB .NET (у него был более быстрый интернет) только потому, что он был бесплатным, а потом был крайне разочарован, когда не смог просто запустить свои проекты на VB6, которые хотел запустить на нём... Несколько лет спустя, примерно в 2007–2009, я попробовал C#, и это изменило жизнь.

    В итоге я пошёл в колледж после работы в рознице в Disney, а после колледжа моя первая работа должна была быть на C#, но проект не утвердили, так что я впервые познакомился с Python — который полюбил, затем с JavaScript — который ненавидел, но до сих пор испытываю любовь-ненависть, и наконец с C#, но это был не .NET 3.5, нет, они начали использовать .NET Core, который был... чем-то другим, много выдирания зубов в первые дни .NET Core.

    Столько замечательных проектов сделано на .NET, моя единственная жалоба — хотел бы я, чтобы Microsoft сделала кроссплатформенный GUI-стек, которого бы они действительно придерживались, и заставила его работать на Linux тоже. ;)

    Я знаю, есть альтернативы, но ничто не сравнится с тем, чтобы сказать коллегам «давайте просто использовать встроенное» при выборе GUI-стека.

  3. 1a527dd5

    https://learn.microsoft.com/en-us/dotnet/core/compatibility/...

    Имейте в виду

    (decimal)0.1

    // .NET 10: 0.1

    // .NET 11: 0.1000000000000000055511151231

  4. dead_hn_theory

    C# и .NET — абсолютное удовольствие для программирования. Для меня это немного более «энтерпрайзный» Ruby on Rails, но как только ты в него погружаешься, появляется поток. Всё очень хорошо сочетается, особенно с LINQ. Компиляция/«скриптинг» кода во время выполнения с помощью Roslyn Compiler Services и т.д. — просто отлично.

  5. wofo

    Классные штуки, как обычно в релизах .NET! Поддержка async на уровне рантайма меня удивляет... Я понимаю, что стек-трейсы дружелюбнее без конечных автоматов в коде, но я не ожидал, что они смогут переключиться на версию рантайма с эквивалентной производительностью. Круто!

  6. Rapzid

    У DotNet наконец-то есть официальный менеджер версий! Посмотрите dotnetup: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnetup...

  7. jotato

    Какую IDE сейчас используют для C#? В былые времена (около 2008) Visual Studio была единственным реальным вариантом.

    Но теперь я на Linux. Если бы я захотел снова взяться, что мне использовать?

  8. GaProgMan

    > .NET 11 — это релиз Standard Term Support (STS) с двумя годами поддержки в рамках политики поддержки .NET. Релизы STS и Long Term Support (LTS) имеют одинаковые политики качества и обслуживания; разница — в длительности поддержки. .NET 10 остаётся поддерживаемым вариантом LTS. Оставайтесь на связи с обновлениями обслуживания, какой бы релиз вы ни выбрали.

    Они похоронили главную мысль в этом.

    - .NET 10 прекращает поддержку 14 ноября 2028 года

    - .NET 11 прекращает поддержку 9 ноября 2028 года

    Это значит, что у всех, кто обновится до 11, будет меньше дней поддержки. Но идея в том, что вы обновитесь до 12, как только он выйдет в RTM.

    Проблема в том, что у меня есть клиенты, которые отказываются сдвинуться с 2.1 (или даже обновиться до переиздания 2.1: 2.3).

Ещё за этот день

2026-11-10