Blazor .NET 8 (samouczek dla programistów)
Blazor, framework UI do tworzenia stron internetowych typu full-stack, znacznie ewoluował wraz z wydaniem .NET 8.0. Ta aktualizacja wprowadza różne funkcje i ulepszenia, które umożliwiają programistom tworzenie interaktywnych i nowoczesnych aplikacji internetowych przy użyciu C# i .NET.
W tym artykule zagłębimy się w kluczowe aspekty Blazor .NET 8.0, badając nowe tryby renderowania, szablony projektów, ulepszenia narzędzi i nie tylko.

Zrozumienie trybów renderowania Blazor
Blazor w .NET 8.0 wprowadza trzy tryby renderowania:
- Statyczne renderowanie po stronie serwera: Generuje statyczny HTML dla optymalnej wydajności.
- Interaktywne renderowanie po stronie serwera: Wykorzystuje środowisko uruchomieniowe ASP.NET Core po stronie serwera do wstępnego renderowania i interaktywności.
- Interaktywne renderowanie WebAssembly: Wykorzystuje środowisko uruchomieniowe .NET WebAssembly po stronie klienta do kolejnego renderowania i interaktywności.
Wszechstronny interaktywny tryb automatycznego renderowania
Jednym z wyróżników jest interaktywny tryb automatycznego renderowania, który łączy renderowanie po stronie serwera treści z kolejnym renderowaniem i interaktywnością po stronie klienta przy użyciu środowiska uruchomieniowego .NET WebAssembly. Skutkuje to szybszym uruchamianiem aplikacji, co czyni go atrakcyjną opcją dla programistów.
Wprowadzenie szablonu aplikacji internetowej Blazor
.NET 8.0 wprowadza szablon aplikacji internetowej Blazor — ujednolicony punkt startowy łączący mocne strony modeli hostingu Blazor Server i Blazor WebAssembly.
Ten szablon zawiera nowe funkcje, takie jak statyczne renderowanie po stronie serwera, renderowanie strumieniowe, ulepszona nawigacja i obsługa formularzy. Konsolidacja szablonów projektów upraszcza proces tworzenia oprogramowania.
Usprawnione inicjatory JS dla aplikacji internetowych Blazor
Tradycyjne inicjatory JS zostały zastąpione nowym zestawem dla aplikacji internetowych Blazor, oferując lepszą kontrolę nad zadaniami takimi jak dostosowywanie procesu ładowania, poziomów rejestrowania i innych opcji. Ta zmiana usprawnia środowisko programistyczne i jest zgodna z celem ujednolicenia modeli hostingu w .NET 8.0.
Podział wskazówek dotyczących prerenderowania i integracji
Aby zapewnić bardziej ukierunkowane omówienie, wskazówki dotyczące prerenderowania i integracji zostały podzielone na oddzielne artykuły. Ta zmiana ma na celu uproszczenie zrozumienia i implementacji, ułatwiając programistom stosowanie najlepszych praktyk.
Bezproblemowe utrwalanie stanu w aplikacjach internetowych Blazor
Aplikacje internetowe Blazor automatycznie utrwalają teraz każdy zarejestrowany stan na poziomie aplikacji utworzony podczas prerenderowania. Eliminuje to potrzebę stosowania pomocnika tagów Persist Component State, usprawniając proces utrwalania i odczytywania stanu komponentu.
Ulepszona obsługa formularzy i wiązanie modelu
.NET 8.0 wprowadza ulepszone możliwości obsługi formularzy do komponentów Blazor, w tym wiązanie modelu i walidację danych. Framework honoruje atrybuty kontraktu danych, zapewniając programistom większą kontrolę nad sposobem wiązania danych formularza z modelem. Wprowadzenie obsługi ochrony przed fałszowaniem żądań dodaje dodatkową warstwę zabezpieczeń dla przesyłania formularzy.
Ulepszona nawigacja i obsługa formularzy
Statyczne renderowanie po stronie serwera w Blazor .NET 8.0 wprowadza znaczącą poprawę w nawigacji po stronach i obsłudze formularzy. Tradycyjnie podczas nawigacji lub przesyłania formularza następowało pełne odświeżenie strony.
Dzięki funkcji ulepszonej nawigacji Blazor przechwytuje żądanie i wykonuje żądanie pobierania, płynnie łatając wyrenderowaną zawartość odpowiedzi do DOM przeglądarki. Pozwala to uniknąć pełnych odświeżeń strony, co skutkuje szybszym i płynniejszym ładowaniem stron przy zachowaniu większej części stanu strony.
Ulepszona nawigacja jest domyślnie włączona po załadowaniu skryptu Blazor (blazor.web.js) i może być opcjonalnie włączona dla konkretnych formularzy. Nowe API ulepszonej nawigacji pozwala programistom programowo odświeżać bieżącą stronę, zapewniając jeszcze większą kontrolę nad doświadczeniem użytkownika.
Renderowanie strumieniowe
Blazor .NET 8.0 wprowadza renderowanie strumieniowe — potężną funkcję, która usprawnia doświadczenie użytkownika dla stron wykonujących długotrwałe zadania asynchroniczne. Dzięki renderowaniu strumieniowemu strony mogą renderować zawartość zastępczą podczas trwania operacji asynchronicznych.
Po zakończeniu zaktualizowana zawartość jest przesyłana strumieniowo do klienta przez to samo połączenie odpowiedzi i płynnie łatana do DOM. Takie podejście zapewnia szybkie renderowanie głównego układu aplikacji, a strona aktualizuje się natychmiast po udostępnieniu treści.
Wstrzykiwanie usług kluczowanych
Blazor obsługuje teraz wstrzykiwanie usług kluczowanych przy użyciu atrybutu Inject. Klucze umożliwiają określanie zakresu rejestracji i korzystania z usług w scenariuszach wstrzykiwania zależności.
Nowa właściwość InjectAttribute.Key pozwala programistom określić klucz usługi do wstrzyknięcia, otwierając nowe możliwości dla określania zakresu usług.
Dostęp do HttpContext jako parametru kaskadowego
Blazor .NET 8.0 wprowadza możliwość dostępu do bieżącego HttpContext jako parametru kaskadowego ze statycznego komponentu serwera. To ulepszenie jest szczególnie przydatne do inspekcji i modyfikowania nagłówków lub innych właściwości związanych z kontekstem HTTP.
Renderowanie komponentów Razor poza ASP.NET Core
Blazor .NET 8.0 otwiera możliwość renderowania komponentów Razor poza kontekstem żądania HTTP. Ta elastyczność pozwala programistom renderować komponenty Razor bezpośrednio do ciągu znaków lub strumienia niezależnie od środowiska hostingu ASP.NET Core.
Ta funkcja jest szczególnie przydatna w scenariuszach, w których konieczne jest generowanie fragmentów HTML, takich jak wiadomości e-mail lub treści witryn statycznych.
Obsługa sekcji
W Blazor .NET 8.0 wprowadzenie komponentów SectionOutlet i SectionContent rewolucjonizuje zarządzanie treścią. Te komponenty pozwalają programistom definiować symbole zastępcze w układach, które są później wypełniane przez konkretne strony.
Do sekcji można odwoływać się za pomocą unikalnych nazw lub identyfikatorów obiektów, zapewniając elastyczność i możliwość ponownego użycia przy tworzeniu dynamicznych układów stron internetowych.
Obsługa stron błędów
Aplikacje internetowe Blazor w .NET 8.0 oferują teraz solidną obsługę stron błędów, umożliwiając programistom definiowanie niestandardowych stron błędów do użycia z oprogramowaniem pośredniczącym obsługi wyjątków ASP.NET Core.
Domyślna strona błędów (Components/Pages/Error.razor) zapewnia spójne doświadczenie użytkownika. Nawet gdy interaktywność jest włączona, strona błędów renderuje się jako statyczny komponent serwera, zapewniając stabilność podczas scenariuszy wyjątków.
QuickGrid — od eksperymentalnego do niezbędnego
QuickGrid, komponent siatki o wysokiej wydajności, awansował ze statusu eksperymentalnego i stał się integralną częścią frameworka Blazor w .NET 8.
Ten komponent upraszcza wyświetlanie danych tabelarycznych, oferując jednocześnie zaawansowane funkcje, takie jak sortowanie, filtrowanie, stronicowanie i wirtualizacja. Dowiedz się więcej o QuickGrid w dokumentacji ASP.NET Core Blazor QuickGrid.
Routing do nazwanych elementów
Blazor .NET 8.0 wprowadza obsługę routingu po stronie klienta w celu nawigowania bezpośrednio do określonych elementów HTML na stronie przy użyciu standardowych fragmentów URL. Określając identyfikator elementu HTML za pomocą standardowego atrybutu id, Blazor płynnie przewija do tego elementu, gdy fragment URL odpowiada identyfikatorowi elementu.
Kaskadowe wartości na poziomie głównym
Blazor .NET 8.0 rozszerza wartości kaskadowe, wprowadzając kaskadowe wartości na poziomie głównym, które można rejestrować dla całej hierarchii komponentów. Obsługiwane są teraz nazwane wartości kaskadowe i subskrypcje powiadomień o aktualizacjach, zapewniając większą elastyczność i kontrolę.
Wirtualizacja pustej zawartości
Nowy parametr EmptyContent komponentu Virtualize umożliwia programistom dostarczanie zawartości, gdy komponent został załadowany, a element jest pusty lub ItemsProviderResult<t>.TotalItemCount wynosi zero.
Umożliwia to programistom tworzenie bardziej intuicyjnych i przyjaznych dla użytkownika interfejsów.
Zarządzanie obwodami i monitorowanie SignalR
Blazor .NET 8.0 wprowadza możliwość zamykania obwodów, gdy nie ma już interaktywnych komponentów serwera. Ta optymalizacja zwalnia zasoby serwera i zwiększa ogólną wydajność.
Ponadto programiści mogą teraz monitorować przychodzącą aktywność obwodu w aplikacjach po stronie serwera przy użyciu metody CreateInboundActivityHandler na CircuitHandler.
Szybsza wydajność środowiska uruchomieniowego dzięki Jiterpreter
Jiterpreter, nowa funkcja środowiska uruchomieniowego w .NET 8, wprowadza częściową obsługę kompilacji Just-in-Time (JIT) podczas uruchamiania na WebAssembly. Skutkuje to lepszą wydajnością środowiska uruchomieniowego, oferując płynniejsze doświadczenie dla użytkowników korzystających z aplikacji Blazor WebAssembly.
Kompilacja wyprzedzająca (AOT), SIMD i obsługa wyjątków
Kompilacja AOT Blazor WebAssembly domyślnie korzysta teraz z WebAssembly Fixed-width SIMD i obsługi wyjątków WebAssembly. Ten strategiczny wybór znacznie zwiększa wydajność środowiska uruchomieniowego, zapewniając bardziej wydajne i responsywne doświadczenie użytkownika.
Pakowanie Webcil dla wdrożeń przyjaznych dla sieci
Blazor WebAssembly korzysta teraz z Webcil — przyjaznego dla sieci pakowania zestawów .NET. Zapewnia to zgodność w środowiskach, które blokują pobieranie lub używanie plików .dll, rozwiązując wyzwania związane z wdrożeniem. Webcil jest domyślnie włączony dla aplikacji Blazor WebAssembly.
Ulepszenia debugowania Blazor WebAssembly
Debugowanie aplikacji Blazor WebAssembly stało się bardziej usprawnione w .NET 8. Debuger pobiera teraz dane symboliczne ze skonfigurowanych lokalizacji w preferencjach Visual Studio, usprawniając środowisko debugowania dla aplikacji korzystających z pakietów NuGet.
Ponadto debugowanie jest teraz obsługiwane w przeglądarce Firefox, co wymaga konfiguracji zdalnego debugowania i połączenia przez serwer proxy do debugowania .NET WebAssembly.
Zgodność z polityką bezpieczeństwa treści (CSP)
Blazor WebAssembly w .NET 8.0 eliminuje potrzebę włączania źródła skryptów unsafe-eval podczas określania polityki bezpieczeństwa treści (CSP). To ulepszenie upraszcza konfiguracje zabezpieczeń, ułatwiając egzekwowanie solidnej polityki CSP dla aplikacji Blazor WebAssembly.
Obsługa wyjątków poza cyklem życia komponentu
Wprowadzenie ComponentBase.DispatchExceptionAsync pozwala programistom przetwarzać wyjątki zgłoszone poza stosem wywołań cyklu życia komponentu Razor.
Ta funkcja umożliwia kodowi komponentu traktowanie wyjątków tak, jakby były wyjątkami metod cyklu życia, zapewniając bardziej spójny i kontrolowany mechanizm obsługi błędów.
Przedstawiamy Iron Suite
Iron Suite, opracowany przez Iron Software, składa się z kilku przydatnych bibliotek, umożliwiając programistom tworzenie zaawansowanych aplikacji Blazor. Zapewnia rozwiązania do dodawania funkcjonalności PDF, obsługi plików Excel lub CSV, rozpoznawania obrazów na tekst, generowania i odczytu kodów kreskowych i QR oraz możliwości kompresowania i rozpakowywania plików.
Iron Suite to doskonały wybór do tworzenia stron internetowych przy użyciu modelu hostingu Blazor WebAssembly lub dowolnych technologii Microsoft, w tym aplikacji Blazor WebAssembly, aplikacji serwera Blazor, aplikacji ASP.NET Core MVC, interfejsów API sieci Web ASP.NET Core lub dowolnej aplikacji zbudowanej na środowisku uruchomieniowym .NET, niezależnie od wersji.
Biblioteki Iron Suite
-
IronPDF do bezproblemowego tworzenia, manipulowania i wyodrębniania danych z plików PDF.
Wyróżniającą funkcją IronPDF jest konwersja HTML do PDF z pełnym zachowaniem układu i stylów. Jest idealna do generowania plików PDF z treści internetowych, w tym raportów, faktur i dokumentacji. Możesz konwertować pliki HTML, adresy URL lub ciągi znaków HTML na pliki PDF.
using IronPdf; class Program { static void Main(string[] args) { var renderer = new ChromePdfRenderer(); // 1. Convert HTML String to PDF var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"; var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent); pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf"); // 2. Convert HTML File to PDF var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath); pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf"); // 3. Convert URL to PDF var url = "http://ironpdf.com"; // Specify the URL var pdfFromUrl = renderer.RenderUrlAsPdf(url); pdfFromUrl.SaveAs("URLToPDF.pdf"); } }using IronPdf; class Program { static void Main(string[] args) { var renderer = new ChromePdfRenderer(); // 1. Convert HTML String to PDF var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"; var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent); pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf"); // 2. Convert HTML File to PDF var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath); pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf"); // 3. Convert URL to PDF var url = "http://ironpdf.com"; // Specify the URL var pdfFromUrl = renderer.RenderUrlAsPdf(url); pdfFromUrl.SaveAs("URLToPDF.pdf"); } }Imports IronPdf Friend Class Program Shared Sub Main(ByVal args() As String) Dim renderer = New ChromePdfRenderer() ' 1. Convert HTML String to PDF Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>" Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent) pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf") ' 2. Convert HTML File to PDF Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath) pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf") ' 3. Convert URL to PDF Dim url = "http://ironpdf.com" ' Specify the URL Dim pdfFromUrl = renderer.RenderUrlAsPdf(url) pdfFromUrl.SaveAs("URLToPDF.pdf") End Sub End Class$vbLabelText $csharpLabel - IronOCR (Optyczne rozpoznawanie znaków) do wyodrębniania tekstu ze skanowanych obrazów lub plików PDF, zwiększający dostępność danych.
- IronXL do wydajnego odczytu, zapisu i edycji arkuszy kalkulacyjnych Excel.
- IronBarcode do generowania i odczytu BARCODE-ów w różnych formatach, ułatwiający kodowanie i pobieranie danych.
- IronQR do tworzenia i odczytywania kodów QR przy użyciu uczenia maszynowego
- IronWebscraper do pozyskiwania cennych danych ze stron internetowych, zwiększający możliwości aplikacji internetowych.
- IronZIP do kompresowania i dekompresowania plików, usprawniający procesy przechowywania i przesyłania danych.

Co wyróżnia pakiet Iron Suite
- Uzyskaj dostęp do całej Suite w cenie zaledwie dwóch pojedynczych produktów, maksymalizując wartość swojej inwestycji.
- Niezależnie od tego, czy pracujesz w systemie Windows, macOS czy Linux, Iron Suite zapewnia kompatybilność na (prawie) wszystkich platformach.
- Ciesz się szybką podróżą od pobrania do wdrożenia, z możliwością uruchomienia w zaledwie 5 minut.
- Uzyskaj dostęp do szczegółowej dokumentacji i przykładów dotyczących wszystkich funkcji, zapewniających jasność i wskazówki w trakcie całego procesu tworzenia oprogramowania.
- Dedykowany zespół inżynierów jest dostępny 24 godziny na dobę, 5 dni w tygodniu, aby pomóc Państwu w przypadku wszelkich pytań, zapewniając płynny przebieg prac programistycznych.
- Pakiet Iron Suite objęty jest 30-dniową polityką zwrotu bez zadawania pytań, co zapewnia pewność i spokój ducha.
Wnioski
Podsumowując, wydanie Blazor .NET 8.0 stanowi znaczący kamień milowy w ewolucji tworzenia interfejsów użytkownika typu full-stack przy użyciu języka C# i platformy .NET.
Wprowadzenie nowych trybów renderowania, szablonu aplikacji internetowej Blazor, ulepszonej nawigacji i mnóstwa innych funkcji sprawia, że jest to atrakcyjny wybór dla programistów pragnących tworzyć nowoczesne i interaktywne aplikacje internetowe.
Blazor .NET 8.0 wprowadza również atrakcyjne funkcje, takie jak ulepszona obsługa formularzy, renderowanie strumieniowe oraz możliwość wstrzykiwania usług kluczy, dodając głębię i elastyczność do procesu tworzenia oprogramowania.
Wprowadzenie pakietu Iron Suite przez firmę Iron Software uzupełnia możliwości platformy Blazor, oferując kompleksowy zestaw narzędzi do zadań związanych z dokumentami w ekosystemie .NET.
Blazor .NET 8.0 umożliwia programistom tworzenie solidnych i bogatych w funkcje aplikacji internetowych dzięki wykorzystaniu pakietu Iron Suite.
Połączenie zaawansowanych funkcji, zwiększonej wydajności oraz wsparcia ze strony prężnej społeczności programistów sprawia, że Blazor jest atrakcyjnym wyborem dla nowoczesnego tworzenia stron internetowych.
Często Zadawane Pytania
Jak mogę przekonwertować HTML na PDF w aplikacji Blazor?
W aplikacji Blazor można użyć metody RenderHtmlAsPdf biblioteki IronPDF do konwersji ciągów HTML na pliki PDF. Metoda ta jest zgodna zarówno z modelami Blazor Server, jak i Blazor WebAssembly.
Jakie są nowe tryby renderowania w Blazor .NET 8.0?
Blazor .NET 8.0 wprowadza trzy nowe tryby renderowania: statyczne renderowanie serwerowe, interaktywne renderowanie serwerowe oraz interaktywne renderowanie WebAssembly, z których każdy został zaprojektowany w celu optymalizacji wydajności i interaktywności.
W jaki sposób Iron Suite usprawnia działanie aplikacji Blazor?
Iron Suite wzbogaca aplikacje Blazor, oferując funkcje takie jak obsługa plików PDF, OCR, manipulacja danymi Excel oraz generowanie kodów kreskowych, które są niezbędne do tworzenia solidnych aplikacji internetowych.
Czym jest tryb interaktywnego renderowania automatycznego w Blazor .NET 8.0?
Tryb interaktywnego renderowania automatycznego w Blazor .NET 8.0 łączy renderowanie po stronie serwera z interaktywnością po stronie klienta, wykorzystując środowisko uruchomieniowe .NET WebAssembly w celu przyspieszenia uruchamiania aplikacji.
Jak mogę usprawnić obsługę formularzy w Blazor .NET 8.0?
Blazor .NET 8.0 usprawnia obsługę formularzy dzięki ulepszonemu powiązaniu modeli, walidacji danych i obsłudze zabezpieczeń przed fałszowaniem, dając programistom większą kontrolę nad zarządzaniem danymi formularzy.
Jaki jest cel renderowania strumieniowego w Blazor .NET 8.0?
Renderowanie strumieniowe w Blazor .NET 8.0 umożliwia wstępne renderowanie treści zastępczej podczas wykonywania długotrwałych zadań asynchronicznych, co poprawia komfort użytkowania dzięki płynnej aktualizacji strony.
W jaki sposób szablon aplikacji internetowej Blazor usprawnia proces tworzenia oprogramowania?
Szablon aplikacji internetowej Blazor w .NET 8.0 ujednolica modele Blazor Server i Blazor WebAssembly, upraszczając proces tworzenia dzięki ulepszonej nawigacji i obsłudze formularzy.
W jaki sposób zestaw narzędzi Iron Software uzupełnia Blazor .NET 8.0?
Zestaw narzędzi Iron Software stanowi uzupełnienie platformy Blazor .NET 8.0, zapewniając kompleksowe funkcje związane z dokumentami i zwiększając możliwości frameworka w zakresie obsługi złożonych zadań związanych z przetwarzaniem dokumentów.
Jakie są zalety korzystania z IronPDF w aplikacji internetowej Blazor?
IronPDF zapewnia zaawansowane możliwości generowania i edycji plików PDF, co czyni go idealnym wyborem dla programistów tworzących aplikacje internetowe w Blazorze, które wymagają solidnych funkcji obsługi dokumentów.
Jakie ulepszenia wprowadzono w zakresie debugowania w Blazor .NET 8.0?
Blazor .NET 8.0 usprawnia debugowanie aplikacji WebAssembly dzięki ulepszonemu pobieraniu danych symboli oraz dodanej obsłudze przeglądarki Firefox, co usprawnia proces debugowania.




