Net core 5 что нового
10 ноября вышел в долгожданный релиз фреймворк .NET 5 , который является развитием .NET Core в долгой эволюции фреймворка .NET. .NET 5.0 — это первый релиз на пути к унификации платформы .NET, который позволяет более плавно мигрировать с .NET Framework.
Некоторые ключевые моменты в .NET 5:
- Однофайловые приложения (single file application). Все зависимости приложения теперь можно поместить в один файл с исполняемым файлом. Кроме того, на целевом компьютере теперь необязательно предварительно предустанавливать фреймворк .NET.
- Улучшение поддержки и разработки десктоп-приложений (Windows Forms, WPF)
- Новые возможности C# 9.0 и F# 5.0, например, records, программы верхнего уровня, улучшенные выражения switch и т.д.
- Поддержка Windows ARM64
- Улучшение производительности по сравнению с предыдущими версиями
Боле подробную информацию про релиз .NET 5 можно найти на официальном сайте Microsoft на странице https://devblogs.microsoft.com/dotnet/announcing-net-5-0/
Вместе с .NET 5 вышли в релиз ASP.NET Core 5.0 и Entity Framework Core 5.0.
Основные новвоведения и улучшения в ASP.NET Core 5.0:
- Улучшения в привязке модели в MVC, добавлена поддержка для типов records в C# 9
- Улучшение поддержки Blazor Server и Blazor WebAssembly
- Встроенная поддержка для OpenAPI и Swagger UI для Web API
- Фильтры хабов SignalR и параллельное обращение к хабам
- Авто обновление браузера с помощью команды dotnet watch
- Улучшения производительности HTTP/2 и gRPC (если верить Microsoft gRPC на ASP.NET производительнее, чем в проектах на Go, С++ или Java)
И некоторые ключевые обновления в EF Core 5.0:
- Добавлена поддержка автоматической связи Many-to-many
- Добавлена возможность наследования table-per-type
- Упрощенное логгирование
Для использования .NET 5.0, а также ASP.NET Core 5 и EF Core 5.0 необходимо установить Visual Studio 16.8 или выше на Windows или последнюю версию Visual Studio for Mac для macOS. Также можно использовать Visual Studio Code, в которой расширение для языка C# уже поддерживает .NET 5.0 and C# 9.
Новые возможности .NET Core 5
.NET 5 — это следующий основной выпуск .NET Core после выпуска 3.1. Мы назвали этот новый выпуск .NET 5, а не .NET Core 4, по двум причинам:
- Мы пропустили номера версий 4. x, чтобы избежать путаницы с .NET Framework 4.x.
- Мы удалили «Core» из имени, чтобы подчеркнуть, что с настоящего момента это основная реализация .NET. .NET 5 поддерживает больше типов приложений и больше платформ, чем .NET Core или .NET Framework.
ASP.NET Core 5.0 основана на .NET 5, но у нее сохраняется имя «Core», чтобы избежать путаницы с ASP.NET MVC 5. Аналогичным образом у Entity Framework Core 5.0 сохраняется имя «Core», чтобы избежать путаницы с Entity Framework 5 и 6.
В .NET 5 включены следующие улучшения и новые функции по сравнению с .NET Core 3.1:
- Обновления C#
- Обновления F#
- Обновления Visual Basic
- Новые функции System.Text.Json
- Приложения с одним файлом
- Обрезка приложений
- Встроенные компоненты Windows Arm64 и Arm64
- Поддержка средств для отладки дампа
- Библиотеки среды выполнения на 80 % совместимы с ссылочными типами, допускающими значение NULL
- Улучшения производительности:
- Сборка мусора (GC)
- System.Text.Json
- System.Text.RegularExpressions
- Асинхронное ValueTask пула
- Оптимизация размера контейнера
- И многое другое
.NET 5 не заменяет .NET Framework
.NET 5 и более поздних версий — это основная реализация .NET, но платформа .NET Framework 4.x по-прежнему поддерживается. Переносить приведенные ниже технологии с .NET Framework на .NET 5 не планируется, но в .NET существуют альтернативные решения.
Технология Рекомендуемое альтернативное решение Веб-формы ASP.NET Core Blazor или Razor Pages Рабочий процесс Windows (WF) Elsa-Workflows Windows Communication Foundation
Исходная реализация Windows Communication Foundation (WCF) поддерживалась только в Windows. Однако есть клиентский порт, доступный из .NET Foundation. Это полностью открытый код, кроссплатформенный и поддерживаемый корпорацией Майкрософт. Ниже перечислены основные пакеты NuGet.
- System.ServiceModel.Duplex
- System.ServiceModel.Federation
- System.ServiceModel.Http
- System.ServiceModel.NetTcp
- System.ServiceModel.Primitives
- System.ServiceModel.Security
Серверные компоненты, дополняющие перечисленные выше упоминание клиентские библиотеки, доступны через CoreWCF. По состоянию на апрель 2022 года CoreWCF официально поддерживается корпорацией Майкрософт. Однако для альтернативы WCF рассмотрим gRPC.
.NET 5 не заменяет .NET Standard
Разработка новых приложений может указать net5.0 Moniker Target Framework (TFM) для всех типов проектов, включая библиотеки классов. Упрощено совместное использование кода между рабочими нагрузками .NET 5: все, что вам нужно, — net5.0 это TFM.
Для приложений и библиотек net5.0 .NET 5 TFM объединяет и заменяет netcoreapp и netstandard TFM. Однако если планируется совместное использование кода рабочими нагрузками .NET Framework, .NET Core и .NET 5, это можно сделать, указав netstandard2.0 в качестве TFM. Дополнительные сведения см. в статье .NET Standard.
Обновления C#
Разработчики, создающие приложения .NET 5, получат доступ к последним версиям и функциям C#. .NET 5 связан с языком C# 9, в котором предоставлено множество новых функций. Вот некоторые из них.
- Записи: ссылочные типы с семантикой равенства на основе значений и неразрушительной мутацией, поддерживаемой новым with выражением.
- Сопоставление реляционных шаблонов: расширяет возможности сопоставления шаблонов реляционным операторам для сравнения вычислений и выражений, включая логические шаблоны — новые ключевое слово and , or и not .
- Операторы верхнего уровня: как средство ускорения внедрения и обучения C#, Main метод можно опустить, а приложение так же просто, как показано в следующем примере:
System.Console.Write("Hello world!");Дополнительные сведения о доступных функциях C# 9 см. в разделе Новые возможности C# 9.
Генераторы исходного кода
Генераторы исходного кода, как и другие новые функции C#, становятся частью процесса разработки проектов. Генераторы исходного кода позволяют коду, который выполняется во время компиляции, проверять программу и создавать дополнительные файлы, компилируемые вместе с остальной частью кода.
Дополнительные сведения о генераторах исходного кода см. в статьях Введение в генераторы исходного кода C# и Примеры генераторов исходного кода C#.
Обновления F#
F# — это язык функционального программирования .NET, и с помощью .NET 5 разработчики имеют доступ к F# 5. Одна из новых функций — интерполированные строки, аналогичные интерполированным строкам в C#, и даже JavaScript.
let name = "David" let age = 36 let message = $" is years old."Помимо обычной интерполяции строк, существует типизированная интерполяция. При использовании типизированной интерполяции заданный тип должен соответствовать спецификатору формата.
let name = "David" let age = 36 let message = $"%s is %d years old."Этот формат аналогичен sprintf функции, которая форматирует строку на основе типобезопасных входных данных.
Дополнительные сведения см. в статье Новые возможности в F# 5.
Обновления Visual Basic
В .NET 5 отсутствуют новые языковые функции Visual Basic. Однако в .NET 5 поддержка Visual Basic расширена:
Description dotnet new параметр Консольное приложение console Библиотека классов classlib Приложение WPF wpf Библиотека классов WPF wpflib Библиотека настраиваемых элементов управления WPF wpfcustomcontrollib Библиотека пользовательских элементов управления WPF wpfusercontrollib Приложение Windows Forms (WinForms) winforms Библиотека классов для Windows Forms (WinForms) winformslib Проект модульного теста mstest Тестовый проект NUnit 3 nunit Элемент теста NUnit 3 nunit-test Тестовый проект xUnit xunit Дополнительные сведения о шаблонах проектов из интерфейса командной строки .NET см. в разделе dotnet new .
Новые функции System.Text.Json
В System.Text.Json имеются новые функции:
- Сохранение ссылок и обработка циклических ссылок
- Методы расширения HttpClient и HttpContent
- Разрешение или запись чисел в кавычках
- Поддержка неизменяемых типов и записей C# 9
- Поддержка методов доступа к свойствам, не являющимся общедоступными
- Поля поддержки
- Свойства с условным игнорированием
- Поддержка словарей без строкового ключа
- Разрешение пользовательским преобразователям обработки значения NULL
- Копирование JsonSerializerOptions
- Создание JsonSerializerOptions с помощью веб-параметров по умолчанию
См. также
- Введение в .NET
- Улучшения производительности в .NET 5
- Скачивание пакета SDK для .NET
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
The .NET documentation is open source. Provide feedback here.
Обратная связь
Отправить и просмотреть отзыв по
Представляем .NET 5
6 мая было объявлено, что следующим после .NET Core 3.0 релизом будет .NET 5. Это будет следующий большой релиз в семействе .NET.
В будущем останется только один .NET, и вы сможете использовать его для разработки под Windows, Linux, macOS, iOS, Android, tvOS, watchOS, WebAssembly и другие платформы.
Мы представим новые .NET API, возможности исполняющей среды и возможности языка как части .NET 5.
С момента запуска проекта .NET Core мы добавили в платформу около 50 тысяч API .NET Framework. .NET Core 3.0 с помощью .NET Framework 4.8 дополняется большинством недостающих возможностей, благодаря ему стали доступны Windows Forms, WPF и Entity Framework 6. .NET 5 перенял эстафету, в его основу легли .NET Core и всё лучшее из проекта Mono, в результате чего получилась единая платформа, которую можно использовать для всего вашего современного .NET-кода.
Мы намерены выпустить .NET 5 в ноябре 2020 года, а первая preview-версия станет доступной уже в первой половине 2020 года. Платформа станет доступна вместе с будущими обновлениями Visual Studio 2019, Visual Studio for Mac и Visual Studio Code.
.NET 5 = .NET Core vNext
.NET 5 — следующий шаг в .NET Core. Проект призван улучшить .NET в нескольких ключевых аспектах:
- Создать единые исполняющую среду и фреймворк, которые можно использовать везде, с одинаковым поведением в runtime и опытом разработки.
- Расширить возможности .NET за счёт лучших наработок из .NET Core, .NET Framework, Xamarin и Mono.
- Собрать продукт из единой кодовой базы, над которой разработчики (из Microsoft и сообщества) могут вместе работать и расширять её, что позволит улучшить все возможные сценарии.
Сохранилось всё, что вам нравится в .NET Core:
- Open source и ориентированность на сообщество GitHub.
- Кроссплатформенная реализация.
- Поддержка использования специфических платформозависимых возможностей, таких как Windows Forms и WPF под Windows, а также нативных привязок (bindings) к каждой нативной платформе из Xamarin.
- Высокая производительность.
- Side-by-side инсталляция.
- Маленький размер файлов проектов (SDK-стиль).
- Интерфейс командной строки (CLI) с широкими возможностями.
- Интеграция с Visual Studio, Visual Studio for Mac и Visual Studio Code.
- У вас будет больше возможностей исполняющей среды (подробнее об этом ниже).
- Возможность вызова кода Java из .NET 5 будет доступна на всех платформах.
- Вызов кода Objective-C и Swift из .NET 5 будет поддерживаться в нескольких операционных системах.
- CoreFX будет расширен, чтобы поддерживать статическую компиляцию .NET (ahead-of-time – AOT), для уменьшения потребления ресурсов (footprints) и поддержки большего количества операционных систем.

Мы пропускаем четвёртую версию, потому что у пользователей может возникнуть путаница с .NET Framework, который уже давно выпускается в версии 4.x. Кроме того, мы хотели ясно дать понять, что .NET 5 — это будущее платформы .NET.
Также мы решили воспользоваться случаем и упростить порядок наименований. Мы считаем, что если развиваться будет только один .NET, то нам не понадобится поясняющий термин “Core”. Короткое название проще, оно говорит о том, что возможности и поведение .NET 5 унифицированы. Если хотите, то можете и дальше пользоваться названием “.NET Core”.
Исполняющие среды
Mono — первоначальная кроссплатформенная реализация .NET. Она начиналась как open-source альтернатива .NET Framework, и позднее, с ростом популярности iOS- и Android-устройств, мы переориентировали её на мобильный сегмент. Mono — это исполняющая среда, используемая как часть Xamarin.
CoreCLR — это исполняющая среда, используемая как часть .NET Core. Изначально была ориентирована на поддержку облачных приложений, включая крупнейшие сервисы в Microsoft, а сегодня она также используется для настольных Windows-приложений, IoT и машинного обучения.
У исполняющих сред .NET Core и Mono много общего (все же, обе они — исполняющие среды .NET), но у каждой есть и свои уникальные возможности. Поэтому имеет смысл дать вам возможность выбирать тот опыт использования, который вам нужен. Сейчас мы работаем над тем, чтобы сделать CoreCLR и Mono подключаемыми заменами друг для друга. Процесс будет таким же простым, как переключение сборки для выбора между разными опциями исполняющей среды.
В следующих главах я опишу наши ключевые планы касательно .NET 5. Они помогут вам понять, как мы собираемся развивать две исполняющие среды одновременно и в то же время по отдельности.
Высокая производительность и продуктивность
С самого начала .NET опирался на JIT-компилятор для преобразования Intermediate Language кода в оптимизированный машинный код. Мы создали лучшую в отрасли среду исполнения с JIT, обладающую очень высокой производительностью, в то же время позволяющую разработчикам писать код легко и быстро.
JIT-компиляторы хорошо подходят для долго работающих облаков и клиентских сценариев. Они способны генерировать код, учитывающий особенности аппаратной конфигурации, в том числе специфические процессорные инструкции. Также JIT может заново генерировать методы во время исполнения, эта методика позволяет компилировать с высокой скоростью, в то же время создавая тонко настроенную версию кода, если какие-то методы используются часто.
Наши усилия по ускорению работы ASP.NET Core, проявившиеся в результатах бенчмарков TechEmpower, являются хорошим примером возможностей JIT и являются нашим вкладом в CoreCLR. Мы постарались подготовить .NET Core для использования контейнеров, это демонстрирует возможности исполняющей среды динамически адаптироваться к ограниченным средам.
Инструменты разработчиков — ещё одна сфера, в которой JIT прекрасно себя зарекомендовала, например, dotnet watch или режим “edit and continue”. Для работы инструментов часто требуется многократно компилировать и загружать код в одном и том же процессе без перезапуска, и делать это нужно очень быстро.
Разработчики, использующие .NET Core или .NET Framework, в первую очередь полагаются на JIT. Так что им это должно казаться привычным.
Стандартным подходом для большинства рабочих нагрузок .NET 5 будет использование CoreCLR исполняющей среды с JIT. Два важных исключения — iOS и клиентская Blazor (WebAssembly), они требуют нативной предварительной (ahead-of-time) компиляции.
Быстрый запуск, низкое потребление ресурсов процессора (footprint) и уменьшение потребления памяти
В рамках проекта Mono большинство усилий было нацелено на мобильный сегмент и игровые приставки. Главная возможность и результат этого проекта — AOT-компилятор для .NET, разработанный на основе компилятора LLVM. AOT-компилятор Mono позволяет собирать .NET-код в единый нативный исполняемый код, который может работать на любой машине, как и код на C++. Заранее скомпилированные (AOT) приложения могут эффективно исполняться при ограниченных ресурсах (small places), и при необходимости жертвуют производительностью ради своего запуска.
Проект Blazor уже использует Mono AOT и одним из первых перейдёт на .NET 5. Мы используем его как один из способов доказательства своих планов.
Есть два типа AOT-решений:
- Требующие полной AOT-компиляции.
- Решения, большая часть кода которых AOT-скомпилирована, но всё же позволяющие использовать JIT или интерпретатор для таких паттернов кода, которые не дружат с AOT (например, дженерики).
.NET Native — это AOT-компилятор, который мы используем для Windows UWP-приложений. Он относится к первому типу AOT-решений. В этой конкретной реализации мы ограничили .NET API и доступные вам возможности. Это помогло нам понять, что AOT-решения должны покрывать полный спектр .NET API и паттернов.
AOT-компиляция останется необходимой для iOS, WebAssembly и некоторых игровых приставок. Мы сделаем её опциональной для приложений, которые встраиваются в технику (appliance-like), для которых требуется быстрый запуск и/или низкое потребление ресурсов процессора.
Основы и схожие требования
Для нас критически важно продолжать развиваться как платформа со средствами управления запуском, производительностью, потреблением памяти, надёжностью и диагностики. В то же время целесообразно сосредоточить наши усилия. Мы станем больше работать над повышением производительности и надежности в CoreCLR, а также над улучшением запуска и снижением размера файлов компиляторе Mono AOT. Нам это кажется хорошим сочетанием. Производительность и надежность идут рука об руку, как и скорость запуска со снижением размера файлов.
В улучшение одних характеристик целесообразно вкладывать разные ресурсы, а в улучшение других — нет.
Возможности диагностики должны быть одинаковыми в рамках всего .NET 5, это касается и функциональности, и производительности. Также важно поддерживать одни и те же процессоры и ОС (за исключением iOS и WebAssembly).
Мы продолжим оптимизировать .NET 5 под все виды рабочих нагрузок и сценариев, для которых это имеет смысл. Наибольший акцент будет сделан на оптимизациях, особенно в тех случаях, когда разные нагрузки налагают схожие требования.
Все .NET 5-приложения будут использовать фреймворк CoreFX. Мы удостоверимся, что CoreFX хорошо работает там, где он сегодня не используется, в основном это Xamarin клиентские Blazor-задачи.
Все .NET 5-приложения можно будет собирать с помощью .NET CLI, так что во всех проектах у вас будет единый инструментарий на основе командной строки.
C# будет развиваться вместе с .NET 5. Разработчики, пишущие .NET 5-приложения, получат доступ к самой свежей версии C# и его свойствам.
Рождение проекта
Как техническая команда мы собрались в декабре 2018-го в Бостоне, чтобы начать данный проект. Ведущие архитекторы из команды .NET (Mono/Xamarin и.NET Core) и Unity рассказали о различных технических возможностях и направлении развития архитектуры.
Теперь мы двигаем проект как единая команда. С декабря мы далеко продвинулись в нескольких проектах:
- Определили минимальный уровень, который определяет взаимодействие среды исполнения и уровня управляемого кода (managed code layer), с целью сделать >99 % CoreFX общим кодом.
- Теперь MonoVM может использовать CoreFX и его библиотеки классов.
- Прогнали на MonoVM все тесты CoreFX, используя его реализацию.
- Запустили приложения ASP.NET Core 3.0 на MonoVM.
- Запустили MonoDevelop и Visual Studio for Mac на CoreCLR.
Заключение
Проект .NET 5 — важное и вдохновляющее новое направление для .NET. Вы увидите, что .NET станет проще, но при этом станет использоваться шире, обретёт более широкие возможности. Все новые возможности разработки станут частью .NET 5, в том числе новые версии C#.
Впереди у нас светлое будущее, в котором вы сможете использовать те же .NET API и языки для широкого спектра приложений, операционных систем и архитектур процессоров. Вы сможете легко менять конфигурацию сборки, собирая приложения как вам удобно — в Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure DevOps или из командной строки.
DevDotNet.ORG
Embedded Systems, IoT, .NET, Docker, Hosting, Linux
Что нового в .NET 5.0
Создано автором Anton 16.02.2021 в .NET

10 ноября 2020 вышел в долгожданный релиз фреймворка .NET 5, который является развитием .NET Core в долгой эволюции фреймворка .NET.
.NET 5.0 — это первый релиз на пути к унификации платформы .NET, позволяющей более плавно мигрировать с .NET Framework.
Что мы получили с выходом .NET 5? В первую очередь это объединение различных фреймворков построенных на .NET — теперь нет Core, Mono, Xamarin – а есть единый .net5 target. Фактически, .net5 target пришел на замену netcoreapp и netstandard. Дополнительно можно выбрать платформу операционной системы, например: net5.0-android, net5.0-ios, или net5.0-windows (ссылка). Фреймворк стал действительно кроссплатформенным. В нем есть базовый набор классов и зависимые от конкретной операционной системы дополнения. В частности, для Windows есть поддержка привычного WinForms, который был выпущен и проверен ранее в .NET Core 3.1.

.NET унифицированная платформа для различных устройств
В .NET 5 проведена большая работа по оптимизации как непосредственно производительности приложений, так и скорости компиляции исходного кода. Теперь тесты и ночные сборки в CI выполняются немного быстрее.
Что касается производительности кода, то в тестах по количеству gRPC запросов в секунду приложение .NET 5 занял второе место после Rust и опередил программный код, скомпилированный Go (диаграмма из блога).

Следующим по значимости новшеством .NET 5, безусловно, стало включение новой версии языка C# 9. Наиболее интересным нововведением является появление записей (records). Новый синтаксис сильно упрощает описание неизменяемых моделей данных по сравнению с традиционными классами. В результате получился простой синтаксис декларации и инициализации.
public record Animal < public string? Name < get; init; >public string? Areal < get; init; >> var brownBear = new Animal < Name = "Bear", Areal = "Siberia" >; var whiteBear = animal with < Areal = "Arctic" >;
В новшествах языка также можно отметить возможность написания кода программы без использования функции main().
using System.Console; WriteLine("Hello World!");В состав .NET 5 был включен инсталлятор ClickOnce. Теперь есть возможность публикации приложения в виде установочного пакета, который впоследствии можно запустить на нужном компьютере и развернуть там приложение. В состав установочного пакета может быть включен весь фреймворк целиком. Это увеличит объем дистрибутива, но упростит установку на неподготовленный компьютер.
Получил развитие вариант распространения приложения — Single File Application, который появился в .NET Core 3.1. Можно создать единый исполняемый файл, содержащий в себе все библиотеки с возможностью внедрения, в том числе всех используемых библиотек фреймворка. Теперь файлы стали меньше, и они быстрее запускаются.
Новая экосистема .NET будет иметь статус LTS (Long Time Support) только для четных версий. Так, например, .NET 5 не будет иметь статуса долговременной поддержки, а .NET 6 будет. Иными словами, следующие выпуски будут: .NET 6 LTS, .NET 7, .NET 8 LTS и т.д.
Некоторые ключевые моменты в .NET 5:
- Улучшение поддержки и разработки настольных-приложений (Windows Forms, WPF)
- Новые возможности C# 9.0 и F# 5.0, например, программы верхнего уровня, улучшенные выражения switch и т.д.
- Поддержка архитектуры ARM64
- Улучшение производительности по сравнению с предыдущими версиями
Вместе с .NET 5 вышли в релиз ASP.NET Core 5.0 и Entity Framework Core 5.0.
Основные новшества и улучшения в ASP.NET Core 5.0:- Улучшения в привязке модели в MVC, добавлена поддержка для типов records в C# 9
- Улучшение поддержки Blazor Server и Blazor WebAssembly
- Встроенная поддержка для OpenAPI и Swagger UI для Web API
- Фильтры хабов SignalR и параллельное обращение к хабам
- Авто обновление браузера с помощью команды dotnet watch
- Улучшения производительности HTTP/2 и gRPC (если верить Microsoft gRPC на ASP.NET производительнее, чем в проектах на Go, С++ или Java)
И некоторые ключевые обновления в EF Core 5.0:
- Добавлена поддержка автоматической связи Many-to-many
- Добавлена возможность наследования table-per-type
- Упрощенное логгирование
Для использования .NET 5.0, а также ASP.NET Core 5 и EF Core 5.0 необходимо установить Visual Studio 16.8 или выше на Windows или последнюю версию Visual Studio for Mac для macOS. Также можно использовать Visual Studio Code, в которой расширение для языка C# уже поддерживает .NET 5.0 and C# 9.
Боле подробную информацию про релиз .NET 5 можно найти на официальном сайте Microsoft на страницеAnnouncing .NET 5.0
Ресурсы
- Загрузить .NET с сайта Microsoft можно по ссылке Download .NET 5.0.
- Проект .NET Core на GitHub — dotnet/core.
- Docker-образы для .NET
- Docker-образы .NET SDK
- Docker-образы .NET Runtime
- Docker-образы .NET Runtime Dependencies
- Docker-образы .NET Samples
Ссылки
- Вышли в релиз .NET 5, ASP.NET Core 5 и EF Core 5.0 — METANIT.COM
- Что нового в .NET 5? — ВКонтакте
- Вышел .NET 5. И что? — Хабр
- Announcing .NET 5.0 — .NET Blog Microsoft
- Performance Improvements in .NET 5 — .NET Blog Microsoft
- gRPC performance improvements in .NET 5 — ASP.NET Blog Microsoft
- .NET 5.0 Examples — richlander/examples.md GitHub
