Udostępnij za pośrednictwem


modele hostingu ASP.NET Core Blazor

Uwaga

Nie jest to najnowsza wersja tego artykułu. Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.

Ostrzeżenie

Ta wersja ASP.NET Core nie jest już obsługiwana. Aby uzyskać więcej informacji, zobacz zasady pomocy technicznej platformy .NET i platformy .NET Core. Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.

Ważne

Te informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany, zanim zostanie wydany komercyjnie. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.

Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.

W tym artykule opisano Blazor modele hostingu, głównie skoncentrowane na Blazor Server aplikacjach i Blazor WebAssembly w wersjach platformy .NET wcześniejszych niż .NET 8. Wskazówki zawarte w tym artykule dotyczą wszystkich wersji platformy .NET dla Blazor Hybrid aplikacji uruchamianych na natywnych platformach mobilnych i klasycznych. Blazor Web AppS na platformie .NET 8 lub nowszym są lepiej koncepcyjnie przedstawiane przez sposób Razor renderowania składników, który jest opisany jako tryb renderowania. Tryby renderowania są pokrótce omówione w artykule Omówienie podstaw i szczegółowo opisane w ASP.NET Tryby renderowania Podstawowe Blazor w węźle Składniki.

W tym artykule opisano Blazor modele hostingu i sposób wybierania, który z nich ma być używany.

Blazor to platforma internetowa służąca do tworzenia składników internetowego interfejsu użytkownika (Razor składników), które mogą być hostowane na różne sposoby. RazorSkładniki mogą uruchamiać po stronie serwera w środowisku ASP.NET Core () aBlazor Server po stronie klienta w przeglądarce w środowisku uruchomieniowym platformy .NET opartym na zestawie WebAssembly (Blazor WebAssemblyWASMBlazor). Składniki można również hostować Razor w natywnych aplikacjach mobilnych i klasycznych renderowanych w osadzonej Web View kontrolce (Blazor Hybrid). Niezależnie od modelu hostingu, sposób kompilowania Razor składników jest taki sam. Te same Razor składniki mogą być używane z dowolnym modelem hostingu bez zmian.

Blazor to platforma internetowa służąca do tworzenia składników internetowego interfejsu użytkownika (Razor składników), które mogą być hostowane na różne sposoby. RazorSkładniki mogą uruchamiać po stronie serwera w środowisku ASP.NET Core () aBlazor Server po stronie klienta w przeglądarce w środowisku uruchomieniowym platformy .NET opartym na zestawie WebAssembly (Blazor WebAssemblyWASMBlazor). Niezależnie od modelu hostingu, sposób kompilowania Razor składników jest taki sam. Te same Razor składniki mogą być używane z dowolnym modelem hostingu bez zmian.

Blazor Server

W modelu hostingu Blazor Server składniki są wykonywane na serwerze z poziomu aplikacji ASP.NET Core. Aktualizacje interfejsu użytkownika, obsługa zdarzeń i wywołania języka JavaScript są obsługiwane za SignalR pośrednictwem połączenia przy użyciu protokołu WebSockets. Stan na serwerze skojarzonym z każdym połączonym klientem jest nazywany obwodem. Obwody nie są powiązane z określonym połączeniem sieciowym i mogą tolerować tymczasowe przerwy w działaniu sieci i próby ponownego nawiązania połączenia z serwerem po utracie połączenia.

W tradycyjnej aplikacji renderowanej na serwerze otwarcie tej samej aplikacji na wielu ekranach przeglądarki (kartach lub iframes) zwykle nie przekłada się na dodatkowe wymagania dotyczące zasobów na serwerze. W przypadku modelu hostingu Blazor Server każdy ekran przeglądarki wymaga oddzielnego obwodu i oddzielnych wystąpień stanu składnika zarządzanego przez serwer. Blazorrozważa zamknięcie karty przeglądarki lub przejście do zewnętrznego adresu URL w celu łagodnego zakończenia. W przypadku łagodnego zakończenia obwód i skojarzone zasoby są natychmiast zwalniane. Klient może również rozłączyć się bez łaski, na przykład z powodu przerwy w działaniu sieci. Blazor Server przechowuje odłączone obwody dla konfigurowalnego interwału, aby umożliwić klientowi ponowne nawiązywanie połączenia.

Przeglądarka współdziała z Blazor (hostowaną wewnątrz aplikacji ASP.NET Core) na serwerze za pośrednictwem SignalR połączenia.

Na kliencie Blazor SignalR skrypt ustanawia połączenie z serwerem. Skrypt jest obsługiwany z zasobu osadzonego w strukturze udostępnionej ASP.NET Core.

Model hostingu Blazor Server oferuje kilka korzyści:

  • Rozmiar pobierania jest znacznie mniejszy niż w przypadku użycia modelu hostingu Blazor WebAssembly , a aplikacja ładuje się znacznie szybciej.
  • Aplikacja w pełni wykorzystuje możliwości serwera, w tym korzystanie z interfejsów API platformy .NET Core.
  • Platforma .NET Core na serwerze służy do uruchamiania aplikacji, więc istniejące narzędzia platformy .NET, takie jak debugowanie, działają zgodnie z oczekiwaniami.
  • Klienci cienki są obsługiwani. Na przykład Blazor Server działa z przeglądarkami, które nie obsługują zestawu WebAssembly i na urządzeniach z ograniczonymi zasobami.
  • Baza kodu .NET/C# aplikacji, w tym kod składnika aplikacji, nie jest obsługiwana dla klientów.

Model hostingu Blazor Server ma następujące ograniczenia:

  • Zwykle występuje większe opóźnienie. Każda interakcja użytkownika obejmuje przeskok sieciowy.
  • Obsługa trybu offline nie jest dostępna. Jeśli połączenie klienta zakończy się niepowodzeniem, interakcyjność zakończy się niepowodzeniem.
  • Skalowanie aplikacji z wieloma użytkownikami wymaga zasobów serwera do obsługi wielu połączeń klientów i stanu klienta.
  • Do obsługi aplikacji jest wymagany serwer ASP.NET Core. Scenariusze wdrażania bezserwerowego nie są możliwe, takie jak obsługa aplikacji z usługi Content Delivery Network (CDN).

Zalecamy użycie usługi platformy Azure SignalR dla aplikacji, które przyjmują model hostinguBlazor Server. Usługa umożliwia skalowanie aplikacji w górę Blazor Server do dużej liczby współbieżnych SignalR połączeń.

Blazor WebAssembly

Model hostingu Blazor WebAssembly uruchamia składniki po stronie klienta w przeglądarce w środowisku uruchomieniowym platformy .NET opartym na zestawie WebAssembly. Razor składniki, ich zależności i środowisko uruchomieniowe platformy .NET są pobierane do przeglądarki. Składniki są wykonywane bezpośrednio w wątku interfejsu użytkownika przeglądarki. Aktualizacje interfejsu użytkownika i obsługa zdarzeń są wykonywane w ramach tego samego procesu. Zasoby są wdrażane jako pliki statyczne na serwerze internetowym lub usłudze obsługującej zawartość statyczną dla klientów.

Blazor WebAssembly: Blazor jest uruchamiany w wątku interfejsu użytkownika w przeglądarce.

Blazor Aplikacje internetowe mogą używać modelu hostingu Blazor WebAssembly , aby umożliwić interakcyjność po stronie klienta. Po utworzeniu aplikacji, która działa wyłącznie na modelu hostingu Blazor WebAssembly bez renderowania po stronie serwera i interakcyjności, aplikacja jest nazywanaBlazor WebAssembly autonomiczną aplikacją.

Blazor WebAssembly Gdy aplikacja zostanie utworzona do wdrożenia bez aplikacji zaplecza ASP.NET Core do obsługi swoich plików, aplikacja jest nazywanaBlazor WebAssembly autonomiczną aplikacją.

Gdy aplikacja autonomiczna Blazor WebAssembly używa aplikacji zaplecza ASP.NET Core do obsługi swoich plików, aplikacja jest nazywana hostowanąBlazor WebAssembly aplikacją. Korzystając z hostowanego Blazor WebAssemblyprogramu , uzyskujesz środowisko tworzenia aplikacji internetowych w pełnym stosie za pomocą platformy .NET, w tym możliwość udostępniania kodu między aplikacjami klienckimi i serwerowymi, obsługą prerenderingu i integracją z mvC i Razor stronami. Hostowana aplikacja kliencka może wchodzić w interakcje z aplikacją serwera zaplecza za pośrednictwem sieci przy użyciu różnych platform obsługi komunikatów i protokołów, takich jak internetowy interfejs API, gRPC-web i SignalR (użyj ASP.NET Core SignalR z usługą Blazor).

Aplikacja Blazor WebAssembly utworzona jako progresywna aplikacja internetowa (PWA) używa nowoczesnych interfejsów API przeglądarki, aby umożliwić wiele funkcji natywnej aplikacji klienckiej, takich jak praca w trybie offline, uruchomiona we własnym oknie aplikacji, uruchamianie z systemu operacyjnego hosta, odbieranie powiadomień wypychanych i automatyczne aktualizowanie w tle.

Skrypt Blazor obsługuje:

  • Pobieranie środowiska uruchomieniowego, Razor składników i zależności składnika platformy .NET.
  • Inicjowanie środowiska uruchomieniowego.

Rozmiar opublikowanej aplikacji, czyli jej rozmiar ładunku, jest krytycznym czynnikiem decydującym o wydajności i użyteczności aplikacji. Pobieranie dużej aplikacji do przeglądarki trwa stosunkowo długo, co pogarsza komfort użytkownika. Zestaw Blazor WebAssembly optymalizuje rozmiar ładunku, aby skrócić czasy pobierania:

  • Nieużywany kod jest usuwany z aplikacji po opublikowaniu przez narzędzie Intermediate Language (IL) Trimmer.
  • Odpowiedzi HTTP są kompresowane.
  • Środowisko uruchomieniowe i zestawy platformy .NET są buforowane w przeglądarce.

Model hostingu Blazor WebAssembly oferuje kilka korzyści:

  • W przypadku aplikacji autonomicznych Blazor WebAssembly nie ma zależności po stronie serwera .NET po pobraniu aplikacji z serwera, więc aplikacja pozostaje funkcjonalna, jeśli serwer przejdzie w tryb offline.
  • Zasoby i możliwości klienta są w pełni używane.
  • Praca jest odciążona z serwera do klienta.
  • W przypadku aplikacji autonomicznych Blazor WebAssembly serwer internetowy platformy ASP.NET Core nie jest wymagany do hostowania aplikacji. Scenariusze wdrażania bezserwerowego są możliwe, takie jak obsługa aplikacji z usługi Content Delivery Network (CDN).

Model hostingu Blazor WebAssembly ma następujące ograniczenia:

  • Razor składniki są ograniczone do możliwości przeglądarki.
  • Wymagany jest sprzęt klienta i oprogramowanie (na przykład obsługa zestawu WebAssembly).
  • Rozmiar pobierania jest większy, a ładowanie składników trwa dłużej.
  • Kod wysyłany do klienta nie może być chroniony przed inspekcją i manipulowaniem przez użytkowników.

Interpreter języka .NET Intermediate Language (IL) obejmuje częściową obsługę środowiska uruchomieniowego just in time (JIT), aby uzyskać lepszą wydajność środowiska uruchomieniowego. Interpreter JIT optymalizuje wykonywanie kodów bajtów interpretera, zastępując je małymi obiektami blob kodu zestawu WebAssembly. Interpreter JIT jest automatycznie włączony dla aplikacji z Blazor WebAssembly wyjątkiem debugowania.

Blazor program obsługuje kompilację przed czasem (AOT), w której można skompilować kod platformy .NET bezpośrednio do zestawu WebAssembly. Kompilacja AOT powoduje zwiększenie wydajności środowiska uruchomieniowego kosztem większego rozmiaru aplikacji. Aby uzyskać więcej informacji, zobacz ASP.NET Core build tools and ahead-of-time (AOT) build tools and ahead-of-time compilation (AOT) (Narzędzia kompilacji ASP.NET Core Blazor WebAssembly i kompilacja przed czasem (AOT).

Te same narzędzia kompilacji zestawu WebAssembly platformy .NET używane do kompilacji AOT również ponownie połącz środowisko uruchomieniowe platformy .NET WebAssembly w celu przycinania nieużywanego kodu środowiska uruchomieniowego. Blazor Przycina również nieużywany kod z bibliotek platformy .NET Framework. Kompilator platformy .NET dodatkowo prekompresuje autonomiczną Blazor WebAssembly aplikację dla mniejszego ładunku aplikacji.

Składniki renderowane Razor za pomocą zestawu WebAssembly mogą używać natywnych zależności utworzonych do uruchamiania w zestawie WebAssembly.

Blazor WebAssembly Obejmuje obsługę przycinania nieużywanego kodu z bibliotek platformy .NET Core Framework. Aby uzyskać więcej informacji, zobacz ASP.NET Core Blazor globalizacji i lokalizacji.

Blazor Hybrid

Blazor można również używać do tworzenia natywnych aplikacji klienckich przy użyciu podejścia hybrydowego. Aplikacje hybrydowe to aplikacje natywne, które korzystają z technologii internetowych na potrzeby ich funkcjonalności. Blazor Hybrid W aplikacji Razor składniki są uruchamiane bezpośrednio w aplikacji natywnej (nie w zestawie WebAssembly) wraz z innym kodem platformy .NET i renderować internetowy interfejs użytkownika oparty na kodzie HTML i CSS do osadzonej Web View kontrolki za pośrednictwem lokalnego kanału międzyoperacyjności.

Aplikacje hybrydowe z platformą .NET i Blazor renderuj interfejs użytkownika w kontrolce Web View , gdzie dom HTML współdziała z platformą Blazor i platformą .NET natywnej aplikacji klasycznej lub mobilnej.

Blazor Hybrid aplikacje można tworzyć przy użyciu różnych platform aplikacji natywnych dla platformy .NET, w tym .NET MAUI, WPF i Windows Forms. Blazor Udostępnia BlazorWebView mechanizmy kontroli dodawania Razor składników do aplikacji utworzonych za pomocą tych struktur. Korzystanie Blazor z usług oferuje .NET MAUI wygodny sposób tworzenia aplikacji międzyplatformowych Blazor Hybrid dla urządzeń przenośnych i klasycznych, a Blazor integracja z platformami WPF i Windows Forms może być doskonałym sposobem na modernizację istniejących aplikacji.

Ponieważ Blazor Hybrid aplikacje są aplikacjami natywnymi, mogą obsługiwać funkcje, które nie są dostępne tylko dla platformy internetowej. Blazor Hybrid aplikacje mają pełny dostęp do natywnych możliwości platformy za pośrednictwem normalnych interfejsów API platformy .NET. Blazor Hybrid aplikacje mogą również udostępniać i ponownie używać składników w istniejących Blazor Server lub Blazor WebAssembly aplikacjach. Blazor Hybrid aplikacje łączą zalety aplikacji internetowych, natywnych i platformy .NET.

Model hostingu Blazor Hybrid oferuje kilka korzyści:

  • Użyj ponownie istniejących składników, które mogą być współużytkowane przez urządzenia przenośne, komputery i internet.
  • Wykorzystaj umiejętności, doświadczenie i zasoby dotyczące tworzenia aplikacji internetowych.
  • Aplikacje mają pełny dostęp do natywnych możliwości urządzenia.

Model hostingu Blazor Hybrid ma następujące ograniczenia:

  • Oddzielne aplikacje klienckie natywne muszą być kompilowane, wdrażane i obsługiwane dla każdej platformy docelowej.
  • Natywne aplikacje klienckie zwykle trwają dłużej, aby znaleźć, pobrać i zainstalować aplikację internetową w przeglądarce.

Aby uzyskać więcej informacji, zobacz ASP.NET Core Blazor Hybrid.

Aby uzyskać więcej informacji na temat natywnych platform klienta firmy Microsoft, zobacz następujące zasoby:

Który Blazor model hostingu należy wybrać?

Model hostingu składnika jest ustawiany przez tryb renderowania w czasie kompilacji lub w czasie wykonywania, który jest opisany z przykładami w trybach renderowania ASP.NET CoreBlazor. W poniższej tabeli przedstawiono podstawowe zagadnienia dotyczące ustawiania trybu renderowania w celu określenia modelu hostingu składnika. W przypadku aplikacji autonomicznych Blazor WebAssembly wszystkie składniki aplikacji są renderowane na kliencie przy użyciu modelu hostingu Blazor WebAssembly .

Wybierz model hostingu Blazor na podstawie wymagań dotyczących funkcji aplikacji. W poniższej tabeli przedstawiono podstawowe zagadnienia dotyczące wybierania modelu hostingu.

Blazor Hybrid aplikacje obejmują .NET MAUIaplikacje platformy , WPF i Windows Forms.

Funkcja Blazor Server Blazor WebAssembly (WASM) Blazor Hybrid
Pełna zgodność interfejsu API platformy .NET Obsługiwane Nieobsługiwane Obsługiwane
Bezpośredni dostęp do zasobów serwera i sieci Obsługiwane Nieobsługiwane Nieobsługiwane
Mały rozmiar ładunku z szybkim początkowym czasem ładowania Obsługiwane Nieobsługiwane Nieobsługiwane
Niemal natywna szybkość wykonywania Obsługiwane Obsługiwane* Obsługiwane
Kod aplikacji jest bezpieczny i prywatny na serwerze Obsługiwane Nieobsługiwane Nieobsługiwane
Uruchamianie aplikacji w trybie offline po pobraniu Nieobsługiwane Obsługiwane Obsługiwane
Hostowanie witryn statycznych Nieobsługiwane Obsługiwane Nieobsługiwane
Odciąża przetwarzanie do klientów Nieobsługiwane Obsługiwane Obsługiwane
Pełny dostęp do natywnych możliwości klienta Nieobsługiwane Nieobsługiwane Obsługiwane
Wdrażanie oparte na sieci Web Obsługiwane Obsługiwane Nieobsługiwane

Blazor WebAssembly† i Blazor Hybrid aplikacje mogą używać interfejsów API opartych na serwerze do uzyskiwania dostępu do zasobów serwera/sieci oraz uzyskiwania dostępu do prywatnego i bezpiecznego kodu aplikacji.
‹Blazor WebAssembly Osiąga tylko wydajność niemal natywną z wyprzedzeniem (AOT) kompilacji.

Funkcja Blazor Server Blazor WebAssembly (WASM)
Pełna zgodność interfejsu API platformy .NET Obsługiwane Nieobsługiwane
Bezpośredni dostęp do zasobów serwera i sieci Obsługiwane Nieobsługiwane
Mały rozmiar ładunku z szybkim początkowym czasem ładowania Obsługiwane Nieobsługiwane
Kod aplikacji jest bezpieczny i prywatny na serwerze Obsługiwane Nieobsługiwane
Uruchamianie aplikacji w trybie offline po pobraniu Nieobsługiwane Obsługiwane
Hostowanie witryn statycznych Nieobsługiwane Obsługiwane
Odciąża przetwarzanie do klientów Nieobsługiwane Obsługiwane

Blazor WebAssembly† aplikacje mogą używać interfejsów API opartych na serwerze do uzyskiwania dostępu do zasobów serwera/sieci oraz uzyskiwania dostępu do prywatnego i bezpiecznego kodu aplikacji.

Po wybraniu modelu hostingu aplikacji możesz wygenerować aplikację Blazor Server lub Blazor WebAssembly na podstawie Blazor szablonu projektu. Aby uzyskać więcej informacji, zobacz Tooling for ASP.NET Core Blazor.

Aby utworzyć aplikacjęBlazor Hybrid, zobacz artykuły w sekcji ASP.NET Core tutorials (Samouczki dotyczące platformy ASP.NET CoreBlazor Hybrid).

Pełna zgodność interfejsu API platformy .NET

Składniki renderowane dla modelu hostingu Blazor Server i Blazor Hybrid aplikacji mają pełną zgodność interfejsu API platformy .NET, podczas gdy składniki renderowane dla Blazor WebAssembly programu są ograniczone do podzestawu interfejsów API platformy .NET. Gdy specyfikacja aplikacji wymaga co najmniej jednego interfejsu API platformy .NET, który jest niedostępny dla składników renderowanych przez zestaw WebAssembly, wybierz opcję renderowania składników do Blazor Server lub użycia .Blazor Hybrid

Blazor Server aplikacje mają Blazor Hybrid pełną zgodność interfejsu API platformy .NET, natomiast Blazor WebAssembly aplikacje są ograniczone do podzbioru interfejsów API platformy .NET. Gdy specyfikacja aplikacji wymaga co najmniej jednego interfejsu API platformy .NET, które są niedostępne dla Blazor WebAssembly aplikacji, wybierz lub Blazor Server Blazor Hybrid.

Blazor Server Aplikacje mają pełną zgodność interfejsu API platformy .NET, a Blazor WebAssembly aplikacje są ograniczone do podzbioru interfejsów API platformy .NET. Gdy specyfikacja aplikacji wymaga co najmniej jednego interfejsu API platformy .NET, które są niedostępne dla Blazor WebAssembly aplikacji, wybierz pozycję Blazor Server.

Bezpośredni dostęp do zasobów serwera i sieci

Składniki renderowane dla modelu hostingu Blazor Server mają bezpośredni dostęp do zasobów serwera i sieci, w których aplikacja jest uruchamiana. Ponieważ składniki hostowane przy użyciu Blazor WebAssembly lub Blazor Hybrid są wykonywane na kliencie, nie mają bezpośredniego dostępu do zasobów serwera i sieci. Składniki mogą uzyskiwać dostęp do zasobów serwera i sieci pośrednio za pośrednictwem chronionych interfejsów API opartych na serwerze. Interfejsy API oparte na serwerze mogą być dostępne za pośrednictwem bibliotek, pakietów i usług innych firm. Weź pod uwagę następujące zagadnienia:

  • Biblioteki, pakiety i usługi innych firm mogą być kosztowne w celu zaimplementowania i obsługi, słabej obsługi lub wprowadzenia zagrożeń bezpieczeństwa.
  • Jeśli co najmniej jeden interfejs API oparty na serwerze jest opracowywany wewnętrznie przez organizację, wymagane są dodatkowe zasoby do ich tworzenia i obsługi.

Użyj modelu hostingu, Blazor Server aby uniknąć konieczności uwidaczniania interfejsów API ze środowiska serwera.

Blazor Server aplikacje mają bezpośredni dostęp do zasobów serwera i sieci, w których aplikacja jest uruchamiana. Ponieważ Blazor WebAssembly aplikacje i Blazor Hybrid są wykonywane na kliencie, nie mają bezpośredniego dostępu do zasobów serwera i sieci. Blazor WebAssembly aplikacje i Blazor Hybrid mogą uzyskiwać dostęp do zasobów serwera i sieci pośrednio za pośrednictwem chronionych interfejsów API opartych na serwerze. Interfejsy API oparte na serwerze mogą być dostępne za pośrednictwem bibliotek, pakietów i usług innych firm. Weź pod uwagę następujące zagadnienia:

  • Biblioteki, pakiety i usługi innych firm mogą być kosztowne w celu zaimplementowania i obsługi, słabej obsługi lub wprowadzenia zagrożeń bezpieczeństwa.
  • Jeśli co najmniej jeden interfejs API oparty na serwerze jest opracowywany wewnętrznie przez organizację, wymagane są dodatkowe zasoby do ich tworzenia i obsługi.

Aby uniknąć interfejsów API opartych na serwerze dla Blazor WebAssembly aplikacji lub Blazor Hybrid aplikacji, należy stosować Blazor Servermetodę , która może uzyskiwać bezpośredni dostęp do zasobów serwera i sieci.

Blazor Server aplikacje mają bezpośredni dostęp do zasobów serwera i sieci, w których aplikacja jest uruchamiana. Ponieważ Blazor WebAssembly aplikacje są wykonywane na kliencie, nie mają bezpośredniego dostępu do zasobów serwera i sieci. Blazor WebAssembly aplikacje mogą uzyskiwać dostęp do zasobów serwera i sieci pośrednio za pośrednictwem chronionych interfejsów API opartych na serwerze. Interfejsy API oparte na serwerze mogą być dostępne za pośrednictwem bibliotek, pakietów i usług innych firm. Weź pod uwagę następujące zagadnienia:

  • Biblioteki, pakiety i usługi innych firm mogą być kosztowne w celu zaimplementowania i obsługi, słabej obsługi lub wprowadzenia zagrożeń bezpieczeństwa.
  • Jeśli co najmniej jeden interfejs API oparty na serwerze jest opracowywany wewnętrznie przez organizację, wymagane są dodatkowe zasoby do ich tworzenia i obsługi.

Aby uniknąć interfejsów API opartych na serwerze dla Blazor WebAssembly aplikacji, należy stosować Blazor Servermetodę , która może uzyskiwać bezpośredni dostęp do zasobów serwera i sieci.

Mały rozmiar ładunku z szybkim początkowym czasem ładowania

Renderowanie składników z serwera zmniejsza rozmiar ładunku aplikacji i skraca czas początkowego ładowania. Gdy wymagany jest szybki początkowy czas ładowania, użyj modelu hostingu Blazor Server lub rozważ renderowanie statyczne po stronie serwera.

Blazor Server aplikacje mają stosunkowo małe rozmiary ładunków z krótszym początkowym czasem ładowania. Gdy wymagany jest szybki początkowy czas ładowania, należy przyjąć Blazor Serverwartość .

Niemal natywna szybkość wykonywania

Blazor Hybrid aplikacje są uruchamiane przy użyciu środowiska uruchomieniowego platformy .NET natywnie na platformie docelowej, co zapewnia najlepszą możliwą szybkość.

Składniki renderowane dla modelu hostingu Blazor WebAssembly , w tym progresywne aplikacje internetowe (PWA) i autonomiczne Blazor WebAssembly aplikacje są uruchamiane przy użyciu środowiska uruchomieniowego platformy .NET dla zestawu WebAssembly, który działa wolniej niż działa bezpośrednio na platformie. Rozważ użycie skompilowanego przed czasem (AOT) w celu zwiększenia wydajności środowiska uruchomieniowego podczas korzystania z programu Blazor WebAssembly.

Blazor Hybrid aplikacje są uruchamiane przy użyciu środowiska uruchomieniowego platformy .NET natywnie na platformie docelowej, co zapewnia najlepszą możliwą szybkość.

Blazor WebAssembly, w tym progresywne aplikacje internetowe (PWA), są uruchamiane przy użyciu środowiska uruchomieniowego platformy .NET dla zestawu WebAssembly, co jest wolniejsze niż uruchamianie bezpośrednio na platformie, nawet w przypadku aplikacji, które są kompilowane przed czasem (AOT) dla zestawu WebAssembly w przeglądarce.

Blazor Server aplikacje są zwykle wykonywane na serwerze szybko.

Blazor WebAssembly aplikacje są uruchamiane przy użyciu środowiska uruchomieniowego platformy .NET dla zestawu WebAssembly, który działa wolniej niż działa bezpośrednio na platformie.

Kod aplikacji jest bezpieczny i prywatny na serwerze

Bezpieczne i prywatne utrzymywanie kodu aplikacji na serwerze to wbudowana funkcja składników renderowanych dla modelu hostingu Blazor Server . Składniki renderowane przy użyciu modeli hostingu Blazor WebAssembly lub Blazor Hybrid mogą używać interfejsów API opartych na serwerze do uzyskiwania dostępu do funkcji, które muszą być przechowywane w trybie prywatnym i bezpiecznym. Zagadnienia dotyczące opracowywania i obsługi interfejsów API opartych na serwerze opisanych w sekcji Bezpośredni dostęp do zasobów serwera i zasobów sieciowych mają zastosowanie. Jeśli programowanie i konserwacja interfejsów API opartych na serwerze nie jest pożądane w przypadku obsługi bezpiecznego i prywatnego kodu aplikacji, renderuj składniki modelu hostingu Blazor Server .

Bezpieczne i prywatne utrzymywanie kodu aplikacji na serwerze to wbudowana funkcja Blazor Server. Blazor WebAssembly Aplikacje i Blazor Hybrid mogą używać interfejsów API opartych na serwerze do uzyskiwania dostępu do funkcji, które muszą być przechowywane w trybie prywatnym i bezpiecznym. Zagadnienia dotyczące opracowywania i obsługi interfejsów API opartych na serwerze opisanych w sekcji Bezpośredni dostęp do zasobów serwera i zasobów sieciowych mają zastosowanie. Jeśli programowanie i konserwacja interfejsów API opartych na serwerze nie jest pożądane w celu zachowania bezpiecznego i prywatnego kodu aplikacji, należy przyjąć model hostingu Blazor Server .

Bezpieczne i prywatne utrzymywanie kodu aplikacji na serwerze to wbudowana funkcja Blazor Server. Blazor WebAssembly aplikacje mogą używać interfejsów API opartych na serwerze do uzyskiwania dostępu do funkcji, które muszą być przechowywane jako prywatne i bezpieczne. Zagadnienia dotyczące opracowywania i obsługi interfejsów API opartych na serwerze opisanych w sekcji Bezpośredni dostęp do zasobów serwera i zasobów sieciowych mają zastosowanie. Jeśli programowanie i konserwacja interfejsów API opartych na serwerze nie jest pożądane w celu zachowania bezpiecznego i prywatnego kodu aplikacji, należy przyjąć model hostingu Blazor Server .

Uruchamianie aplikacji w trybie offline po pobraniu

Blazor WebAssembly Autonomiczne aplikacje utworzone jako progresywne aplikacje internetowe (PWA) i Blazor Hybrid aplikacje mogą działać w trybie offline, co jest szczególnie przydatne, gdy klienci nie mogą łączyć się z Internetem. Nie można uruchomić składników renderowanych dla modelu hostingu Blazor Server , gdy połączenie z serwerem zostanie utracone. Jeśli aplikacja musi działać w trybie offline, autonomiczna Blazor WebAssembly i Blazor Hybrid jest najlepszym wyborem.

Blazor WebAssembly aplikacje utworzone jako progresywne aplikacje internetowe (PWA) i Blazor Hybrid aplikacje mogą działać w trybie offline, co jest szczególnie przydatne, gdy klienci nie mogą łączyć się z Internetem. Blazor Server nie można uruchomić aplikacji, gdy połączenie z serwerem zostanie utracone. Jeśli aplikacja musi działać w trybie offline Blazor WebAssembly i Blazor Hybrid to najlepsze opcje.

Blazor WebAssembly aplikacje mogą działać w trybie offline, co jest szczególnie przydatne, gdy klienci nie mogą łączyć się z Internetem. Blazor Server nie można uruchomić aplikacji, gdy połączenie z serwerem zostanie utracone. Jeśli aplikacja musi działać w trybie offline, Blazor WebAssembly jest najlepszym wyborem.

Hostowanie witryn statycznych

Hostowanie witryn statycznych jest możliwe w przypadku aplikacji autonomicznych Blazor WebAssembly , ponieważ są one pobierane do klientów jako zestaw plików statycznych. Aplikacje autonomiczne Blazor WebAssembly nie wymagają serwera do wykonania kodu po stronie serwera w celu pobrania i uruchomienia i mogą być dostarczane za pośrednictwem usługi Content Delivery Network (CDN) (na przykład usługi Azure CDN).

Mimo że Blazor Hybrid aplikacje są kompilowane w co najmniej jeden samodzielny zasób wdrażania, zasoby są zwykle udostępniane klientom za pośrednictwem sklepu z aplikacjami innej firmy. Jeśli hostowanie statyczne jest wymaganiem aplikacji, wybierz pozycję autonomiczny Blazor WebAssembly.

Odciąża przetwarzanie do klientów

Składniki renderowane przy użyciu modeli hostingu Blazor WebAssembly lub Blazor Hybrid są wykonywane na klientach, a tym samym odciążają przetwarzanie do klientów. Składniki renderowane dla modelu hostingu Blazor Server są wykonywane na serwerze, więc zapotrzebowanie na zasoby serwera zwykle zwiększa się wraz z liczbą użytkowników i ilością wymaganego przetwarzania na użytkownika. Jeśli możliwe jest odciążenie większości lub wszystkich procesów przetwarzania aplikacji dla klientów i aplikacji przetwarza znaczną ilość danych lub Blazor WebAssembly Blazor Hybrid jest najlepszym wyborem.

Blazor WebAssembly aplikacje i Blazor Hybrid są wykonywane na klientach, a tym samym odciążają przetwarzanie do klientów. Blazor Server aplikacje są wykonywane na serwerze, więc zapotrzebowanie na zasoby serwera zwykle wzrasta wraz z liczbą użytkowników i ilością wymaganego przetwarzania na użytkownika. Jeśli możliwe jest odciążenie większości lub wszystkich procesów przetwarzania aplikacji dla klientów i aplikacji przetwarza znaczną ilość danych lub Blazor WebAssembly Blazor Hybrid jest najlepszym wyborem.

Blazor WebAssembly aplikacje są wykonywane na klientach, a tym samym odciążają przetwarzanie do klientów. Blazor Server aplikacje są wykonywane na serwerze, więc zapotrzebowanie na zasoby serwera zwykle wzrasta wraz z liczbą użytkowników i ilością wymaganego przetwarzania na użytkownika. Jeśli możliwe jest odciążenie większości lub wszystkich procesów przetwarzania aplikacji na klientach, a aplikacja przetwarza znaczną ilość danych, Blazor WebAssembly jest najlepszym wyborem.

Pełny dostęp do natywnych możliwości klienta

Blazor Hybrid aplikacje mają pełny dostęp do natywnych funkcji interfejsu API klienta za pośrednictwem platform aplikacji natywnych dla platform .NET. W Blazor Hybrid aplikacjach Razor składniki są uruchamiane bezpośrednio w aplikacji natywnej, a nie w zestawie WebAssembly. Gdy wymagane są pełne możliwości klienta, Blazor Hybrid jest najlepszym wyborem.

Wdrażanie oparte na sieci Web

Blazor Aplikacje internetowe są aktualizowane podczas następnego odświeżania aplikacji z przeglądarki.

Blazor Hybrid aplikacje to natywne aplikacje klienckie, które zwykle wymagają instalatora i mechanizmu wdrażania specyficznego dla platformy.

Ustawianie modelu hostingu składnika

Aby ustawić model hostingu składnika na Blazor Server lub Blazor WebAssembly w czasie kompilacji lub dynamicznie w czasie wykonywania, należy ustawić jego tryb renderowania. Tryby renderowania są w pełni wyjaśnione i przedstawione w artykule tryby renderowania ASP.NET CoreBlazor. Nie zalecamy przechodzenia z tego artykułu bezpośrednio do artykułu Tryby renderowania bez odczytywania zawartości w artykułach między tymi dwoma artykułami. Na przykład tryby renderowania można łatwiej zrozumieć, przeglądając Razor przykłady składników, ale podstawowa Razor struktura i funkcja nie są omówione, dopóki nie zostanie osiągnięty artykuł podstawy platformy ASP.NET CoreBlazor. Warto również dowiedzieć się więcej na temat Blazorszablonów projektów i narzędzi przed rozpoczęciem pracy z przykładami składników w artykule Tryby renderowania.