.NET 11 перестанет запускаться на старом железе
What's new in the .NET 11 runtime
В .NET 11 повышены минимальные требования к процессорам: для x86/x64 базовый уровень поднят с x86-64-v1 до x86-64-v2, а для Windows на Arm64 обязательным стал набор инструкций LSE. На старых CPU рантайм не запустится и выведет предупреждение. Также появился Runtime Async — предпросмотр, заменяющий компиляторные конечные автоматы на управление асинхронностью самим рантаймом: меньше кадров в стеке, проще отладка и ниже накладные расходы.
Начиная с .NET 11, .NET не запускается на старом оборудовании и может вывести сообщение: «Текущему CPU не хватает одного или нескольких базовых наборов инструкций».
- 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.
Если вы ищете […]
- 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-стека.
- wofo
Классная штука, как обычно в релизах .NET! Поддержка async в рантайме для меня неожиданна... Понимаю, что стек-трейсы дружелюбнее без конечных автоматов в коде, но я не ожидал, что они смогут переключиться на версию рантайма с эквивалентной производительностью. Круто!
- 1a527dd5
https://learn.microsoft.com/en-us/dotnet/core/compatibility/...
Имейте в виду
(decimal)0.1
// .NET 10: 0.1
// .NET 11: 0.1000000000000000055511151231
- mgdev
Мне кажется, они многое сделали, чтобы решить множество запутанных проблем с версионированием и совместимостью рантайма, которые отпугнули не-Windows разработчиков от использования .NET.
Однако они всё ещё страдают от невероятной проблемы с брендингом.
Это действительно очень жаль, потому что как рантайм он довольно невероятен, а F# в особенности приятен в работе. У них также хорошая кросс-платформенная поддержка и инструменты, которых не было несколько лет назад.
Сложите это с тем фактом, что никто всё равно не пишет код благодаря ИИ, и это мог бы быть безупречный рантайм для AI-native среды разработки.
Но этого никогда не случится.
- 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).
- jotato
Какую IDE сейчас используют люди для C#? В былые времена (около 2008) Visual Studio была единственным реальным вариантом.
Но я сейчас на Linux. Если бы я захотел вернуться к этому, что мне следует использовать?
- SurajMishra
Для функций, которые пересекаются между golang и .Net, может кто-нибудь, пожалуйста, сказать мне, почему люди выбирают .Net вместо golang для не-legacy систем? Насколько позволяют мои ограниченные знания, go гораздо эффективнее по синтаксису и памяти.