Как стать автором
Обновить

Комментарии 12

Нет возможности сделать микс из Interactive Server-Side Rendering и Client-Side Rendering

Но ведь в .net 8 как раз добавили режим Auto, или это не то что вам нужно?

  • Interactive Auto (automatic) rendering to initially use the server-side ASP.NET Core runtime for content rendering and interactivity. The .NET WebAssembly runtime on the client is used for subsequent rendering and interactivity after the Blazor bundle is downloaded and the WebAssembly runtime activates. Interactive Auto rendering usually provides the fastest app startup experience.

По началу я тоже обрадовался, прочитав такую возможность, но загвоздка заключается в этой фразе:

 after the Blazor bundle is downloaded

То есть скачивание рантайма все-равно происходит, а в условиях плохой сети и дорогого трафика это не очень интересно. Хотелось бы именно работы в браузере какого-то скомпилированного JS из C# без рантаймов.

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

В браузерных средствах разработчика на панели «Сеть» никаких данных про отправку запросов и получение ответов тоже не было.

Насколько помню там WS соединение должно быть(по хорошему), оно отображается, но, возможно его надо ловить в момент открытия, а потом уже можно смотреть сообщения.

Нет возможности сделать микс из Interactive Server-Side Rendering и Client-Side Rendering (WebAssembly).

Сейчас вроде есть режим Auto, когда он из ISSR перейдет в ICSR в фоне. Но там есть свои нюансы.

Там на самом деле очень много "ручек", но например обратный отсчет это пример когда ISSR подходит плохо, тут уж лучше JS чучуть оставить.(не зря в MudBlazor + MudExtensions есть компонент Watch)

Собственно, как упомянул выше, совсем от JS уходить не удается, зачастую есть компоненты что это нивелируют. либо можно свой компонент сделать и забыть о проблеме.

В целом Blazor игрушка неплохая, но надо много изучать по режимам работы и тп.

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

C пропусками событий, странно, надо попробовать повторить тест как нибудь.

Для себя пока пилю ICSR приложение(так как там тяжелое приложение). На работе тестируем возможность(скорее думаем, стоит ли переписывать) сделать панель управления, но Blazor строго после авторизации.

Это сообщение о потере соединения жутко бесит! Есть у меня сайт, где я записываю для себя статистику по упражнениям в спортзале. Он целиком на писан на Blazor без бэка. Пока делаешь очередной подход, страничка в заблокированном телефоне теряет соединение и при разблокировке приходится её перезагружать почти каждый раз. Пробовал разные решения, но работающего не нашёл. Да ещё и медленно работает впридачу.

Поэтому решил, что Blazor буду использовать чисто для фронта, оставив всю бизнес-логику API. Так всё работает прекрасно.

Я так понимаю серверный режим в основном для корпоративных приложений для сотрудников в офисе и с быстрой сеткой.

Совсем не правильно.

А как правильно?

Режим рендеринга ни как не связан с тем где использовать blazor в локальной сети или в интернете, а зависит от поставленных задач. Серверный рендер выполняется на сервере, а потом отдает - клиенту. Web Assembly же - загружается на клиент а потом рендерится. Interactive Server-Side Rendering это что-то между. Если вы работает активно с базой данных то вам нужен серверный вариант, а лучше интерактив. Если вы не работаете активно с базой, загрузили что-то нужное, а дальше интерактив на клиенте то это Web Assembly - например игрушка может быть какая-то типа как у автора. Хотя я бы лучше использовал interactive.

Сам с Blazor не работал так что наверное серьезного разговора не получится, но если страница вообще пропадает при потере связи и не остается висеть загруженной, как описывали выше, то это только для внутренних сетей и пригодно.

Если вы про сообщение: Reconnection failed. Try reloading the page if you're unable to reconnect. То да - оно появляется когда пропадает связь с севером, как раз через websocket - значит приложение упало. Ну либо я не знаю dialup если только у вас.

А вообще странно, websocket передает килобайты - там все легкое.

1 Зачем вы сделали два приложения? точнее Сервер 1 (Front / Blazor Server-Side Rendering) и каую-то прослойку на бэке (Back / Quartz + WebApi + PostgreSQL)? Если бы вы использовалт Blazor WebAssembly - я бы пнял вас.
2 Interactive Server-Side Rendering - работает через WebSocket! почему вы используете api?
3 Interactive Server-Side Rendering как раз позволяет сделать, что вы хотели, просто вы не правильно делаете. Вам не нужен front отдельный. добавьте на нужную страницу @rendermode InteractiveServer и все у вас получится.
4 Непрозрачная отладка SignalR. - "DetailedErrors": true, "Microsoft.AspNetCore.SignalR": "Debug". Куда еще детальнее?
5 Похоже вы не представляете как работает Blazor, а уже делаете какие-то отчеты и выводы. В ютубе полно видео про новые режимы рендеринга - посмотрите!
6 ни каких потерь не будет.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории