Уведомление базы данных Blazor Webassembly

Я немного потрясен всей информацией о Blazor Wasm и Blazor Server. До сих пор у меня было 5-летнее приложение ASP.NET MVC с концентратором SignalR, работающим для уведомления моего представления, когда что-то изменилось в базе данных.

Давайте проясним здесь. У меня есть существующая запись в базе данных. Я представляю эту запись базы данных пользователям в представлении MVC. Пользователи просматривают это представление, и когда внешний источник обновляет эту запись в базе данных, частичное представление обновляется без перезагрузки всего веб-сайта.

На данный момент у меня есть веб-сборка Blazor, размещенная на .NET Core API, и я могу легко переключиться на Blazor Server.

возможно ли это в настоящее время в Blazor Server / Blazor WASM ... Я бы предпочел WASM, если это вообще возможно :)

Заранее спасибо ‹3


person daru    schedule 17.03.2021    source источник


Ответы (1)


Это определенно возможно с WASM / Server! Вам все равно придется использовать концентратор SignalR, чтобы сообщить клиенту, что нужно обновить компонент. Однако это может быть так же просто, как вызов StateHasChanged(), когда событие для перезагрузки пользовательского интерфейса испускается из SignalR Hub. Вот пример:

...
hubConnection.On("RefreshTable", _ =>
{
    // Retrieve the updated list from the DB - or utilize SignalR?
    StateHasChanged();
});
...

На веб-сайте Microsoft есть отличное руководство по запуску базового чат-приложения SignalR с использованием Blazor WASM: https://docs.microsoft.com/en-us/aspnet/core/tutorials/signalr-blazor?view=aspnetcore-5.0&tabs=visual-studio&pivots=webassembly#add-razor-component-code-for-chat

person Cory Podojil    schedule 17.03.2021
comment
Большое спасибо за разъяснение. : D - person daru; 18.03.2021
comment
Рад, что смог помочь! Можете ли вы отметить это как ответ, если он помог? ;) - person Cory Podojil; 18.03.2021