Что там в .NET?
Очередные циферки по производительности — на этот раз речь об Entity Framework. Окей, это внушительно.
Забавная деталь — бенчмарк, на основе которого посчитаны эти цифры, запускался не с MS SQL Server, а с PostgreSQL.
Причина в том, что это не какой-то специальный бенчмарк от Microsoft, а все тот же бенчмарк от TechEmpower (а конкретно Fortunes). Что делает эти измерения достаточно надежными и прозрачными.
Причина в том, что это не какой-то специальный бенчмарк от Microsoft, а все тот же бенчмарк от TechEmpower (а конкретно Fortunes). Что делает эти измерения достаточно надежными и прозрачными.
А теперь нам показывают, как в связке работают MAUI и Blazor.
Догадаться в общем-то не сложно — BlazorWebView контрол, в него рендерится HTML - CSS - JS, привязки к серверу заменяются на привязки к C# приложению (оно работает в том же процессе, что радует).
В общем — принцип Electron, но все куда лучше оптимизировано. По меньшей мере, такое приложение не тащит с собой весь Chrome.
Догадаться в общем-то не сложно — BlazorWebView контрол, в него рендерится HTML - CSS - JS, привязки к серверу заменяются на привязки к C# приложению (оно работает в том же процессе, что радует).
В общем — принцип Electron, но все куда лучше оптимизировано. По меньшей мере, такое приложение не тащит с собой весь Chrome.
Еще одна интересная деталь — обещают, что Blazor компоненты можно будет легко смешивать с дефолтными десктопными/мобильными. При этом BlazorWebView займет только один экран (или часть экрана), а все остальное будет рендериться как обычно.
У меня есть некоторые опасения формата «а не будет ли такое смешение дорогим по перфомансу», но тут нужно мерить на конкретных примерах.
А заодно показали, как можно использовать Blazor компоненты в WinForms. Выглядело… забавно!
У меня есть некоторые опасения формата «а не будет ли такое смешение дорогим по перфомансу», но тут нужно мерить на конкретных примерах.
А заодно показали, как можно использовать Blazor компоненты в WinForms. Выглядело… забавно!
Напоследок Скот Хансельман в очередной раз демонстрирует, что .NET можно запустить совсем уж повсюду.
Например, на микроконтроллерах! С помощью .NET nanoFramework
https://www.nanoframework.net/
Например, на микроконтроллерах! С помощью .NET nanoFramework
https://www.nanoframework.net/
Ого, а теперь рассказывают про Uno — фреймворк для разработки кроссплатформенных UI на .NET!
Почему меня это удивляет? В основном потому что Microsoft сейчас очень активно разрабатывает конкурирующий инструмент (MAUI), но при это не стесняется рекламировать Uno на своей главной конференции для .NET разработчиков. Радуют!
https://platform.uno/
Почему меня это удивляет? В основном потому что Microsoft сейчас очень активно разрабатывает конкурирующий инструмент (MAUI), но при это не стесняется рекламировать Uno на своей главной конференции для .NET разработчиков. Радуют!
https://platform.uno/
Uno Platform
Uno Platform: Build Cross-Platform .NET Apps Faster
Build modern, responsive apps for Web, Mobile, and Desktop using C# and XAML. Leverage your existing .NET skills to build cross-platform applications efficiently.
Итак, первый день подошел к концу! Какие выводы мы можем сделать?
Все ключевые инструменты заметно ускорились.
Улучшения перфоманса на уровне .NET 5, когда среднее приложение ускорилось на 30-35 процентов. Точнее можно будет сказать когда разработчики начнут мигрировать приложения на .NET 6.
Много улучшений практически для всех API.
Основной фокус — упрощения API и уменьшение бойлерплейта. Тоже приятно, делает .NET более дружелюбным для новичков.
Изменения в C# скорее косметические.
Однако они хорошо работают на одну из основных целей — упрощение кода и уменьшение бойлерплейта.
Кажется, Blazor (и даже его WebAssembly версия) готов к аккуратному втаскиванию в прод.
Но анонсы в этом плане не лучший источник — посмотрим на отзывы разработчиков в ближайшие месяцы. Так или иначе — много хороших компонентов, переиспользуемость, пофикшенные баги и улучшенная производительность вселяют надежду.
MAUI выглядит перспективно, но требует улучшений.
Я бы прогнозировал, что к .NET 7 он будет примерно на том же уровне, на котором сейчас находится Blazor.
Hot Reload — приятная мелочь.
В каких-то местах он не поддерживается, иногда требует перекомпиляции. Приятная фича, которая сделает разработку чуть более гладкой.
В общем, изменения в .NET 6 прям радуют. Очень много приятных мелочей и уверенное движение в сторону перфоманса/универсальности/простоты.
Все ключевые инструменты заметно ускорились.
Улучшения перфоманса на уровне .NET 5, когда среднее приложение ускорилось на 30-35 процентов. Точнее можно будет сказать когда разработчики начнут мигрировать приложения на .NET 6.
Много улучшений практически для всех API.
Основной фокус — упрощения API и уменьшение бойлерплейта. Тоже приятно, делает .NET более дружелюбным для новичков.
Изменения в C# скорее косметические.
Однако они хорошо работают на одну из основных целей — упрощение кода и уменьшение бойлерплейта.
Кажется, Blazor (и даже его WebAssembly версия) готов к аккуратному втаскиванию в прод.
Но анонсы в этом плане не лучший источник — посмотрим на отзывы разработчиков в ближайшие месяцы. Так или иначе — много хороших компонентов, переиспользуемость, пофикшенные баги и улучшенная производительность вселяют надежду.
MAUI выглядит перспективно, но требует улучшений.
Я бы прогнозировал, что к .NET 7 он будет примерно на том же уровне, на котором сейчас находится Blazor.
Hot Reload — приятная мелочь.
В каких-то местах он не поддерживается, иногда требует перекомпиляции. Приятная фича, которая сделает разработку чуть более гладкой.
В общем, изменения в .NET 6 прям радуют. Очень много приятных мелочей и уверенное движение в сторону перфоманса/универсальности/простоты.
Кстати о .NET 6, команда Rider пишет, что их IDE полностью готова ко всем обновкам!
Но пока только в EAP версии
https://twitter.com/dotnetfdn/status/1458172538538823685?s=21
Но пока только в EAP версии
https://twitter.com/dotnetfdn/status/1458172538538823685?s=21
Twitter
.NET Foundation
JetBrains Rider team is .NET 6 ready! With Rider 2021.3, you can take advantage of .NET 6 SDK support, Hot Reload, C# 10 upcoming features, and more! It's currently available in the free pre-release build: hubs.li/H0-QJH40 @JetBrainsRider #dotnet #dotnetconf
И начинается второй день .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
https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-net-6-rc-2/#native-dependencies-support-for-blazor-webassembly-apps
.NET Blog
ASP.NET Core updates in .NET 6 Release Candidate 2
.NET 6 Release Candidate 2 is now available! Check out all the improvements in ASP.NET Core in this update.
А на демо, например, запустили SQLite в браузере через WASM. Издевательство, но красивое.
А теперь с тем же Native Dependencies впихнули на фронт библиотеку на Rust.
Если это все реально будет также работать в суровом энтерпрайзе, то продано, Javascript официально мертв.
Если это все реально будет также работать в суровом энтерпрайзе, то продано, Javascript официально мертв.
Демо просто убийственно хорошее получилось. Реализовали много полезного функционала, упихали все это в удобный-понятный грид, подключили кучу зависимостей, а потом впихнули это все в приложения на React и, блин, WPF — без какой угодно дополнительной работы. И это все классно работает вместе!
Приложение ни разу не лагало и не зависало, зато завис стрим — как раз на демо с впихиванием функциональности в WPF. Но в общем-то и ладно, мне новый Blazor уже продали.
Приложение ни разу не лагало и не зависало, зато завис стрим — как раз на демо с впихиванием функциональности в WPF. Но в общем-то и ладно, мне новый Blazor уже продали.