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

С вопросами можно пинать @nevoroman
Download Telegram
И начинается второй день .NET Conf! Первый доклад будет рассказывать о том, что нового .NET 6 принес в Blazor WebAssembly.

Посмотрим, что там интересного.
Фича, которую я совсем пропустил в анонсах: в Blazor WebAssembly добавили возможность компилировать сторонние зависимости в WebAssembly.

https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-net-6-rc-2/#native-dependencies-support-for-blazor-webassembly-apps
Чтобы вы понимали — это просто сишный метод, подключенный через DllImport, который вы можете запустить в Blazor WebAssembly. Ну то есть в браузере.
А на демо, например, запустили SQLite в браузере через WASM. Издевательство, но красивое.
А тут показывают симпатичный простой грид с виртуализацией, тоже радует.

Ну и сортировка, фильтры, все как положено.
А теперь с тем же Native Dependencies впихнули на фронт библиотеку на Rust.

Если это все реально будет также работать в суровом энтерпрайзе, то продано, Javascript официально мертв.
Демо просто убийственно хорошее получилось. Реализовали много полезного функционала, упихали все это в удобный-понятный грид, подключили кучу зависимостей, а потом впихнули это все в приложения на React и, блин, WPF — без какой угодно дополнительной работы. И это все классно работает вместе!

Приложение ни разу не лагало и не зависало, зато завис стрим — как раз на демо с впихиванием функциональности в WPF. Но в общем-то и ладно, мне новый Blazor уже продали.
Если что, трансляция конференции умерла и возвращаться пока не желает. Удивительно, в первый день ничего подобного не было, а тут с самого начала куча технических проблем.
Возможно, трансляцию остановились диверсанты-фронтендеры, боящиеся за свое положение на рынке труда.
Трансляция восстановилась, но теперь там не слишком интересный доклад о еще-одном-очень-простом-способе-запихать-приложение-в-Azure
Следующее демо показывало, что .NET умеет делать сегодня в плане машинного обучения. Выводы примерно такие:

- API выглядит привычнее и понятнее для .NET разработчиков, чем API других ML инструментов;
- Есть кое-какой тулинг упрощающий работу с данными;
- Одно из основных преимуществ ML.NET — простота доведения модели до продакшена.

Поясню последний пункт. Обучение модели и ее использование в продакшене это разные процессы. Настолько разные, что как правило обучают модель на условном Python, а потом используют в каком-нибудь другом коде — на .NET, Java и чем угодно еще. И это несколько усложняет процесс деплоя моделей, особенно если они постоянно обновляются. Поскольку ML.NET это часть .NET — задача заметно упрощается.

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

В общем, будем посмотреть.
Вкратце о прошедшем докладе: Azure Static Web Apps теперь поддерживает Blazor (в том числе WebAssembly), почитать о том, как это работает, можно вот тут:

https://docs.microsoft.com/ru-ru/azure/static-web-apps/deploy-blazor

Чего-то еще особенного не расскажу — доклады про Azure в основном показывают, как просто и красиво все работает.
Еще один доклад об Azure, на этот раз рассказывают об Azure Communication Services — наборе сервисов, позволяющих коммуницировать с пользователем разными способами. Звонки, видео, чаты и даже смски.

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

https://azure.microsoft.com/en-us/services/communication-services/
А теперь нам рассказывают о том, как разрабатывать приложения для Microsoft Teams.

Судя по расписанию, ближайший доклад, относящийся к обновкам из .NET 6, будет аж в час ночи.
Любопытная фича VS Code — возможность создавать блокноты (эдакие markdown-файлы с возможностью запускать код), совмещающие в себе несколько языков.

Так, например, можно наглядно сравнивать реализацию концепций в разных языках
Мотивирующий слайд от Microsoft на тему «бросай OData, переходи на GraphQL»
Еще одно изменение .NET 6, которое можно было пропустить в анонсах — небольшое улучшение поддержки OpenTelemetry.

https://devblogs.microsoft.com/dotnet/announcing-net-6-preview-7/#libraries-system-diagnostics-propagators
И куда более значительное изменение в рамках той же поддержки это новое API System.Diagnostics.Metrics

https://devblogs.microsoft.com/dotnet/announcing-net-6-preview-5/#libraries-support-for-opentelemetry-metrics
О, dotnet-monitor наконец-то официально зарелизили!

Это такой инструмент (выпущенный года полтора назад, но в экспериментальном состоянии), нужный для сбора всяких артефактов из приложения. Логов, дампов и прочего.

https://devblogs.microsoft.com/dotnet/announcing-dotnet-monitor-in-net-6/