.NET 7 создавали на основе .NET 6, который включает в себя общий набор основных библиотек, runtime-компиляцию и SDK, а также помогает разработчикам проще и продуктивнее создавать их проекты.
Приоритетом разработки .NET 7 стала улучшенная поддержка облачных нативных сценариев, инструменты для работы с легаси-кодом и упрощение работы с контейнерами.
Команда Microsoft планирует инвестировать больше денег в развитие ASP.NET Core, Blazor, EF Core, WinForms, WPF и других платформ.
Вот некоторые изменения в седьмой версии .NET.
Null-аннотации для Microsoft.Extensions. Разработчики добавили аннотации для большинства библиотек Microsoft.Extensions.*, чтобы указывать пользователям, когда они передают null в качестве аргументов. К финальному релизу .NET 7 команда Microsoft планирует доработать оставшиеся библиотеки.
Генерация кода P/Invoke. Разработчики интегрировали P/Invoke source-генерацию, которая была в прототипах для .NET 6 и теперь конвертирована в runtime-библиотеку. Это означает, что P/Invoke теперь AOT-совместимая и больше не требует IL-основы для генерации в runtime.
Улучшения для hot reload. Для C# hot reload в Blazor WebAssembly и .NET на iOS и Android теперь доступны следующие изменения:
- статичная лямбда для существующих методов;
- лямбда, которая захватывает this к существующему методу c хотя бы одной лямбдой с this;
- новые статичные и невиртуальные методы для существующих классов;
- новые статичные поля для существующих классов;
- новые классы.
Что ещё? Новые API для System.Text.Json, оптимизация JIT-компилятора и изменения в API для мониторинга — Activity и ActivityContext.
Подробнее изучить все обновления .NET 7 можно в блоге Microsoft.