Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Note
Nie jest to najnowsza wersja tego artykułu. Aby zapoznać się z aktualną wersją, zobacz artykuł w wersji .NET 10.
Warning
Ta wersja ASP.NET Core nie jest już obsługiwana. Aby uzyskać więcej informacji, zobacz .NET i .NET Core — zasady pomocy technicznej. Aby zapoznać się z aktualną wersją, zobacz artykuł w wersji .NET 10.
W tym artykule opisano Blazor modele hostingu, koncentrując się głównie na aplikacjach Blazor Server 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 stacjonarnych. Blazor Web AppS na platformie .NET 8 lub nowszym lepiej rozumieć przez sposób renderowania komponentów Razor, który jest określany jako tryb renderowania. Tryby renderowania są pokrótce omówione w artykule Podstawy i szczegółowo opisane w artykule ASP.NET Core Blazor tryby renderowania 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 framework internetowy służący 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ą się uruchamiać po stronie serwera w ASP.NET CoreBlazor Server, lub po stronie klienta w przeglądarce, w uruchomieniowym środowisku platformy .NET opartym na WebAssembly (Blazor WebAssembly oraz Blazor Wasm). Składniki Razor można również osadzać w natywnych aplikacjach mobilnych i komputerowych, które renderują do osadzonej kontrolki Web View (Blazor Hybrid). Niezależnie od modelu hostingu, sposób tworzenia komponentów Razorjest taki sam. Te same Razor komponenty mogą być używane z dowolnym modelem hostingu bez zmian.
Blazor to framework internetowy służący 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ą się uruchamiać po stronie serwera w ASP.NET CoreBlazor Server, lub po stronie klienta w przeglądarce, w uruchomieniowym środowisku platformy .NET opartym na WebAssembly (Blazor WebAssembly oraz Blazor Wasm). Niezależnie od modelu hostingu, sposób tworzenia komponentów Razorjest taki sam. Te same Razor komponenty mogą być używane z dowolnym modelem hostingu bez zmian.
Blazor Server
W modelu hostingu Blazor Server komponenty są uruchamiane 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 pośrednictwem połączenia SignalR przy użyciu protokołu WebSockets. Stan na serwerze skojarzony z każdym połączonym klientem jest nazywany circuit. Obwody nie są powiązane z określonym połączeniem sieciowym i mogą tolerować tymczasowe przerwy w działaniu sieci i próby przez klienta 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 hostowanego Blazor Server każdy ekran przeglądarki wymaga oddzielnego obwodu komunikacji 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 zamknięcia połączenie i skojarzone zasoby są natychmiast zwalniane. Klient może również rozłączyć się w sposób niekontrolowany, na przykład z powodu przerwy w działaniu sieci.
Blazor Server przechowuje odłączone połączenia przez konfigurowalny interwał, aby umożliwić klientowi ponowne nawiązanie połączenia.
Po stronie klienta skrypt Blazorustanawia SignalRpołączenie z serwerem. Skrypt jest obsługiwany jako statyczny zasób internetowy z automatyczną kompresją i odciskiem palca.
Po stronie klienta skrypt Blazorustanawia SignalRpołączenie z serwerem. Skrypt jest udostępniany 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.
- Platforma .NET na serwerze służy do uruchamiania aplikacji, więc istniejące narzędzia platformy .NET, takie jak debugowanie, działają zgodnie z oczekiwaniami.
- Cienkie klienty są obsługiwane. 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 dostarczana klientom.
Model hostingu Blazor Server ma następujące ograniczenia:
- Zwykle występuje większe opóźnienie. Każda interakcja użytkownika obejmuje przejście przez sieć.
- Obsługa trybu offline nie jest dostępna. Jeśli połączenie klienta nie powiedzie się, interakcja także się nie powiedzie.
- 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. Wdrożenie bezserwerowe nie jest możliwe, takie jak hostowanie aplikacji z sieci Content Delivery Network (CDN).
Zalecamy użycie usługi Azure SignalR Service dla aplikacji, które korzystają z modelu hostingu . Usługa umożliwia skalowanie aplikacji Blazor Server do dużej liczby współbieżnych SignalR połączeń.
Blazor WebAssembly
Model hostowania 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. Komponenty 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 do serwera internetowego lub usługi obsługującej zawartość statyczną dla klientów.
Blazor Web Apps mogą korzystać z modelu hostingu Blazor WebAssembly , aby umożliwić interaktywność 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 nazywana samodzielną aplikacją.
Blazor WebAssembly Gdy aplikacja zostanie utworzona do wdrożenia bez aplikacji zaplecza ASP.NET Core do obsługi swoich plików, aplikacja jest nazywana samodzielną aplikacją.
Gdy aplikacja autonomiczna Blazor WebAssembly używa aplikacji zaplecza ASP.NET Core do obsługi swoich plików, aplikacja jest nazywana hostowaną aplikacją. Korzystając z hostowanego Blazor WebAssembly, uzyskujesz możliwość tworzenia aplikacji internetowych w modelu full-stack za pomocą platformy .NET, w tym możliwość udostępniania kodu między aplikacjami klienckimi i serwerowymi, obsługę prerenderingu oraz integrację z MVC i Razor Pages. 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 web 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, uruchamianie 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 .NET, składników Razor i zależności.
- Inicjowanie środowiska uruchomieniowego.
Rozmiar opublikowanej aplikacji, czyli jej rozmiar pakietu wdrożeniowego, 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. Blazor WebAssembly optymalizuje rozmiar danych, aby skrócić czasy pobierania:
- Nieużywany kod jest usuwany z aplikacji podczas publikowania aplikacji za pomocą narzędzia 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 wykorzystywane.
- Obciążenie jest przenoszone z serwera na klienta.
- W przypadku aplikacji autonomicznych Blazor WebAssembly serwer internetowy platformy ASP.NET Core nie jest wymagany do hostowania aplikacji. Możliwe są scenariusze wdrażania bezserwerowego, takie jak udostępnianie aplikacji z sieci 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 odpowiedni sprzęt klienta i oprogramowanie klienta (na przykład obsługa zestawu WebAssembly).
- Rozmiar pobierania jest większy, a ładowanie komponentó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ę czasu wykonywania just in time (JIT), aby uzyskać lepszą wydajność środowiska uruchomieniowego. Interpreter JIT optymalizuje wykonywanie bajtkodu interpretera, zastępując go małymi fragmentami kodu WebAssembly. Interpreter JIT jest automatycznie włączony dla aplikacji Blazor WebAssembly, chyba że trwa debugowanie.
Blazor program obsługuje kompilację z wyprzedzeniem (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 Narzędzia kompilacji ASP.NET Core Blazor WebAssembly i kompilacja wyprzedzająca (AOT).
Te same narzędzia kompilacji zestawu WebAssembly platformy .NET używane do kompilacji AOT również ponownie łą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 samodzielną Blazor WebAssembly aplikację, aby zmniejszyć rozmiar aplikacji.
Komponenty renderowane przez WebAssembly Razor mogą używać natywnych zależności utworzonych do uruchamiania w środowisku WebAssembly.
Blazor WebAssembly obejmuje obsługę przycinania nieużywanego kodu z bibliotek platformy .NET. Aby uzyskać więcej informacji, zobacz globalizacja i lokalizacja w programie ASP.NET CoreBlazor.
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 renderują internetowy interfejs użytkownika oparty na kodzie HTML i CSS do osadzonej Web View kontrolki za pośrednictwem lokalnego kanału międzyoperacyjności.
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 kontrolki do dodawania Razor komponentów do aplikacji utworzonych za pomocą tych frameworków. Korzystanie z Blazor z użyciem .NET MAUI oferuje wygodny sposób tworzenia międzyplatformowych aplikacji Blazor Hybrid dla urządzeń przenośnych i komputerów stacjonarnych, a integracja Blazor 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 przy użyciu samej 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ż współdzielić 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 komponentów, które mogą być udostępniane w aplikacjach mobilnych, desktopowych i internetowych.
- Wykorzystaj umiejętności, doświadczenie i zasoby dotyczące tworzenia stron 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 utrzymywane dla każdej platformy docelowej.
- Wyszukanie, pobranie i zainstalowanie natywnych aplikacji klienckich zwykle zajmuje więcej czasu niż uzyskanie dostępu do aplikacji internetowej w przeglądarce.
Aby uzyskać więcej informacji, zobacz ASP.NET Core Blazor Hybrid.
Aby uzyskać więcej informacji na temat struktur klienta natywnego firmy Microsoft, zobacz następujące zasoby:
- .NET Multi-platform App UI (.NET MAUI)
- Windows Presentation Foundation (WPF)
- Formularze systemu Windows
Który Blazor model hostingu należy wybrać?
Model hostingu składnika jest ustawiany przez jego tryb renderowania, albo w czasie kompilacji, albo w czasie wykonywania, co opisano na przykładach w artykule ASP.NET Core Blazor tryby renderowania. 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 MAUI, WPF i aplikacje Windows Forms.
| Feature | Blazor Server | Blazor WebAssembly (Wasm) | Blazor Hybrid |
|---|---|---|---|
| Pełna zgodność interfejsu API platformy .NET | Supported | Nieobsługiwany | Supported |
| Bezpośredni dostęp do zasobów serwera i sieci | Supported | Nie jest obsługiwane† | Nie jest obsługiwane† |
| Mały rozmiar danych z szybkim początkowym czasem ładowania | Supported | Nieobsługiwany | Nieobsługiwany |
| Niemal natywna szybkość wykonywania | Supported | Supported‡ | Supported |
| Kod aplikacji jest bezpieczny i pozostaje prywatny na serwerze | Supported | Nie jest obsługiwane† | Nie jest obsługiwane† |
| Uruchamiaj aplikacje offline po pobraniu | Nieobsługiwany | Supported | Supported |
| Hostowanie witryn statycznych | Nieobsługiwany | Supported | Nieobsługiwany |
| Przenosi przetwarzanie na klientów | Nieobsługiwany | Supported | Supported |
| Pełny dostęp do natywnych możliwości klienta | Nieobsługiwany | Nieobsługiwany | Supported |
| Wdrażanie oparte na sieci Web | Supported | Supported | Nieobsługiwany |
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 wydajność niemal natywną tylko przy kompilacji z wyprzedzeniem (AOT).
| Feature | Blazor Server | Blazor WebAssembly (Wasm) |
|---|---|---|
| Pełna zgodność interfejsu API platformy .NET | Supported | Nieobsługiwany |
| Bezpośredni dostęp do zasobów serwera i sieci | Supported | Nie jest obsługiwane† |
| Mały rozmiar danych z szybkim początkowym czasem ładowania | Supported | Nieobsługiwany |
| Kod aplikacji jest bezpieczny i pozostaje prywatny na serwerze | Supported | Nie jest obsługiwane† |
| Uruchamiaj aplikacje offline po pobraniu | Nieobsługiwany | Supported |
| Hostowanie witryn statycznych | Nieobsługiwany | Supported |
| Przenosi przetwarzanie na klientów | Nieobsługiwany | Supported |
†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 z szablonu projektu Blazor. Aby uzyskać więcej informacji, zobacz Tooling for ASP.NET Core Blazor.
Aby utworzyć aplikację Blazor Hybrid, zobacz artykuły w obszarze ASP.NET Core Blazor Hybrid samouczki.
Pełna zgodność interfejsu API platformy .NET
Składniki renderowane dla modelu hostingu Blazor Server i aplikacji Blazor Hybrid mają pełną zgodność z interfejsem API platformy .NET, podczas gdy składniki renderowane dla aplikacji Blazor WebAssembly są ograniczone do podzestawu interfejsów API platformy .NET. Gdy specyfikacja aplikacji wymaga jednego lub większej liczby interfejsów API platformy .NET, które są niedostępne dla składników renderowanych przez zestaw WebAssembly, wybierz opcję renderowania składników dla Blazor Server lub użyj Blazor Hybrid.
Blazor Server i Blazor Hybrid aplikacje mają pełną zgodność z interfejsem 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 aplikacji Blazor WebAssembly, wybierz Blazor Server lub Blazor Hybrid.
Blazor Server mają pełną zgodność z interfejsami API platformy .NET, a aplikacje Blazor WebAssembly są ograniczone do podzbioru interfejsów API platformy .NET. Gdy specyfikacja aplikacji wymaga co najmniej jednego interfejsu API platformy .NET, który jest niedostępny dla aplikacji Blazor WebAssembly, 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, na których działa aplikacja. 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 we wdrożeniu i utrzymaniu, słabo wspierane lub stwarzać zagrożenia bezpieczeństwa.
- Jeśli jeden lub więcej interfejsów API opartych na serwerze jest opracowywanych 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 na hoście, na którym aplikacja jest uruchomiona. Ponieważ Blazor WebAssembly i Blazor Hybrid aplikacje są wykonywane na kliencie, nie mają bezpośredniego dostępu do zasobów serwera i sieci. Blazor WebAssembly i Blazor Hybrid 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 we wdrożeniu i utrzymaniu, słabo wspierane lub stwarzać zagrożenia bezpieczeństwa.
- Jeśli jeden lub więcej interfejsów API opartych na serwerze jest opracowywanych wewnętrznie przez organizację, wymagane są dodatkowe zasoby do ich tworzenia i obsługi.
Aby uniknąć interfejsów API opartych na serwerze dla aplikacji Blazor WebAssembly lub Blazor Hybrid, należy stosować Blazor Server, 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 na hoście, na którym aplikacja jest uruchomiona. 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 we wdrożeniu i utrzymaniu, słabo wspierane lub stwarzać zagrożenia bezpieczeństwa.
- Jeśli jeden lub więcej interfejsów API opartych na serwerze jest opracowywanych wewnętrznie przez organizację, wymagane są dodatkowe zasoby do ich tworzenia i obsługi.
Aby uniknąć interfejsów API opartych na serwerze dla aplikacji Blazor WebAssembly, należy stosować Blazor Server, które może uzyskiwać bezpośredni dostęp do zasobów serwera i sieci.
Mały rozmiar danych z szybkim początkowym czasem ładowania
Renderowanie komponentów z serwera zmniejsza rozmiar pakietu 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 pakietów i krótszy początkowy czas ładowania. Gdy wymagany jest szybki początkowy czas ładowania, należy przyjąć Blazor Server.
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 samodzielne aplikacje Blazor WebAssembly, są uruchamiane przy użyciu środowiska uruchomieniowego platformy .NET dla WebAssembly, które działa wolniej niż uruchamianie bezpośrednio na platformie. Rozważ użycie kompilacji wyprzedzającej (AOT) w celu zwiększenia wydajności środowiska uruchomieniowego podczas korzystania z 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ą skompilowane z wyprzedzeniem (AOT) dla zestawu WebAssembly w przeglądarce.
Blazor Server aplikacje zwykle uruchamiają się szybko na serwerze.
Blazor WebAssembly aplikacje działają przy użyciu środowiska uruchomieniowego .NET dla WebAssembly, co jest wolniejsze niż bezpośrednie uruchamianie na platformie.
Kod aplikacji na serwerze jest bezpieczny i pozostaje prywatny
Utrzymywanie kodu aplikacji na serwerze w bezpieczny i prywatny sposób 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ą pozostać prywatne i bezpieczne. Zagadnienia dotyczące opracowywania i obsługi interfejsów API opartych na serwerze opisane w sekcji Bezpośredni dostęp do zasobów serwera i sieci mają zastosowanie. Jeśli tworzenie i utrzymanie interfejsów API opartych na serwerze nie jest pożądane do utrzymania bezpiecznego i prywatnego kodu aplikacji, renderuj składniki dla modelu hostingu Blazor Server.
Bezpieczne i prywatne utrzymywanie kodu aplikacji na serwerze to wbudowana funkcja Blazor Server. Aplikacje Blazor WebAssembly i Blazor Hybrid mogą używać interfejsów API opartych na serwerze do uzyskiwania dostępu do funkcji, które muszą pozostać prywatne i bezpieczne. Zagadnienia dotyczące opracowywania i obsługi interfejsów API opartych na serwerze opisane w sekcji Bezpośredni dostęp do zasobów serwera i sieci mają zastosowanie. Jeśli tworzenie 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 opisane w sekcji Bezpośredni dostęp do zasobów serwera i sieci mają zastosowanie. Jeśli tworzenie 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.
Uruchamiaj aplikacje offline po pobraniu
Blazor WebAssembly Autonomiczne aplikacje utworzone jako progresywne aplikacje internetowe (PWA) oraz aplikacje Blazor Hybrid 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, autonomiczne Blazor WebAssembly i Blazor Hybrid są 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 aplikacje nie działają, 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 aplikacje nie działają, 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 na urządzenia klientów jako zestaw plików statycznych. Aplikacje autonomiczne Blazor WebAssembly nie wymagają serwera do uruchomienia 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 do jednego lub większej liczby samodzielnych zasobów wdrożeniowych, zasoby są zwykle udostępniane klientom za pośrednictwem sklepu z aplikacjami innej firmy. Jeśli hostowanie statyczne jest wymaganiem aplikacji, wybierz opcję „samodzielna” Blazor WebAssembly.
Przenosi przetwarzanie do klientów
Składniki renderowane przy użyciu modeli hostingu Blazor WebAssembly lub Blazor Hybrid są wykonywane na klientach, a tym samym przenoszą obciążenie przetwarzania na 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 przeniesienie większości lub całości przetwarzania aplikacji po stronie klientów, a aplikacja przetwarza znaczną ilość danych, Blazor WebAssembly lub Blazor Hybrid jest najlepszym wyborem.
Blazor WebAssembly aplikacje i Blazor Hybrid są wykonywane na klientach, a tym samym przenoszą przetwarzanie na 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 przeniesienie większości lub całości przetwarzania aplikacji po stronie klientów, a aplikacja przetwarza znaczną ilość danych, Blazor WebAssembly lub Blazor Hybrid jest najlepszym wyborem.
Blazor WebAssembly aplikacje są wykonywane na klientach, a tym samym przenoszą przetwarzanie na 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 przeniesienie większości lub całości przetwarzania aplikacji na klientów, a aplikacja przetwarza znaczną ilość danych, Blazor WebAssembly jest najlepszym wyborem.
Pełny dostęp do funkcji klienta natywnego
Blazor Hybrid aplikacje mają pełny dostęp do natywnych funkcji interfejsu API klienta za pośrednictwem natywnych frameworków aplikacyjnych .NET. W Blazor Hybrid aplikacjach Razor składniki są uruchamiane bezpośrednio w aplikacji natywnej, a nie w środowisku WebAssembly. Gdy wymagane są pełne możliwości klienta, Blazor Hybrid jest najlepszym wyborem.
Wdrażanie oparte na sieci Web
Karty Blazor Web App są aktualizowane przy następnym odświeżeniu 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 hostowania 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 w ASP.NET CoreBlazor. Nie zalecamy przechodzenia z tego artykułu bezpośrednio do artykułu Tryby renderowania bez przeczytania treści artykułów między tymi dwoma artykułami. Na przykład tryby renderowania można łatwiej zrozumieć, patrząc na przykłady składników Razor, ale podstawowa Razor struktura i funkcja składnika nie są omówione aż do artykułu ASP.NET Core Blazor fundamentals. Warto również dowiedzieć się więcej na temat Blazor szablonów projektów i narzędzi przed rozpoczęciem pracy z przykładami składników w artykule Tryby renderowania.