Платформа .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 — это мощная платформа с новыми захватывающими функциями. Спасибо, что нашли время, чтобы узнать о его возможностях :)