top of page

Blazor: устарел ли старый добрый asp.net mvc?

  • Фото автора: Алик Ким
    Алик Ким
  • 19 окт. 2022 г.
  • 2 мин. чтения

как то в одном видео Тима Кори (https://www.youtube.com/user/IAmTimCorey) проскочила рекомендация не начинать новые вэб-проекты на Asp.Net Mvc (Core), а начинать их на Blazor. мол, asp.net mvc - вчерашний день.


решил поинтересоваться вопросом.

насколько я понял, основная фишка Blazor - работа через те же Razor-страницы (и, наверное, MVC, не уточнял), но с возможностью иметь "клиентский" код на C# вместо javascript.

есть 2 типа Blazor-приложений:

  1. серверное - на сервере поддерживается виртуальная копия DOM для страницы, весь "клиентский" кода типа онкликов обрабатывается на сервере, а изменения в DOM клиента приходят уже средствами Blazor. для этого всего используются Web-сокеты.

  2. Web Assembly-вресия - тут вообще все вэб-приложение работает на стороне клиента: в браузер прям скачивается DLLка, и там и исполняется.


у каждого подхода свои минусы. у серверного - видимо, некоторая задержка в реакции приложения на действия пользователя, у WASM - некоторое заметное время первой загрузки приложения (после каждого обновления, я так понимаю).

но написание клиентской части на C# - лично для меня - большой плюс.

иногда очень раздражает необходимость дублирования логики на C# и Typescript для, например, валидации значений формы. да и вообще.

лично мне кажется, что подход с web-assembly - менее авантюрный. он рассчитан на хороший интернет, но сейчас это все меньшая проблема. хотя, вроде, пишут, Blazor Server - менее сырой.


вывод для себя я сделал такой: если делаешь старый добрый многостраничный сайт - Asp.net mvc - самое то. если делаешь SPA - можно посмотреть в сторону blazor. ну это на первый взгляд, я эти технологии еще даже не щупал.


так же покрутил в голове еще один вопрос: а насколько юзабелен blazor для написания кроссплатформенных GUI-приложений?

и, таки, вроде, пишут, что тоже юзабелен. есть такой подход к написанию GUI-приложения: основную часть пишем на вэб-интерфейсе, потом помещаем ее в наше приложение через вэб-вью. вот так же можно встроить и Blazor через MAUI (это вроде как новая .net-платформа для написания кроссплатформенных GUI-приложений).

хотя, есть еще React Native. и он хоть и на TypeScript - вот эта сама идея со сниппетами/виджетами/компонентами - она же такая пусечка.


и еще насчет использования asp.net nvc: насколько я понял, при разработке для blazor для программиста мало, что поменялось по сравнению с разработкой для asp.net MVC. поэтому, если по умолчанию сайт на Blazor достаточно хорошо продуман, чтобы не иметь стандартных изъянов SPA (неправильная обработка Middle Click, прочие проблемы с открытием ссылки в новой вкладке, свой URL у каждой страницы, работа с историей браузера и т.п.) - то почему бы и традиционные многостраничные сайты не писать на Blazor, на выходе получая требуемый многостраничный сайт, но с плюсами SPA в виде отсутствия необходимости перегружать страницы целиком, а так же с C# на клиенте вместо JS (что немало само по себе).


полезные ссылки:

https://www.codemag.com/Article/2111092/Blazor-Hybrid-Web-Apps-with-.NET-MAUI - кроссплатформенное GUI-приложение на MAUI/Blazor

 
 
 

Недавние посты

Смотреть все

Comments


Околокомпьютерный блог Алика

  • alt.text.label.Facebook

© Околокомпьютерный блог Алика , 2022. Сайт создан на Wix.com

bottom of page