Платформа .NET от Microsoft продолжает подниматься на новые высоты благодаря своему последнему обновлению .NET 7. Оно содержит множество новых функций и улучшений и обещает коренным образом изменить способы создания приложений разработчиками. От гармоничного сочетания Blazor и .NET MAUI для создания гибридного Blazor Hybrid до возможности без особых усилий управлять одним кешем памяти и отслеживать изменения активности — в .NET 7 каждый найдет что-то для себя. Имея это в виду, давайте углубимся в суть этого обновления, изучая тонкости его новых функций и то, как они призваны помочь разработчикам создавать более быстрые, безопасные и просто лучшие приложения. Итак, являетесь ли вы опытным разработчиком .NET или только начинаете, приготовьтесь открыть для себя всю мощь .NET 7!
Полный список обновлений
Усовершенствования Managed Extensibility Framework
- Новые API позволяют добавлять один экземпляр объекта в
System.Composition.Hosting
.
Улучшенная наблюдаемость
- Вносит улучшения в поддержку разрабатываемой облачной спецификации (OpenTelemetry).
Умное завершение табуляции с помощью «новой» команды
- Интерфейс командной строки
dotnet
теперь предлагает еще более продвинутое завершение вкладок с дополнительными функциями для командыnew
.
Динамический PGO: новый уровень оптимизации
- Dynamic PGO оптимизирует усилия по оптимизации, устраняя необходимость в специальных инструментах. Это улучшение по сравнению с традиционным Static PGO.
Кроссплатформенные API Tar
- В последнем обновлении .NET представлены кроссплатформенные API для изменения и извлечения tar-архивов.
Ускоренное выполнение кода с OSR
- OSR (замена стека) работает рука об руку с многоуровневой компиляцией, повышая скорость при запуске до 25 % и общую производительность на 10–30 %.
Улучшенная криптографическая защита
- Microsoft уделяет особое внимание генерации имен X.500, что делает создание
X500DistinguishedName
проще и безопаснее.
Интеграция Blazor и .NET MAUI
- Blazor — это среда разработки веб-приложений, а .NET MAUI ориентирован на мобильные приложения. Microsoft работает над объединением этих двух технологий для создания Blazor Hybrid для создания нативных приложений.
Оптимизированная облачная разработка
- .NET 7 упрощает создание облачных приложений, упрощая установку и настройку системы аутентификации и авторизации и обеспечивая небольшие улучшения производительности во время выполнения.
Улучшенная горячая перезагрузка
- Горячая перезагрузка C# теперь доступна в Blazor WebAssembly и .NET для Android и iOS с такими функциями, как добавление лямбда-выражений, классов и полей к существующим методам и классам.
Более плавное обновление приложений
- .NET 7 содержит улучшения обновления и помощника по обновлению .NET, упрощая миграцию приложений.
Улучшенная сериализация и десериализация
System.Text.Json
включает в себя такие функции, как методыJsonSerializerOptions
иPatch
, что делает возможной сериализацию и десериализацию иерархий полиморфных типов.
Эффективное копирование строк
- С помощью
CopyString
теперь вы можете копировать строки UTF-8 или UTF-16 без декодирования благодаря новым методам.
Улучшения отслеживания активности
Activity.CurrentChange
в .NET 7 позволяет получать уведомления об изменении значения, заменяяAsyncLocal<T>
в .NET 6 для отслеживания контекста диапазона.
Оптимизация открытых методов
- Решает проблему с производительностью дополнительных выделений при использовании интерфейсов перечисления и обеспечивает быстрый доступ к элементам без выделений.
Улучшения структуры времени и даты
- .NET 7 теперь позволяет добавлять значения микросекунд и наносекунд к различным структурам времени и даты.
Поддержка одного и нескольких кэшей памяти
- .NET 7 позволяет создавать экземпляры одного кеша памяти с помощью API
AddMemoryCache
, а также нескольких кешей памяти с помощьюGetCurrentStatistics
.
Упрощенные командные строки
- Команды больше не нуждаются в префиксе
--
, но старые версии команд по-прежнему доступны.
Революция регулярных выражений
- С новым генератором регулярных выражений оптимизация шаблонов стала проще и быстрее. Сократите время, затрачиваемое на оптимизацию, до 5 раз с помощью этого инструмента, который работает в рамках класса
partial
для полной интеграции в ваш рабочий процесс.
Анализируйте и улучшайте с легкостью
- Теперь доступен новый анализатор для поиска
Regex
применений с потенциалом преобразования в генератор источниковRegexGenerator
. Microsoft заявляет, что выходные данные, сгенерированные генератором, зависят от известных значений параметров и требуют LangVersion для предварительного просмотра.
Оптимизация преобразования регулярных выражений
- Исправление кода теперь может предлагать использовать методы генератора исходного кода
RegexGenerator
и даже переопределять имена по умолчанию. Он также имеет возможность заменить исходный код вызовом нового метода, что упрощает и упрощает процесс преобразования.
Запускайте умнее
- Повышение производительности находится на переднем крае .NET 7, и время запуска не является исключением. По данным Microsoft, с этим новым выпуском вы можете ожидать сокращения времени запуска на 10–15%.
Собственный AOT
- Внедрение компиляции Native AOT (Ahead-of-time) дает преимущества в производительности, такие как ускоренное время запуска, сокращение использования памяти и меньший размер диска. Хотя .NET также предлагает
ReadyToRun
иNano AOT
, AOT — это новое дополнение, которое расширяет, а не заменяет эти параметры.
Entity Framework Core 7
- В EF Core 7 представлено революционное обновление, в котором обновления и удаления сущностей перенесены на сторону базы данных, что приводит к повышению производительности и сокращению использования памяти. Будьте готовы работать эффективнее, а не усерднее, с EF Core 7.
Критически важные теги производительности
- Эта новая функция в .NET 7 позволяет отображать методы перечислителя тегов, обеспечивая повышение производительности в сценариях, где производительность имеет наибольшее значение. С новым обновлением перечисление объектов можно выполнять без потери скорости или производительности.
Оптимизация циклов
- Это может показаться незначительным улучшением, но оно по-прежнему обеспечивает повышение производительности. Microsoft устранила условия инициализации переменных клонирования цикла, что привело к увеличению производительности на 21%.
Оптимизированное отражение
- .NET 7 предлагает более рациональный подход к отражению, упрощая запросы к метаданным и динамический вызов функций. Благодаря возможности создавать динамически генерируемые методы во время выполнения, Reflection остается мощным инструментом в наборе инструментов разработчика.
Дополнительно могу порекомендовать следующие видео:
И следующая статья:
https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-7
В заключение отметим, что .NET 7 — это мощная платформа с новыми захватывающими функциями. Спасибо, что нашли время, чтобы узнать о его возможностях :)