Поделиться через


Новые возможности .NET 10

Узнайте о новых функциях в .NET 10 и найдите ссылки на дополнительную документацию. Эта страница обновлена для предварительного просмотра 3.

.NET 10, преемник .NET 9, поддерживается в течение трех лет как долгосрочная версия с поддержкой (LTS). Вы можете скачать .NET 10 здесь.

Ваши отзывы важны и ценятся. Если у вас есть вопросы или комментарии, используйте обсуждение на сайте GitHub.

Среда выполнения .NET

Среда выполнения .NET 10 представляет новые функции и улучшения производительности. К ключевым обновлениям относятся:

  • Девиртуализация метода интерфейса массива: JIT теперь может девиртуализировать и встраивать методы интерфейса массива, повышая производительность перечислений массивов.
  • Array enumeration de-abstraction: Enhancements to reduce abstraction overhead for array iteration via enumerators, enabling better inlining and stack allocation.
  • Встраивание поздних девиртуализированных методов: JIT теперь может встраивать методы, которые становятся подходящими для девиртуализации вследствие предыдущего встраивания.
  • Devirtualization based on inlining observations: The JIT uses precise type information from inlining to devirtualize subsequent calls.
  • Выделение массивов типов значений: небольшие массивы типов значений фиксированного размера без указателей GC теперь могут быть выделены стеком.
  • Поддержка AVX10.2: появилась поддержка расширенных расширений векторов (AVX) 10.2 для процессоров на основе x64, хотя в настоящее время отключена по умолчанию.
  • Улучшения NativeAOT: Поддержка приведения типов и операции отрицания в прединициализаторе типов NativeAOT.

Дополнительные сведения см. в статье Новые возможности среды выполнения .NET 10.

Библиотеки .NET

Библиотеки .NET 10 представляют несколько новых функций и улучшений, в том числе:

  • Поиск сертификатов по отпечаткам, отличным от SHA-1: новый метод позволяет находить сертификаты с помощью хэш-алгоритмов, таких как SHA-256.
  • Поиск данных в кодировке PEM в формате ASCII/UTF-8: API-для кодирования в формате PEM теперь позволяют непосредственно читать данные в ASCII/UTF-8.
  • Поддержка ISOWeek для DateOnly: Новые перегрузки в классе ISOWeek поддерживают тип DateOnly.
  • API нормализации строк для диапазонов символов: новые API позволяют нормализации строк Юникода работать с диапазонами символов, уменьшая расход памяти.
  • Числовое упорядочение для сравнения строк: новый CompareOptions.NumericOrdering параметр включает сравнение числовых строк.
  • Новая перегрузка TimeSpan.FromMilliseconds: Перегрузка с одним параметром решает проблемы с выражениями LINQ.
  • Улучшения производительности ZipArchive: оптимизация уменьшает использование памяти и повышает производительность в ZipArchiveUpdate режиме и параллельном извлечении.
  • Улучшения в OrderedDictionary: Новые перегрузки TryAdd и TryGetValue возвращают индекс для быстрого доступа.
  • Обновления сериализации JSON: генераторы источников теперь позволяют указывать ReferenceHandler в JsonSourceGenerationOptionsAttribute.
  • Леворукие преобразования матриц: новые возможности API для создания леворуких матриц преобразования.
  • Улучшения экспорта PKCS#12. Новые методы позволяют указывать алгоритмы шифрования и дайджеста для экспорта PKCS#12/PFX.

Дополнительные сведения см. в статье Новые возможности библиотек .NET 10.

Пакет SDK для .NET

Пакет SDK для .NET 10 содержит следующие новые функции и улучшения, включая:

  • Очистка ссылок на пакеты, предоставляемых платформой: автоматически удаляет неиспользуемые ссылки на пакеты, уменьшая время сборки и использование дисков.
  • Более согласованный порядок команд: новые псевдонимы, начинающиеся с существительных, для dotnet команд CLI улучшают удобочитаемость и согласованность.
  • Команды CLI по умолчанию поддерживают интерактивный режим в интерактивных терминалах: --interactive по умолчанию флаг включен для команд CLI в интерактивных терминалах.
  • Скрипты автодополнения для встроенной оболочки: dotnet интерфейс командной строки теперь поддерживает создание встроенных скриптов автодополнения для популярных оболочек с помощью команды dotnet completions generate [SHELL]. Поддерживаемые оболочки включают bash, fish, nushell, powershell и zsh.
  • Консольные приложения могут нативно создавать образы контейнеров: Теперь консольные приложения могут создавать образы контейнеров через dotnet publish /t:PublishContainer, не требуя свойства <EnableSdkContainerSupport> в файле проекта.
  • Явным образом управлять форматом изображений контейнеров: новое <ContainerImageFormat> свойство позволяет явно задать формат изображений контейнеров либо Docker или OCI.
  • Поддержка Microsoft.Testing.Platform в dotnet test: новый dotnet test опыт, разработанный специально для Microsoft.Testing.Platform, можно активировать через dotnet.config. Дополнительные сведения о существующей dotnet test интеграции для MTP и новой интеграции см. в разделе "Тестирование с помощью dotnet test".

Дополнительные сведения см. в статье Новые возможности пакета SDK для .NET 10.

.NET Aspire

.NET Aspire выпускает версию 9.1, которая посвящена улучшениям удобства использования.

Для получения подробной информации см. Что нового в .NET Aspire 9.1.

ASP.NET Core

Выпуск ASP.NET Core 10.0 содержит несколько новых функций и улучшений, включая усовершенствования Blazor, улучшения OpenAPI и обновления минимального API.

Для подробной информации смотрите Что нового в ASP.NET Core для .NET 10.

C# 14

C# 14 представляет несколько новых функций и усовершенствований для повышения производительности и качества кода разработчика. К ключевым обновлениям относятся:

  • Свойства с поддержкой полей: обеспечивает более гладкий путь от автоматически реализованных свойств к написанию пользовательских get и set методов доступа. Теперь поле резервной копии, созданное компилятором, можно получить с помощью контекстного ключевого field слова.
  • Поддержка несвязанных универсальных типов для nameof: Выражение nameof теперь поддерживает несвязанные универсальные типы, такие как List<>, возвращая имя типа без необходимости использования аргументов типа.
  • Неявные преобразования диапазона: Вводится полноценная поддержка для Span<T> и ReadOnlySpan<T> с новыми неявными преобразованиями, что обеспечивает более естественное программирование с этими типами.
  • Модификаторы простых лямбда-параметров: разрешает модификаторы параметров, например ref, inили out в лямбда-выражениях без указания типов параметров.
  • Частичные события и конструкторы: добавляет поддержку конструкторов частичных экземпляров и частичных событий, дополняя частичные методы и свойства, представленные в C# 13.
  • Элементы расширения: Методы расширения теперь поддерживают статические методы, экземплярные свойства и статические свойства через блоки extension, что позволяет создавать более гибкие и мощные расширения.
  • Null-условное присваивание: Упрощает условные присваивания, позволяя обновлять свойства или поля только в том случае, если содержащий экземпляр существует, используя оператор ?..
  • Экспериментальная функция — строковые литералы в разделе данных: позволяет выводить строковые литералы в виде данных UTF-8 в отдельный раздел PE-файла, повышая эффективность в определённых сценариях.

Дополнительные сведения см. в статье Новые возможности C# 14.

F#

Обновления F# в .NET 10 включают несколько новых функций и улучшений в языковой, стандартной библиотеке и службе компилятора. К ключевым обновлениям относятся:

  • Язык F#:

    • Для использования новых языковых функций необходимо включить свойство проекта <LangVersion>preview</LangVersion> в файлах .fsproj. Эти функции становятся стандартными в выпуске .NET 10.
  • Стандартная библиотека FSharp.Core:

    • Изменения стандартной FSharp.Core библиотеки применяются автоматически к проектам, скомпилированным с помощью нового пакета SDK, если только более низкая FSharp.Core версия не закреплена явным образом.
  • FSharp.Compiler.Service:

    • Общие улучшения и исправления ошибок в реализации компилятора.

Для получения дополнительной информации см. F# release notes.

Visual Basic

Обновления Visual Basic в .NET 10 включают следующие функции и улучшения:

  • unmanaged поддержка ограничений: компилятор Visual Basic теперь интерпретирует и применяет универсальное ограничение, что обеспечивает лучшую unmanaged совместимость с API среды выполнения.
  • Honor overload resolution priority: The Visual Basic compiler respects the OverloadResolutionPriorityAttribute, ensuring faster Span-based overloads are preferred and resolving ambiguities among method overloads.

Эти обновления гарантируют, что Visual Basic может использовать обновленные функции в C# и среде выполнения, повышая совместимость и производительность.

Дополнительные сведения см. в статье "Новые возможности Visual Basic".

.NET MAUI

Обновления .NET MAUI в .NET 10 включают несколько новых функций и улучшений качества для .NET MAUI, .NET для Android и .NET для iOS, Mac Catalyst, macOS и tvOS.

Для получения подробной информации см. Что нового в .NET MAUI в .NET 10.

EF Core

Релиз EF Core 10 представляет несколько новых функций и улучшений, включая улучшения LINQ, оптимизацию производительности и улучшенную поддержку Azure Cosmos DB.

Для получения подробной информации см. Что нового в EF Core для .NET 10.

Windows Forms

Изменения в Windows Forms для .NET 10 включают обновления, связанные с буфером обмена, портированные UITypeEditors из .NET Framework, и улучшения качества.

Чтобы узнать подробнее, см. Что нового в Windows Forms для .NET 10.

WPF (Windows Presentation Foundation)

Обновления WPF в .NET 10 включают в себя несколько улучшений производительности, изменения в стиле Fluent, исправления ошибок и многое другое.

Для получения подробностей см. Что нового в WPF в .NET 10.