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

С вопросами можно пинать @nevoroman
Download Telegram
О, оказывается Microsoft портировали Playwright — классную библиотеку для end-to-end тестирования. Советую посмотреть и потестить.

https://github.com/microsoft/playwright-dotnet
В .NET добавили команду dotnet format, которая автоматически форматирует код. Такая команда может пригодиться как часть пайплайна — например, чтобы автоматически приводить к некоторому стилю весь код, который коммитится в репозиторий.

https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-format
А еще на трансляции рассказывают о возможностях расширения автодополнения с помощью Roslyn. То есть вы можете написать специальный провайдер, который будет давать дополнительные опции для автодополнения. Вот статья с примером разработки такого провайдера

https://www.strathweb.com/2018/12/using-roslyn-c-completion-service-programmatically/
Тем временем — доклад о Minimal APIs. Поскольку эти API и впрямь довольно минималистичные, в докладе едва ли будет много новой информации. Зато я могу посоветовать вам статью на эту тему от Скотта Хансельмана — читается быстро и дает достаточное понимание, что такое Minimal APIs.

https://www.hanselman.com/blog/exploring-a-minimal-web-api-with-aspnet-core-6
Что ни говори, а выглядит это все достаточно любопытно
Изменения в ASP.NET Core следуют общему курсу для .NET:

- Упрощение для новичков
- Перфоманс и удобство разработки (Hot Reload)
- Разнообразные улучшения для фронтенда

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

Ну и потенциальная возможность уменьшить количество проблем с JS тоже радует.
А вот кое-какие перфомансные улучшения в ASP.NET
А вот список других изменений в ASP.NET Core, которые не вписываются в озвученный выше «общий курс». Все полезное и по делу.
В докладе про Blazor Components показывают компании и open-source инструменты, работающие нам компонентами для Blazor.

Наличие ребят вроде DevExpress в этом списке однозначно радует, их компоненты для WPF решали многие задачи. Получить аналогичные инструменты для фронта было бы приятно.
Очередные циферки по производительности — на этот раз речь об Entity Framework. Окей, это внушительно.
Говорят, что теперь Entity Framework не слишком отстает от Dapper
Что там в .NET?
Очередные циферки по производительности — на этот раз речь об Entity Framework. Окей, это внушительно.
Забавная деталь — бенчмарк, на основе которого посчитаны эти цифры, запускался не с MS SQL Server, а с PostgreSQL.

Причина в том, что это не какой-то специальный бенчмарк от Microsoft, а все тот же бенчмарк от TechEmpower (а конкретно Fortunes). Что делает эти измерения достаточно надежными и прозрачными.
А вот простая инструкция по апгрейду на .NET 6.

.NET Upgrade Assistant
API Portability Analyzer
И рекомендации, какой код стоит переписать (не из-за несовместимости версий, а из-за появления новых, более удобных инструментов)
А теперь нам показывают, как в связке работают MAUI и Blazor.

Догадаться в общем-то не сложно — BlazorWebView контрол, в него рендерится HTML - CSS - JS, привязки к серверу заменяются на привязки к C# приложению (оно работает в том же процессе, что радует).

В общем — принцип Electron, но все куда лучше оптимизировано. По меньшей мере, такое приложение не тащит с собой весь Chrome.
Еще одна интересная деталь — обещают, что Blazor компоненты можно будет легко смешивать с дефолтными десктопными/мобильными. При этом BlazorWebView займет только один экран (или часть экрана), а все остальное будет рендериться как обычно.

У меня есть некоторые опасения формата «а не будет ли такое смешение дорогим по перфомансу», но тут нужно мерить на конкретных примерах.

А заодно показали, как можно использовать Blazor компоненты в WinForms. Выглядело… забавно!
Напоследок Скот Хансельман в очередной раз демонстрирует, что .NET можно запустить совсем уж повсюду.

Например, на микроконтроллерах! С помощью .NET nanoFramework

https://www.nanoframework.net/
Ого, а теперь рассказывают про Uno — фреймворк для разработки кроссплатформенных UI на .NET!

Почему меня это удивляет? В основном потому что Microsoft сейчас очень активно разрабатывает конкурирующий инструмент (MAUI), но при это не стесняется рекламировать Uno на своей главной конференции для .NET разработчиков. Радуют!

https://platform.uno/
Итак, первый день подошел к концу! Какие выводы мы можем сделать?

Все ключевые инструменты заметно ускорились.

Улучшения перфоманса на уровне .NET 5, когда среднее приложение ускорилось на 30-35 процентов. Точнее можно будет сказать когда разработчики начнут мигрировать приложения на .NET 6.

Много улучшений практически для всех API.

Основной фокус — упрощения API и уменьшение бойлерплейта. Тоже приятно, делает .NET более дружелюбным для новичков.

Изменения в C# скорее косметические.

Однако они хорошо работают на одну из основных целей — упрощение кода и уменьшение бойлерплейта.

Кажется, Blazor (и даже его WebAssembly версия) готов к аккуратному втаскиванию в прод.

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


MAUI выглядит перспективно, но требует улучшений.

Я бы прогнозировал, что к .NET 7 он будет примерно на том же уровне, на котором сейчас находится Blazor.

Hot Reload — приятная мелочь.

В каких-то местах он не поддерживается, иногда требует перекомпиляции. Приятная фича, которая сделает разработку чуть более гладкой.

В общем, изменения в .NET 6 прям радуют. Очень много приятных мелочей и уверенное движение в сторону перфоманса/универсальности/простоты.