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

С вопросами можно пинать @nevoroman
Download Telegram
Ах да, и в качестве преимущества 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
Контент для любителей перфоманса — записи с конференции Dotnetos Conference 2021!

Если кто не слышал, Dotnetos это польская конференция по .NET. От многих других она отличается жестким упором на перфоманс и прочие низкоуровневые моменты. На youtube доступен плейлист со всеми записями, а я выделю несколько докладов, которые понравились мне больше других.

David Fowler - Don’t need to understand the details of .NET. Until you do

Отличный доклад о том, как и зачем вообще копаться в деталях реализации от человека, который разрабатывал Nuget, SignalR и ASP.NET Core.

Adam Furmanek - Hacking C# from the inside

Адам рассказывает, как заставить .NET делать странное. Перегружать неперегружаемое, сериализовать несереализуемое и всячески издеваться над GC. Доклад из серии «не повторяйте это дома», но знать все эти трюки как минимум интересно.

Jiří Činčura - How I put .NET into Firebird database engine

История того, как база данных Firebird училась работать с .NET. Очень интересный доклад и из-за решаемой проблемы, и из-за количества разнообразных трудностей, встреченных на пути.
В этот четверг пройдет онлайн-митап о функциональном программировании и F#. Как эти штуки изучать (и начинающим, и желающим получить какие-то более практичные знания), откуда брать материалы и зачем все это нужно. Спикером будет Вагиф Абилов, он постоянно выступает с докладами про ФП и уже много лет работает с большим проектом, написанным на F#.

Пройдет в четверг, 25 ноября, в 17:00 по Москве. Регистрация на TimePad.
Продолжаем осваиваться с новинками из .NET 6! Конрад Кокоса написал статью о конфигурации dotnet-monitor с Prometheus и Graphana.

Напомню, dotnet-monitor это инструмент для мониторинга .NET приложений, который недавно наконец-то был официально выпущен Microsoft. Он позволяет удобно собирать логи, трейсы, дампы и прочие артефакты приложения — в том числе под Mac и Linux.

https://dotnetos.org/blog/2021-11-22-dotnet-monitor-grafana/
Нашел интересный выпуск подкаста Azure DevOps Podcast о Blazor в .NET 6.

Несмотря на название, об Azure здесь будет совсем мало, так что это именно интересная беседа о современном состоянии Blazor, его развитии, готовности к продакшену и прочем. Если вам интересно, что там на фронте отказа от JS — советую послушать.

http://azuredevopspodcast.clear-measure.com/michael-washington-on-blazor-in-net-6-episode-168