#c# #blazor #blazor-server-side #razor-components
#c# #blazor #blazor-на стороне сервера #razor-компоненты
Вопрос:
Насколько я понимаю, razor components работает полностью на стороне сервера, каждый вызов метода приводит к отправке запроса signalr на сервер, и вызываемый метод выполняется на сервере.
Однако в blazor библиотеки DLL и среда выполнения отправляются клиенту, а методы выполняются в браузере. Чтобы выполнить вызов сервера, мне теперь нужно создать API и выполнить стандартные запросы API.
Что я хотел бы знать, так это то, возможно ли в blazor вообще выполнять все на стороне клиента как обычно, но для некоторых методов, которые будут выполняться на стороне сервера? Итак, своего рода гибрид между компонентами blazor и razor? Итак, устраняем необходимость в API?
Ответ №1:
Razor Components — устаревший термин, относящийся к компонентной структуре, с помощью которой можно создавать либо серверные приложения Blazor, либо клиентские приложения. Это был неудачный короткий срок. В настоящее время имя Blazor используется для обозначения компонентной среды, с помощью которой можно создавать либо серверные приложения Blazor, либо клиентские приложения. На самом деле так мы назвали оба вида приложений с самого начала.
Клиентские приложения выполняются в браузере через WebAssembly. Серверное приложение Blazor полностью выполняется на сервере и взаимодействует с браузером через SingnalR.
Интерфейсные приложения Blazor, вообще говоря, требуют, чтобы вы создали веб-API на сервере и использовали Ajax (HttpClient) для связи с сервером.
Какую модель выполнения вы выберете, зависит от требований вашего приложения. Серверные приложения Blazor лучше всего подходят для корпоративных приложений внутри сети, в то время как клиентские приложения Blazor лучше всего подходят для работы в общедоступном Интернете. Каждый способ выполнения имеет свои преимущества и недостатки.
Я думаю, гибридные приложения возможны, но, вообще говоря, рекомендуется ли это? Когда? Как? Слишком рано знать… В конце концов, структура находится в стадии разработки, и шаблоны соответствующего кодирования еще предстоит сформулировать с течением времени. Но, конечно, вы можете создать клиентское приложение Blazor, которое взаимодействует с веб-API, который предоставляет конечные точки SignalR.(Вы хотели это знать, верно?)
Надеюсь, это поможет…
Комментарии:
1. Все, что я читаю, предполагает, что razor compents является текущим термином, не устаревшим и будет выпущен во второй половине этого года, может быть, я читаю неправильные документы, у вас есть ссылка на некоторые текущие документы?: learn.microsoft.com/en-us/aspnet/core/razor-components /. …
2. Нет, вы не читаете неправильные документы, вы читаете устаревшие документы… прочитайте следующее, которое само по себе уже устарело в терминах Blazor: github.com/aspnet/AspNetCore/issues/8931