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.

- Rejestracja:około 9 lat
- Ostatnio:prawie 3 lata
- Lokalizacja:UK
- Postów:2235
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.
- Rejestracja:około 4 lata
- Ostatnio:ponad rok
- Postów:5
@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.

- Rejestracja:około 9 lat
- Ostatnio:prawie 3 lata
- Lokalizacja:UK
- Postów:2235
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.
- Rejestracja:ponad 7 lat
- Ostatnio:prawie 3 lata
- Lokalizacja:Warszawa, Ząbki
- Postów:19
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ń.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.