Опытный разработчик не так давно зашёл в .Net и поставил цель получить сертификат Microsoft. Свой ежедневный прогресс он описывает на канале .Net Разработчик. Заметки об изученном материале, советы по повышению производительности и поддержке мотивации, ин
День 1227. #ЗаметкиНаПолях
Blazor: Вопросы и Ответы. Окончание
Рокфорд Лотка, главный архитектор ПО в Marimer, а также известный автор книг и контрибутор открытого кода ответил на несколько вопросов по технологии Blazor.
Начало
4. Сначала Blazor WebAssembly был направлен на приложения SPA, затем стал доступен в мобильной и даже настольной разработке. Какие дальнейшие планы?
Сама по себе WebAssembly, вероятно, станет революционной технологией для многих типов приложений, поскольку она работает во всех современных браузерах, а также во всё большем количестве сценариев на стороне сервера и IoT, включая, например, Kubernetes. Возможность писать код на выбранном вами языке, таком как C#, Go, Rust или многих других, и компилировать этот код в WebAssembly, чтобы он мог работать во многих средах, — это чрезвычайно удобно.
Сам Blazor WebAssembly — это инфраструктура UI, ориентированная на использование HTML и CSS, а также вашего кода C# (вместо TypeScript или JavaScript) для создания браузерных приложений. Как и в случае с другими технологиями SPA, Blazor значительно выигрывает от расширения гибридных сценариев на основе браузера для размещения в мобильных и настольных приложениях, а также непосредственно в браузере.
При этом «песочница» браузера остается на месте. Это хорошо, потому что означает, что приложения Blazor WebAssembly можно запускать в вашем браузере или как мобильное или настольное приложение с тем же уровнем безопасности.
С другой стороны, часто наиболее рентабельно создавать мобильные приложения, используя больше собственных технологий, чем технологии на основе браузера. Если вы создаёте ориентированное на потребителя мобильное или настольное приложение, которое является основной точкой соприкосновения с вашим брендом, очевидно, крайне важно, чтобы ваши пользователи получали наилучший возможный опыт, что побуждает большинство организаций создавать нативные приложения для iOS и Android или, возможно, использовать кроссплатформенный инструмент, такой как Xamarin/MAUI или Flutter.
5. Как насчёт производительности? Чем Blazor отличается от альтернативных фреймворков, таких как React и другие?
Говоря о производительности Blazor, необходимо отделить Blazor на стороне сервера от Blazor WebAssembly. Blazor на стороне сервера чрезвычайно эффективен, причем производительность в значительной степени зависит от того, достаточно ли вашего веб-сервера для рабочей нагрузки. Архитектура ПО Blazor на стороне сервера очень похожа на проверенные временем модели, но с современными скоростями интернета и серверным оборудованием.
Blazor WebAssembly или любой UI на основе WebAssembly может быть медленнее, чем UI-фреймворки JavaScript, такие как React. Это связано с тем, что WebAssembly пока не позволяет нативному коду напрямую взаимодействовать с HTML DOM, поэтому взаимодействие с элементами UI должно проходить через оболочку JavaScript. Чистый вычислительный код обычно работает быстрее в WebAssembly, чем в JavaScript, но взаимодействие с UI происходит медленнее.
Это компенсируется тем, что при правильном использовании все эти UI-платформы SPA, включая Blazor WebAssembly, могут создавать первоклассные UI, которые очень удобны в использовании.
6. Какие инновации вы ожидаете в Blazor и поддерживающей его клиентской технологии WebAssembly?
Я с нетерпением жду WebAssembly, поддерживающую многопоточность и позволяющую нативному коду wasm напрямую взаимодействовать с HTML DOM. Я также рад тому, как WebAssembly распространяется за пределы браузера и может стать общим ассемблерным языком для клиентов, серверов, устройств IoT и многого другого.
Blazor готов поддерживать многопоточность, а благодаря тесной интеграции с инфраструктурой MAUI Blazor, вероятно, станет основной технологией для создания приложений, работающих в браузерах, на мобильных устройствах и на настольных компьютерах, основанных в значительной степени на одной и той же кодовой базе C#, HTML и CSS.
Источник: visualstudiomagazine.com/article…ive.aspx