Использование существующего сервера Blazor в качестве серверной части Blazor WASM

#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. Спасибо за комментарий! Обязательно попробуйте это и посмотрите, как это работает 🙂