Jaki typ aplikacji Blazor wybrać?

0

Mam kilka pytań odnośnie Blazor. Wiem, że są 2 modele - WebAssembly i Server. I zastanawia mnie jedna rzecz jeśli chciałbym mieć aplikację w podejściu DDD gdzie cała logika systemu jest podzielona na różne warstwy to w takim przypadku rozumiem, że jako UI mogę użyć nawet zwykłego MVC + Bootstrap, Razor, Angular, Vue itd. A jeśli chciałbym jako UI wybrać Blazor to wtedy jaki typ powinienem wybrać? Biorąc pod uwagę, że aplikacja będzie wyświetlać np. DataGridy i umożliwiać operacje CRUD'owe na danych aplikacji. Wg mnie najbardziej mi tutaj pasuje podejście jako Server. Będę wdzięczny za opinie i uwagi.

3

Blazor to framework UI i tylko w takich kategoriach bym go rozważał. To jak implementowana jest logika biznesowa, czy stosuje się DDD, jakie wzorce projektowe itp. nie powinno mieć tu znaczenia.

Jeśli chodzi o Blazor Server vs WASM, to moim zdaniem lepiej wybrać WASM chyba że ma się dobry powód aby tego nie robić.

Server ma pewien narzut związany z używaniem SignalR do każdej akcji, trochę utrudnia obsługę błędów, a również rozmywa granicę między warstwą prezentacji a backendem- co w Twoim przypadku jest chyba jeszcze bardziej ryzykowne biorąc pod uwagę że do wyboru między Server a WASM wmieszałeś DDD.

0

@Aventus: zgadzam się. Na początku jak sprawdzałem Blazor najbardziej nie jasne było w niektórych przykładach dlaczego w jednym projekcie jest zarówno projekt Client i Server. Zazwyczaj jak chcę zrobić aplikację po stronie backendu to wystarczy mi API, które udostępnia endpointy dla frontu i jako UI mogę sobie wrzucić dowolny framework który połączy się z częścią backendową. Dlatego takie zestawienie nie jest dla mnie jasne dlatego, że dla traktuję podejście server i client jako framework UI - więc rozważając to w ten sposób muszę zdecydować się na jedno podejście.

przykład: https://codewithmukesh.com/blog/blazor-hero-quick-start-guide/#Getting_Started_With_Blazor_Hero_-_Clean_Architecture_Template

3

Oba to są frameworki UI- to się zgadza. A tak naprawdę to jeden i ten sam framework, ale różnica polega na tym gdzie i jak wykonuje się kod C#. Spójrz na ten przykład:

// Index.razor
<div>@Counter</div>
<button @onclick="ButtonClicked">Click Me</button>

@code {
  private int Counter { get; set; }
  
  public void ButtonClicked()
  {
    Counter++;
  }
}

Zasadnicza różnica między WASM a Server jest taka, że w przypadku WASM cały kod wykona się w przeglądarce tak jak w przypadku innych frameworków SPA typu React, Angular czy Vue. Z kolei w przypadku Server, to jakikolwiek kod w bloku @code wykona się po stronie serwera. Blazor użyje połączenia SignalR aby wysłać event do serwera, tam wykona się kod, i zwrócony zostanie zaktualizowany stan.

Skoro już jesteś zaznajomiony z koncepcją aplikacji webowych (UI) i rozdzieleniu frontu od backendu, to ty bardziej użyj WASM. Będziesz miał mniej problemów ze zrozumieniem tego.

0

też uważam WASM za nowoczesne rozwiązane i mocno przyszłościowe w technologii Front-end.
Ja bym się kierował celem aplikacji - jeżeli to aplikacja typu "korporacyjna"(działy, listy itp) to chyba lepszym rozwiązaniem byłby Server-Side ze skalowalnością po stronie serwera, natomiast WASM spoko rozwiązanie dla lżejszych zastosowań.

1 użytkowników online, w tym zalogowanych: 0, gości: 1