Witamy ponownie! Dawno mnie tu nie było! Ale natchnęło mnie, więc musiałem wpaść bez zapowiedzi. Co jest moją inspiracją, można zapytać? Mój kumpel - Marcin - opublikował niedawno artykuł porównujący dwie z wielu opcji hostingu Blazor. Jeśli przegapiłeś go przypadkiem, zdecydowanie wróć tam i przeczytaj.
Marcin jest naszym dyrektorem ds. rozwoju biznesu, więc jego artykuł ma podejście biznesowe. Pomyślałem, że świetnym odpowiednikiem będzie również porównanie techniczne. A ponieważ będę porównywał Blazor do Blazora, nie poczujesz nawet, że jestem stronniczy w stosunku do Blazora w porównaniu z jakąkolwiek inną technologią rozwoju front-endu.
Przedstawiamy rywali - Blazor WebAssembly Progressive Web App i .NET MAUI Blazor Hybrid
Po pierwsze - co porównujemy?
W niebieskim rogu - progresywna aplikacja internetowa Blazor WebAssembly
To długa nazwa, więc postaram się przynajmniej wyjaśnić, co się pod nią kryje. Jest to połączenie dwóch technologii wymienionych w nazwie. Część WebAssembly umożliwia budowanie jednostronicowych aplikacji, które działają wyłącznie w przeglądarce użytkownika. Funkcja Progressive Web App zapewnia niemal natywny charakter aplikacji, w tym lokalną instalację, obsługę offline i powiadomienia push. Dzięki temu użytkownicy mogą uzyskać dostęp do aplikacji tradycyjnie - za pośrednictwem przeglądarki, ale mogą również dodać natywny skrót na pulpicie. A co najlepsze - wszystko to odbywa się (prawie) wyłącznie w języku C#!
W czerwonym narożniku - .NET MAUI Blazor Hybrid
Jak sugeruje słowo hybryda, mamy tu do czynienia z kolejną mieszanką technologii. MAUI to najświeższa zabawka z warsztatu Świętego Mikołaja Microsoftu. To następca Xamarin. Mówiąc jaśniej, jest to nowy framework programistyczny dla wszystkich rzeczy mobilnych i IoT. I jeśli kiedykolwiek wyobrażałeś sobie narzędzie, które przekształciłoby bazę kodu w natywną aplikację na wszystkie platformy(Android, iOS, macOS, Windows, Tizen), to właśnie to MAUI robi najlepiej. Nie trzeba dodawać, że połączenie MAUI z możliwościami Blazor (nawet z istniejącą bazą kodu Blazor) ma sens i otwiera wiele nowych rynków. I otwiera je szybko.
Jab: Blazor i tak będzie supermocą
Jakiś czas temu napisałem artykuł o tym , dlaczego Blazor jest przyszłością rozwoju międzyplatformowego. Jest on nadal aktualny. Z jedną różnicą - z czasem stało się jeszcze bardziej prawdziwe. Blazor jako Progressive Web App i jako .NET MAUI Hybrid będzie miał podobne zalety.
Podsumujmy, co to jest:
- Korzystanie z ekosystemu .NET
Blazor jest głównie frameworkiem opartym na .NET, co oznacza, że można udostępniać kod między klientem a serwerem, a także z już istniejących aplikacji. Możliwość ponownego wykorzystania kodu zwiększa szybkość dostarczania.
- Obszerna kolekcja bibliotek .NET
.NET ma za sobą ogromną społeczność i istnieje już od jakiegoś czasu. Możesz wykorzystać istniejące biblioteki, aby przyspieszyć cykl rozwoju i skrócić pętlę sprzężenia zwrotnego produktu.
- Ograniczone wykorzystanie innych języków front-end
W zdecydowanej większości przypadków nie będziesz musiał pisać ani używać JavaScript lub TypeScript. Ale uwaga - niektóre z bibliotek komponentów, które można znaleźć, to podróbki! Cóż, w pewnym sensie. Będą to tylko wrappery .NET na bazowych skryptach. Może to mieć wpływ na rozwój.
Lewy haczyk: Kiedy powinieneś wybrać Progressive Web App (PWA)?
- Kompatybilność międzyplatformowa (prawie)
Ponieważ do działania wykorzystuje nowoczesną piaskownicę przeglądarki, PWA będzie działać na wszystkich platformach, na których istnieje koncepcja przeglądarki. Według LambdaTest, ma wynik zgodności z przeglądarką 92/100. Ale jest mały haczyk, podstawowa technologia - web assembly - jest obsługiwana tylko w nowoczesnych przeglądarkach. Co w tej chwili wyklucza Internet Explorera. Warto jednak o tym pamiętać.
- Spójna, natywna obsługa na różnych platformach
Fakt, że aplikacja działa w izolowanej piaskownicy przeglądarki oznacza, że będzie ona wyglądać i zachowywać się tak samo na każdej platformie, na której zostanie zainstalowana. Będzie również skalować się tak samo na wszystkich urządzeniach. Co będzie ułatwieniem dla zespołu UI/UX. Użytkownicy będą mogli zainstalować ją na swoich urządzeniach, pracować w trybie offline, a nawet otrzymywać powiadomienia push, zapewniając natywne wrażenia. Należy jednak pamiętać, że maszyna wirtualna przeglądarki ma ograniczenia, których należy przestrzegać podczas interakcji z systemem operacyjnym.
- Wydajność, która przewyższa każdy inny framework front-endowy
Dzięki PWA możesz wykorzystać buforowanie przeglądarki i aktualizacje w tle, aby poprawić ogólną wydajność. Co więcej, aplikacja jest kompilowana do kodu WebAssembly, co pozwala na niemal natywną wydajność w przeglądarce. Pliki binarne WebAssembly zawsze będą lepsze od innych frameworków front-endowych. Jeśli chcesz dowiedzieć się dlaczego, sprawdź jeden z moich postów na LinkedIn.
- Proste i ujednolicone wdrożenie
PWA jest nadal aplikacją internetową. Skutkuje to prostym i ujednoliconym wdrożeniem w dowolnym środowisku, które chcesz obsługiwać. Nie wymaga rejestracji w sklepie z aplikacjami ani kodu specyficznego dla platformy. Użytkownicy ładowaliby aplikację za pośrednictwem adresu URL, jak każdą inną stronę internetową. Instalacja sprowadza się do dodania PWA do ekranu głównego.
Właściwy haczyk: Kiedy należy wybrać .NET MAUI Blazor Hybrid?
- Prawdziwa natywna kompatybilność i wydajność
Aplikacja MAUI jest kompilowana do natywnych aplikacji dla wybranych platform, tj. Android, iOS, Tizen i Windows. Wersja natywna zapewnia natywną kompatybilność. Natywny kod wykorzystuje sprzęt w najbardziej efektywny sposób, aby osiągnąć najlepszą wydajność.
- Doświadczenie natywne dla platformy
Ponieważ twoja aplikacja będzie prawdziwą natywną instalacją, zapewni prawdziwie natywne wrażenia. Oznacza to, że interfejs użytkownika/UX może się różnić na różnych platformach, ale będzie spójny z ich ogólnymi zachowaniami. Będzie ona działać jak każda inna aplikacja na urządzeniu użytkownika, co może uczynić ją jeszcze bardziej przyjazną w obsłudze. Należy jednak pamiętać, że doświadczenie to może wymagać dodania odrobiny natywnego kodu do współdzielonej bazy kodu .NET.
- Szybki rozwój
Wyobraź sobie, że piszesz jedno polecenie, jeden widok, a następnie za pomocą kliknięcia przycisku możesz go zainstalować we wszystkich powszechnie dostępnych systemach operacyjnych. Takie jest właśnie główne założenie .NET MAUI. Jedna baza kodu, jeden framework, cały rynek aplikacji z możliwościami obsługiwanymi od razu po wyjęciu z pudełka. Poprawa czasu dostawy, skrócenie cyklu rozwoju, większa łatwość konserwacji i wsparcia - wszystko to z pewnością brzmi przyjemnie.
- Bezpieczeństwo i stabilność dostawy za pośrednictwem sklepu z aplikacjami
Posiadanie aplikacji natywnej dla danej platformy pozwala na jej dystrybucję za pośrednictwem oficjalnych sklepów z aplikacjami. Masz ogromny rynek adresowalny na wyciągnięcie ręki. Zyskujesz również dodatkowy poziom bezpieczeństwa. Sklepy z aplikacjami zapewnią, że pliki aplikacji nie zostaną naruszone. Zapewnią również, że komunikacja między aplikacją a serwerami jest zaufana i bezpieczna.
A zwycięzcą jest... to zależy!
Ale nie zostawię cię tylko z "to zależy". Ponieważ proces rozwoju jest podobny dla obu naszych konkurentów, powinieneś oprzeć swoją decyzję na wymaganiach dotyczących pomysłu na biznes. Jak to będzie wyglądać?
- Czy wiesz, kto jest Twoją grupą docelową?
- Czy są to użytkownicy przeglądarek (PWA), czy raczej cenią sobie mobilność i obsługę urządzeń mobilnych jako najwyższy priorytet (MAUI)?
- Czy potrzebujesz obsługiwać odległe obszary ze słabym połączeniem internetowym?
- Może nawet wymagany jest tryb offline? (PWA obsługuje go od razu po wyjęciu z pudełka, podczas gdy MAUI może wymagać implementacji specyficznej dla platformy).
- Czy dążysz do wspólnego doświadczenia w dowolnym miejscu, w którym używana jest Twoja aplikacja (PWA), czy też do płynnego korzystania z aplikacji, która jest zgodna z przepływami i kontrolkami specyficznymi dla platformy (MAUI)?
- Czy Twoja aplikacja będzie wykorzystywać integracje tylko z powszechnie dostępnymi usługami (wysyłanie wiadomości e-mail, pobieranie plików itp.) (PWA), czy też będzie to bardziej zaawansowany przepływ, który wymaga udostępnienia danych Bluetooth lub lokalizacji (MAUI)?
- Czy wydajność Twojej aplikacji jest krytyczna, jak monitorowanie zapasów, aukcje itp. (MAUI), czy też nie jesteś w sferze zmian danych o wysokiej częstotliwości (PWA)?
- Jaki rodzaj umowy SLA zamierzasz zaoferować?
- Czy szybka rozdzielczość i dystrybucja to krytyczne wymagania biznesowe? (PWA)
- A może można zaakceptowaćczas weryfikacji w sklepie z aplikacjami i unikalne wymagania dotyczące wdrażania dla każdej obsługiwanej platformy? (MAUI)
Wciąż nie jesteś pewien? Napisz do nas!
Na koniec zapraszamy do kontaktu z nami! Mamy doświadczenie w realizacji całych cykli rozwojowych, a także w doradztwie i prowadzeniu Ciebie i Twojego zespołu na tej drodze. Umówmy się na warsztaty i wspólnie przeanalizujmy Twoje wymagania biznesowe. Ja osobiście byłbym niezwykle podekscytowany, mogąc dowiedzieć się o wszystkich wyzwaniach, przed którymi stoisz i o tym, jak możemy wykorzystać ekosystem .NET, aby je rozwiązać.
Co odkryć więcej?
Czy jesteś uzależniony od Blazor, WebAssembly, .NET MAUI, Progressive Web Application lub wszystkich z nich? Świetnie!
Oto kolejka i kilka zasobów do dalszego odkrywania tych tematów:
- Więcej informacji można znaleźć na naszym blogu oraz śledząc mnie i Marcina na LinkedIn
- Blog Jamesa Montemagno - MAUI i Blazor od eksperta zespołu Microsoft MAUI-https://montemagno.com/
- Kanał YouTube Geralda Versluisa - wszystko o MAUI, porady, wskazówki, co robić, a czego nie -
https://www.youtube.com/c/GeraldVersluis - Blog Jona Hiltona - wszystko wokół Blazora, od wysokiego do niskiego poziomu, a także studia przypadków - https://jonhilton.net/