Комментарии 9
Привет, думаю, вам стоит посмотреть Fusion — она решает массу проблем, описанных здесь, и делает это несколько более элегантно: github.com/servicetitan/Stl.Fusion
Примеры на Fusion: github.com/servicetitan/Stl.Fusion.Samples
Примеры на Fusion: github.com/servicetitan/Stl.Fusion.Samples
+1
Да, Александр, вы сделали крутую библиотеку, я с ней знаком. Из моего примера можно спокойно выкинуть gRPC и System.Reactive и заменить их на Stl.Fusion, но основная идея статьи — переключение между Server и WebAssembly в runtime, без перезагрузки страницы (и WebAssembly уже загружен к моменту переключения), у вас же переключение модели размещения вызывает достаточно долгую перезагрузку страницы.
+3
зачем такие сложности, а не создать VUE + web api
-4
Естественно я ничего не имею против Vue, Angular, React, тем более сам их использую. А сложности нужны, чтобы писать Frontend и Backend на одном языке. В случае c# это даёт ряд преимуществ: статическую типизацию, общие DTO, общую валидацию, т.д., но главное — это скорость разработки, с Blazor я делаю ту же работу существенно быстрее.
Но у меня не было задачи обращать читателей в свою религию насильно, поэтому я и не добавлял хаб «Веб-разработка» к этой публикации.
Но у меня не было задачи обращать читателей в свою религию насильно, поэтому я и не добавлял хаб «Веб-разработка» к этой публикации.
+3
Интересная у Вас идея, о таком подходе мы даже и не думали.
Сейчас тоже экспериментируем с серверным пререндером. Очень растроились, что решение из коробки делает рендер, но далее заново идет инициализация всех компонентов из-за чего для нас полностью пропадает смысл данного подхода, т.к. у нас идут сразу запросы к api и появляется loader. Сейчас думаем в сторону сохранения json текущего состояния при рендере на сервере.
Сейчас тоже экспериментируем с серверным пререндером. Очень растроились, что решение из коробки делает рендер, но далее заново идет инициализация всех компонентов из-за чего для нас полностью пропадает смысл данного подхода, т.к. у нас идут сразу запросы к api и появляется loader. Сейчас думаем в сторону сохранения json текущего состояния при рендере на сервере.
0
Спасибо за отзыв, это приятно.
После предендера при первом открытии страницы можно не показывать лоадеры, хотя это, конечно, так себе решение. Ведь смысл в том, чтобы пререндер был быстрым, если мы делаем тяжелые запросы в процессе пререндера, пользователь будет ждать их завершения с белым экраном. Для себя я решил, что при пререндере надо вернуть пустую страницу с лоадерами, а данные пусть загружает запустившееся приложение.
Ну и еще надо посмотреть, как они в Microsoft реализуют hot reload, возможно получится использовать решение оттуда.
После предендера при первом открытии страницы можно не показывать лоадеры, хотя это, конечно, так себе решение. Ведь смысл в том, чтобы пререндер был быстрым, если мы делаем тяжелые запросы в процессе пререндера, пользователь будет ждать их завершения с белым экраном. Для себя я решил, что при пререндере надо вернуть пустую страницу с лоадерами, а данные пусть загружает запустившееся приложение.
Ну и еще надо посмотреть, как они в Microsoft реализуют hot reload, возможно получится использовать решение оттуда.
0
У нас немного необычный кейс, наверное, для текущих реалий blazor'a. Дело в том, что нам необходимо SEO и еще важна скорость рендера первой страницы. Рендер сервера выполняется шустро, тут все супер, далее 4-5 секунд на инициализацию нам не критичны. Сейчас добиваем механизм восстановления состояния (чтобы это было универсально без дополнительного кода), смотрится довольно перспективно. Лоадеры убирать не очень хочется, все-таки пользователь должен видеть, что что-то происходит.
Где-то на github в одном из обсуждений натыкался на сообщение, что они собираются решить проблему повторной инициализации компонентов в NET Core 6.0.
Где-то на github в одном из обсуждений натыкался на сообщение, что они собираются решить проблему повторной инициализации компонентов в NET Core 6.0.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Blazor: Server и WebAssembly одновременно в одном приложении