Напомню, что полноценный релиз выйдет в ноябре 2026 года. В этом же превью-выпуске представлены значительные улучшения в среде выполнения .NET, SDK, библиотеках, C#, ASP.NET Core, Blazor, .NET MAUI и других платформах, которые работают поверх .NET.
Перечислю только небольшую часть нововведений:
- Добавлена поддержку сжатия Zstandard (zstd) с помощью новых классов ZstandardStream, ZstandardEncoder и ZstandardDecoder.
- Добавлен параметр Zstandard в DecompressionMethods для автоматической декомпрессии HTTP-ответов.
- Добавлен тип данных System.Numerics.BFloat16, 16-битный тип с плавающей точкой, использующий формат "Brain Floating Point", широко применяемый в задачах машинного обучения и искусственного интеллекта.
- Метод System.Text.Rune обрабатывает множество дополнительных API-интерфейсов для типов String, StringBuilder, TextWriter, TextInfo и Char. Это значительно упрощает корректную работу приложений с текстом в формате Unicode, особенно с символами, находящимися за пределами Basic Multilingual Plane, которые требуют использования суррогатных пар при представлении в виде символов.
- Добавлен тип System.Net.Mime.MediaTypeMap, встроенный API для сопоставления расширений файлов и MIME/типов мультимедиа.
- Добавлена поддержка альтернативных режимов округления при целочисленном делении с помощью нового перечисления DivisionRounding и новых методов класса IBinaryInteger<T>: Divide, DivRem и Remainder.
- Добавлен API для кодирования/декодирования UTF-16 в System.Buffers.Text.Base64, которые ранее существовали только в Base64Url.
- Добавлена функцию File.OpenNullHandle() для получения дескриптора системного нулевого устройства (NUL в Windows, /dev/null в Unix).
- Асинхронность во время выполнения: новый механизм асинхронности на уровне среды выполнения (включая конфигурацию, диагностику и поддержку AOT).
- CoreCLR в WebAssembly: поддержка CoreCLR в WebAssembly SDK, а также новые функции взаимодействия браузера и хоста (многопоточность/таймеры/взаимодействие).
- Расширение возможностей интерпретатора: большее покрытие IL, улучшенная интеграция (асинхронность/ReJIT/отладка), а также новые порты.
Некоторые улучшения в производительности, например, метод Guid.NewGuid() стал в 10 раз быстрее работать на Linux, улучшения JIT-компиляции, повышение производительности вызовов интерпретатора и компиляции и т.д.
Отдельно отмечу нововведения (возможные?) в новой версии C# 15 - Collection expression arguments (Аргументы выражения коллекции).
Аргументы конструктора коллекции указываются в элементе
with() в выражении коллекции. Элемент with() должен быть первым элементом в выражении коллекции. Вы можете указать значения для любого из аргументов указанного конструктора коллекции, как показано в следующем примере:List<string> names = [with(capacity: values.Count * 2), .. values];
Здесь компилятор генерирует код для вызова конструктора List<T> с аргументом capacity, установленным равным values.Count * 2. Это для ситуации,
если мы заранее знаем максимальную емкость списка и соответственно сразу определяем ее. Однако иницализируем создаваемый список только частью значений (values). Остальные значения будут добавлены позже
https://devblogs.microsoft.com/dotnet/dotnet-11-preview-1/