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:

5/5 - (1 głos)