Что там в .NET?
523 subscribers
37 photos
79 links
Рассказываем, что происходит в мире .NET.

С вопросами можно пинать @nevoroman
Download Telegram
И очередная пачка перфомансных улучшений, на этот раз для gRPC.
И еще пара важных фич. Раз — ретрай.
И два — балансировка на клиенте.
А еще добавили поддержку HTTP/3 в gRPC. Пока в превью, впрочем.
Тем временем, Microsoft делают уже второй доклад, тесно связанный с Dapr.

Одно из двух: или они решили купить Dapr, или наконец-то начали пиарить инструменты, которые делают не Microsoft.

Очень хочется надеяться на второе. Пересказывать особенно нечего, так что просто посоветую пару хороших докладов про Dapr. Это действительно классная платформа для работы с микросервисами, советую присмотреться к ней повнимательнее.

Alex Thissen — Dapr for building distributed .NET Core applications

Edwin van Wijk, Sander Molenkamp — Advanced Dapr
Ах да, и в качестве преимущества Dapr они приводят «вы можете писать на куче других языков»

Ну то есть Microsoft рекламируют инструмент, сделанный не ими, за счет возможности писать на языках, которые делают не они.
И на этом сегодняшние сессии от Microsoft закончились.

Каких-то особенно интересных выводов нет, все же новой информации мы получили немного.

Самым интересным было демо Blazor WebAssembly — хорошее, практичное, показывающее кучу новой функциональности и рост производительности. Хочется верить, что в проде все будет работать также красиво.

Остальное — приятные мелочи вроде улучшений для observability и gRPC. И, конечно, очень радует релиз dotnet monitor — он должен сильно упростить сбор метрик и отладку приложений под Linux и Mac.
Кстати, то самое впечатляющее демо Blazor WebAssebly уже доступно в записи. Рекомендую к просмотру, очень классная демонстрация возможностей wasm.

https://www.youtube.com/watch?v=kesUNeBZ1Os
Нашел классную статью из блога StackOverflow — рассказывают, как актуализировать принципы SOLID к современной разработки.

Выглядит очень актуально в современном .NET, советую почитать.

https://stackoverflow.blog/2021/11/01/why-solid-principles-are-still-the-foundation-for-modern-software-architecture/
Подборка самых важных выступлений с .NET Conf 2021

Keynote

Общая демонстрация сделанного в .NET 6. Показали перфоманс, рассказали про основные направления развития.

What's new in C# 10

Быстрое введение в основные возможности нового C#. Интереснее обычных обзоров присутствием разработчиков из MS, которые поясняют мотивацию добавления каждой из фич.

What's New in F# 6

То же самое, но про F# и с Доном Саймом.

Enterprise-grade Blazor apps with .NET 6

Демонстрация изменений как внутри Blazor, так и других изменений в .NET, влияющих на Blazor-разработку (вроде Hot Reload).

New Blazor WebAssembly capabilities in .NET 6

Тоже обзор обновок внутри Blazor, но с упором на WebAssembly и максимально практичное демо.

Next-generation Blazor components with .NET 6

Снова про Blazor, на этот раз про его строительные блоки. Показывают разные компоненты и их возможности, можно оценить, насколько удобно этим пользоваться.

Introduction to .NET MAUI

Рассказ о текущем состоянии дел в MAUI. Что уже реализовано, планы и практическое демо с текущими возможностями.

ASP.NET Core MVC & Razor Pages in .NET 6

Доклад об изменениях в функциональности, API и производительности ASP.NET.

What's New in EF Core 6

Аналогичное выступление про Entity Framework.

Upgrading from .NET Framework to .NET 6

Неплохой гайд по переезду с легаси .NET на .NET 6. Разбирают шаги и возможные проблемы, показывают, как в этом может помочь Upgrade Assistant.

ML.NET Model Builder: Machine learning with .NET

Простой обзор возможностей ML.NET. Рассчитан в основном на новичков в ML, если вам интересны нюансы развития фрейиворка, то вам интереснее будет почитать июньский блог разработчиков фреймворка.

Speed up your .NET development with Hot Reload

Доклад о возможностях, ограничениях и немного устройстве Hot Reload.
Фича шестого .NET, которую многие могли пропустить — сериализация Json с помощью Source Generators.

Основное преимущество нового подхода это куда более высокая производительность. На разных данных выигрыш в производительности может быть от 30-40% до 300%. Поэтому важно разобраться, как это работает, и потестить подход на своем проекте.

Неплохое видео с разбором подхода

Текстовый разбор от Стива Гордона

Инструкция по использованию из документации Microsoft
Пока разбирался, какие проблемы есть с миграцией на .NET 6, нашел хорошую статью о переезде с легаси .NET Framework на кроссплатформенный .NET. Вдруг для кого-то актуально

https://blog.ndepend.com/5x-lessons-learned-from-migrating-a-large-legacy-to-net-5-6/
Тред от Бартоша Адамчевски с демонстрацией низкоуровневых оптимизаций в .NET 6.

Очень интересно наблюдать, как можно оптимизировать самые простые функции.

https://twitter.com/badamczewski01/status/1460332443920121863?s=21
Кстати о низкоуровневых оптимизациях, в .NET 6 добавили NativeMemory APIs. Они позволяют вручную управлять памятью, по аналогии с функциями malloc, free и прочими подобными из C.

https://devblogs.microsoft.com/dotnet/announcing-net-6-preview-7/#libraries-nativememory-apis
В статье о переезде Azure AD gateway на .NET 6 нашел еще одни красивые показали перфомансных оптимизаций.

Использование CPU упало на 33% — при той же самой нагружке. В целом же выигрыш в производительности (вернее, в application efficiency) разработчики оценили в 50%, где application efficiency это (Requests per second) / (CPU utilization of application)

В общем, советую посмотреть статью. Она не столько про Azure, сколько про сам процесс миграции на .NET 6

https://devblogs.microsoft.com/dotnet/azure-active-directorys-gateway-is-on-net-6-0/
Вышла отличная статья о мониторинге в .NET с использованием OpenTelemetry. Хорошо вводит в тему и дает много ссылок на дополнительные ресурсы.

https://www.meziantou.net/monitoring-a-dotnet-application-using-opentelemetry.htm#monitoring-multiple
Еще один интересный результат замеров производительности .NET 6, на этот раз не от Microsoft. Александр Якунин, автор популярного фреймворка для real-time приложений Fusion, перевел свой проект на .NET 6 и померил производительность. Результаты получились весьма приличные, в некоторых местах рост составил до 40%.

https://alexyakunin.medium.com/net-6-vs-net-5-up-to-40-speedup-ceca9112d298?source=friends_link&sk=1da518553a5264a1fe6cbb332b0716bb