Представляем новую версию .NET 5.0 Preview 3. Она содержит набор новых функций и улучшений производительности. Мы продолжаем работать над более фундаментальными функциями, которые будут содержаться в финальном выпуске 5.0. Статья о .NET 5.0 Preview 1 охватывает то, что мы планируем внедрить в .NET 5.0. Пожалуйста, ознакомьтесь с публикацией и репозиторием dotnet/designs и поделитесь своими отзывами. И, конечно же, пожалуйста, установите Preview 3 и протестируйте свои задачи с новой версией.
Вы можете скачать .NET 5.0 Preview 3 для Windows, macOS и Linux:
ASP.NET Core и EF Core также теперь доступны.
Подробности о версии под катом.
![](https://habrastorage.org/webt/c_/vb/40/c_vb40v5pzasaui94idi9pmrmj0.png)
Вам следует использовать Visual Studio 2019 16.5 для работы с .NET 5.0. Установите последнюю версию расширения C# для использования .NET 5.0 с Visual Studio Code. .NET 5.0 пока не поддерживается в Visual Studio for Mac.
Вместе с релизом:
Давайте посмотрим на некоторые улучшения в Preview 3.
Каждый выпуск включает в себя набор изменений, которые улучшают машинный код, который генерирует JIT (мы называем это «качеством кода»). Лучшее качество кода означает лучшую производительность приложений.
.NET SDK теперь будет автоматически ссылаться на пакет NuGet Microsoft.NETFramework.ReferenceAssemblies NuGet package с учетом целевой платформы .NET Framework в файле проекта. Это изменение позволяет создавать проекты .NET Framework на компьютере без установленного пакета таргетинга .NET Framework. Это улучшение относится только к пакетам таргетинга и не учитывает другие зависимости, которые может иметь проект.
Мы были бы очень рады получить ваши отзывы о качестве релиза. В течение следующих нескольких месяцев будет много нового, ну а основной релиз выйдет в ноябре.
Вы можете скачать .NET 5.0 Preview 3 для Windows, macOS и Linux:
ASP.NET Core и EF Core также теперь доступны.
Подробности о версии под катом.
![](https://habrastorage.org/webt/c_/vb/40/c_vb40v5pzasaui94idi9pmrmj0.png)
Вам следует использовать Visual Studio 2019 16.5 для работы с .NET 5.0. Установите последнюю версию расширения C# для использования .NET 5.0 с Visual Studio Code. .NET 5.0 пока не поддерживается в Visual Studio for Mac.
Вместе с релизом:
Давайте посмотрим на некоторые улучшения в Preview 3.
Улучшение качества кода в RyuJIT
Каждый выпуск включает в себя набор изменений, которые улучшают машинный код, который генерирует JIT (мы называем это «качеством кода»). Лучшее качество кода означает лучшую производительность приложений.
- Vectorise BitArray for ARM64 – dotnet/runtime #33749 — Класс BitArray был обновлен и теперь включает аппаратно-ускоренную реализацию для ARM64 с использованием встроенных объектов ARM64. Улучшения производительности для BitArray очень важны. Спасибо @Gnbrkm41.
- Implement simple version of On Stack Replacement (OSR) – dotnet/runtime #32969. Замена в стеке (OSR) это новая возможность, которая позволяет изменять выполняющийся запущенным методом код во время выполнения метода в тот момент, когда метод активен «в стеке» (allows the code executed by currently running methods to be changed in the middle of method execution, while those methods are active «on stack»). Эта функция в настоящее время является экспериментальной и предназначена для улучшения сложных характеристик производительности многоуровневой компиляции. Пожалуйста, попробуйте, и дайте нам отзыв.
- Dynamic generic dictionary expansion feature dotnet/runtime #32270 – Некоторые (может быть, многие) виды использования обобщений теперь имеют более высокую производительность, что вызвано улучшением реализации низкоуровневых словарей (нативный код), используемых средой выполнения для хранения информации об обобщенных типах и методах. Изучите этот запрос для получения дополнительной информации. Благодарим @RealDotNetDave за сообщение об ошибке.
- Implement Vector.Ceiling/Vector.Floor dotnet/runtime #31993 – Реализуйте Vector.Ceiling/Vector.Floor используя встроенные объекты x64 и ARM64. Предложение по API. Спасибо @Gnbrkm41.
- JIT: allow CORINFO_HELP_READYTORUN_GENERIC_HANDLE to be optimized dotnet/runtime #34221. Улучшает качество кода для обобщений в образах Ready2Run.
Улучшения System.Text.Json
- Добавлена поддержка preserve references в JSON dotnet/runtime #655 – Добавляет ReferenceLoopHandling, что является одной из ключевых особенностей сериализации JSON.NET.
- Добавление нового System.Net.Http.Json project/namespace dotnet/runtime #33459 – Добавляет новые методы расширения для HttpClient, которые включают сериализацию из/в JSON.
- Добавление JsonConstructor и поддержки десериализации с parameterized ctors dotnet/runtime #33444 — Добавляет поддержку для неизменяемых классов и структур в JsonSerializer.
- Добавление JsonIgnoreCondition и логики игнорирования для каждого свойства #34049 – Добавляет поддержку обработки null-значений, что является еще одной особенностью сериализации JSON.NET.
Поддержка .NET SDK для .NET Framework Assemblies
.NET SDK теперь будет автоматически ссылаться на пакет NuGet Microsoft.NETFramework.ReferenceAssemblies NuGet package с учетом целевой платформы .NET Framework в файле проекта. Это изменение позволяет создавать проекты .NET Framework на компьютере без установленного пакета таргетинга .NET Framework. Это улучшение относится только к пакетам таргетинга и не учитывает другие зависимости, которые может иметь проект.
Заключение
Мы были бы очень рады получить ваши отзывы о качестве релиза. В течение следующих нескольких месяцев будет много нового, ну а основной релиз выйдет в ноябре.
Jogger
А версия под Linux x86, или хотя бы вменяемый скрипт для самостоятельной сборки оной, планируется?