#blazor #blazor-server-side #blazor-webassembly
#blazor #blazor-на стороне сервера #blazor-webassembly
Вопрос:
В настоящее время я выполняю проект с использованием Blazor и демонстрирую некоторые функции, которые у них есть. Я думал о создании сервера Blazor, WASM и MBB-версии этого приложения.
Насколько я понимаю, Blazor WASM (версия PWA) нуждается в каком-то сервере или API для доступа к данным или внешним API.
В настоящее время у меня завершено приложение Blazor Sever, и мне было интересно, могу ли я использовать его в качестве основы или посредника между Blazor WASM и данными.
Есть идеи о том, как мне это сделать?
Комментарии:
1. Сервер Blazor будет ортогональным к Blazor webassembly. Вы должны выбрать один или другой. В зависимости от того, как вы реализовали версию сервера, может быть тривиальным преобразовать его в версию webassembly. На практике это очень маловероятно, поскольку, когда вы начинаете с серверной версии, вы можете делать так много вещей, которые были бы незаконными в webassembly (например, прямой доступ к базе данных сервера), что это, вероятно, в конечном итоге потребует больших усилий.
2. Спасибо за информацию! Я думал об использовании сервера Blazor в качестве основы приложения WebAssembly, это сделало бы так, чтобы webassembly по-прежнему безопасно обрабатывал данные, и мне не пришлось бы разрабатывать для него другой проект API.
3. Вы можете использовать оба, если вы выполняете всю работу с данными в службах, ваши накладные расходы будут меньше, и вы не будете делать глупых вещей, таких как доступ к базе данных из компонента
Ответ №1:
Хотя вы можете повторно использовать службы передачи данных, вам все равно нужно будет предоставлять фактические конечные точки HTTP для вашего приложения WASM — они должны иметь возможность сериализовать данные, необходимые для передачи между сервером и клиентом. Например, контроллеры WebAPI, которые могут полагаться на службы базы данных, которые у вас уже есть для вашего серверного приложения blazor.
Blazor WASM похож на любой другой фреймворк SPA, который вы, возможно, видели — он полностью запускается в браузере и нуждается в какой-то конечной точке API для извлечения данных.
Серверная модель blazor отличается тем, что позволяет напрямую взаимодействовать со службами передачи данных на сервере.
Комментарии:
1. Спасибо за информацию! Я думаю, мне нравится ваша идея добавить контроллер веб-api и использовать сервисы, которые у меня уже есть. Что касается самих компонентов, я предполагаю, что мне придется изменить мои компоненты blazor и вставить их в проект WASM
2. Используйте те же компоненты, просто выгрузите всю работу с данными в сервисы, описанные интерфейсами. Затем приложение реализует новые сервисы в зависимости от того, является ли оно сервером или wasm.
3. Спасибо за комментарий! Обязательно попробуйте это и посмотрите, как это работает 🙂