13 октября разработчики Microsoft выпустили релиз .NET 5.0 Release Candidate 2 (RC2). Это почти финальный выпуск .NET 5.0 и последний из двух RC перед официальным выпуском в ноябре.
Что нового?
RC 2 включает предварительную версию .NET 5.0.0 Runtime, поэтому при установке SDK не требуется загружать пакеты среды выполнения отдельно. .NET 5 RC 2 требует Visual Studio 2019 16.8 Preview 4, чтобы в полной мере использовать все его функции. .NET 5 RC 2 не будет работать должным образом в более ранних версиях Visual Studio.
Релиз .NET 5.0 включает множество улучшений, в частности:
- приложения с одним файлом;
- образы контейнеров меньшего размера;
- более функциональные API-интерфейсы JsonSerializer;
- полный набор аннотаций ссылочных типов, допускающих значение NULL;
- новые языковые версии C# 9 и F# 5.0;
- новые имена целевой платформы и поддержку Windows ARM64.
Значительно улучшена производительность в библиотеках NET, GC и JIT. Улучшения для ARM64 привели к большей пропускной способности и меньшему размеру двоичных файлов.
C# 9 сопоставление с образцом
Сопоставление с образцом – это языковая функция, впервые добавленная в C# 7.0. C# 7.0 вводит понятие шаблонов, которые представляют собой синтаксические элементы для проверки – имеет ли значение определенную «форму», и можно ли извлекать информацию из значения, когда это нужно.
Команда C# добавляла новые шаблоны в каждую из версий C# 7, C# 8 и C# 9. В C# 9 добавлено три новых типа шаблонов:
- относительные шаблоны, использующие реляционные операторы, такие как < и >=;
- логические модели, с использованием and, or и not. Этот тип шаблона наиболее полезен, когда вы хотите сравнить несколько вещей в одном шаблоне. Пример: foo is not null;
- шаблоны простых типов, использующие только тип и никакой другой синтаксис для сопоставления.
ClickOnce
Технология развертывания приложения ClickOnce, позволяющая создавать самостоятельно обновляющиеся приложения Windows, уже много лет является популярным сервисом развертывания среды .NET. Теперь она поддерживается для приложений Windows .NET Core 3.1 и .NET 5.0. и позволяет публиковать приложения как из командной строки, так и в Visual Studio
Для достижения этого результата команды .NET и Visual Studio работали вместе. С самого начала проекта у разработчиков было две цели:
- включить знакомый интерфейс для ClickOnce в Visual Studio;
- включить современный CI/CD для публикации ClickOnce с потоками командной строки с помощью MSBuild или инструмента Mage.
Установщик ClickOnce позволит установить среду выполнения .NET на пользовательские машины, если это необходимо. Разработчики также намерены поддерживать автономные и однофайловые приложения.
Большие изменения произошли в утилите создания и редактирования манифестов приложений Mage. Теперь Mage – это инструмент .NET, распространяемый через NuGet, для установки которого достаточно иметь .NET 5.0 SDK. Mage теперь также можно использовать для публикации приложений .NET Framework.
Windows Arm64
Установщики MSI теперь доступны для Windows Arm64.
Пакет SDK для .NET 5.0 в настоящее время не содержит компонентов рабочего стола Windows в Windows Forms и WPF в Windows Arm64. Это позднее изменение изначально было опубликовано в .NET 5.0 Preview 8. Пакет рабочего стола Windows для Windows Arm64 будет добавлен в следующем обновлении обслуживания 5.0. На данный момент SDK, ASP.NET Core и консольные приложения поддерживаются в Windows Arm64.
Разработчики считают, что скоро .NET 5 будет готов к широкому использованию. На данный момент .NET 5.0.0 RC 2 доступен для загрузки и использования на Github, а также на официальной странице проекта.
В рамках текущей версии среда выполнения ASP.NET Core позволяет запускать существующие веб-приложения или серверные приложения, .NET Desktop Runtime позволяет запускать существующие настольные приложения Windows, а .NET Runtime содержит только компоненты, необходимые для запуска консольного приложения.
Напомним, что в августе Microsoft запустила интернет-портал, на котором собрана информация и статистика обо всех своих open source разработках. Там размещена информация о Accessibility Insights, .NET, PowerShell, PowerToys, Windows Terminal, TypeScript, Visual Studio Code и других разработках компании.