Przejdź do treści stopki
POMOC .NET

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.

Blazor .NET 8.0 wprowadza nowe tryby renderowania, szablony projektów i ulepszenia narzędzi do tworzenia interaktywnych aplikacji internetowych przy użyciu C# i .NET.

Blazor .NET 8 (Samouczek dewelopera): Rysunek 1

Rozumienie Trybów Renderowania Blazor

Blazor w .NET 8.0 wprowadza trzy tryby renderowania:

  1. Statyczne renderowanie serwera: Generuje statyczny HTML dla optymalnej wydajności.
  2. Interaktywne renderowanie serwera: Wykorzystuje serwerowy runtime ASP.NET Core do początkowego renderowania i interaktywności.
  3. Interaktywne renderowanie WebAssembly: Wykorzystuje runtime .NET WebAssembly na kliencie do dalszego renderowania i interaktywności.

Wszechstronne Interaktywne Renderowanie Automatyczne

Jedną z najważniejszych cech jest tryb Interaktywnego Renderowania Automatycznego, który łączy renderowanie po stronie serwera w celu zawartości z dalszym renderowaniem i interaktywnością po stronie klienta przy użyciu runtime .NET WebAssembly. Powoduje to szybsze uruchomienie aplikacji, co czyni go atrakcyjną opcją dla programistów.

Wprowadzenie Szablonu Aplikacji Web Blazor

.NET 8.0 wprowadza szablon Aplikacji Web Blazor, zjednoczony punkt startowy, który łączy zalety modeli hostingowych Blazor Server i Blazor WebAssembly.

Ten szablon zawiera nowe funkcje, takie jak statyczne renderowanie serwera, renderowanie strumieniowe, ulepszona nawigacja i obsługa formularzy. Konsolidacja szablonów projektów upraszcza proces tworzenia.

Uproszczone Inicjalizatory JS dla Aplikacji Web Blazor

Tradycyjne inicjalizatory JS zostały zastąpione nowym zestawem dla aplikacji Blazor, oferując lepszą kontrolę nad zadaniami, takimi jak dostosowywanie procesu ładowania, poziomy logowania i inne opcje. Ta zmiana poprawia doświadczenia z tworzenia aplikacji i jest zgodna z celem ujednolicenia modeli hostingowych w .NET 8.0.

Rozdzielenie Wskazówek dotyczących Wstępnego Renderowania i Integracji

Aby zapewnić bardziej skoncentrowane pokrycie, wskazówki dotyczące wstępnego renderowania i integracji zostały rozdzielone na osobne artykuły. Ta zmiana ma na celu uproszczenie zrozumienia i wdrażania, ułatwiając programistom przestrzeganie najlepszych praktyk.

Bezproblemowe Przechowywanie Stanu w Aplikacjach Web Blazor

Aplikacje Web Blazor teraz automatycznie przechowują każdy zarejestrowany stan aplikacji utworzony podczas wstępnego renderowania. To eliminuje potrzebę korzystania z Pomocnika Znaków Przechowywania Stanu Komponentu, upraszczając proces przechowywania i odczytywania stanu komponentu.

Ulepszona Obsługa Formularzy i Wiązanie Modelu

.NET 8.0 przynosi ulepszone możliwości obsługi formularzy w komponentach Blazor, w tym wiązanie modelu i walidację danych. Framework respektuje atrybuty kontraktu danych, zapewniając programistom większą kontrolę nad tym, jak dane formularza są wiązane z modelem. Wprowadzenie wsparcia dla ochrony przed fałszerstwami dodaje dodatkową warstwę bezpieczeństwa do przesyłania formularzy.

Ulepszona Nawigacja i Obsługa Formularzy

Statyczne renderowanie serwera w Blazor .NET 8.0 wprowadza znaczną poprawę w nawigacji po stronie i obsłudze formularzy. Tradycyjnie podczas nawigacji lub przesyłania formularza występowały pełne odświeżenia strony.

Dzięki funkcji ulepszonej nawigacji Blazor przechwytuje żądanie i wykonuje żądanie pobrania, bezproblemowo naprawiając zawartość odpowiedzi renderowanej w przeglądarce DOM. To unika pełnych odświeżeń strony, co prowadzi do szybszych i bardziej płynnych ładowań strony, jednocześnie zachowując większą część stanu strony.

Ulepszona nawigacja jest domyślnie włączona, gdy skrypt Blazor (blazor.web.js) jest załadowany, a także może być opcjonalnie włączona dla konkretnych formularzy. Nowe API ulepszonej nawigacji pozwala programistom na programowe odświeżenie bieżącej strony, 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 poprawia doświadczenia użytkownika dla stron wykonujących długo trwające zadania asynchroniczne. Z renderowaniem strumieniowym, strony mogą renderować zawartość zastępczą podczas przetwarzania operacji asynchronicznych.

Po zakończeniu, zaktualizowana zawartość jest przesyłana na klienta na tym samym połączeniu odpowiedzi i bezproblemowo naprawiana w DOM. To podejście zapewnia, że główny układ aplikacji renderuje się szybko, a strona aktualizuje się, gdy tylko dostępna jest zawartość.

Wstrzykiwanie Usług Kluczowych

Blazor teraz wspiera wstrzykiwanie usług z kluczem za pomocą atrybutu Inject. Klucze umożliwiają zakreślenie rejestracji i konsumpcji usług w scenariuszach wstrzykiwania zależności.

Nowa właściwość InjectAttribute.Key pozwala programistom określić klucz dla usługi do wstrzyknięcia, otwierając nowe możliwości dla określania zakresu usług.

Uzyskiwanie dostępu do HttpContext jako parametru kaskadowego

Blazor .NET 8.0 wprowadza możliwość uzyskiwania dostępu do bieżącego HttpContext jako parametru kaskadowego z komponentu serwera statycznego. To ulepszenie jest szczególnie przydatne do sprawdzania 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 na renderowanie komponentów Razor bezpośrednio na ciąg lub strumień, niezależnie od środowiska hostingowego ASP.NET Core.

Ta funkcja jest szczególnie przydatna w scenariuszach, gdzie konieczne jest generowanie fragmentów HTML, takich jak e-maile lub zawartość statycznych stron.

Wsparcie dla Sekcji

W Blazor .NET 8.0, wprowadzenie komponentów SectionOutlet i SectionContent rewolucjonizuje zarządzanie treścią. Te komponenty pozwalają programistom na definiowanie zastępczych miejsc w układach, które później są wypełniane przez określone strony.

Sekcje mogą być odwoływane za pomocą unikalnych nazw lub identyfikatorów obiektów, zapewniając elastyczność i możliwość ponownego wykorzystania przy konstruowaniu dynamicznych układów stron internetowych.

Wsparcie dla Stron Błędów

Aplikacje Web Blazor w .NET 8.0 teraz posiadają solidne wsparcie dla stron błędów, pozwalając programistom na definiowanie niestandardowych stron błędów do użycia z middleware obsługi wyjątków ASP.NET Core.

Domyślna strona błędu (Components/Pages/Error.razor) zapewnia spójne doświadczenie użytkownika. Nawet gdy interaktywność jest włączona, strona błędu renderuje się jako komponent statyczny serwera, zapewniając stabilność podczas scenariuszy wyjątków.

QuickGrid od eksperymentalnego do istotnego

QuickGrid, wysokowydajny komponent siatki, awansował ze statusu eksperymentalnego, stając się integralną częścią frameworka Blazor w .NET 8.

Ten komponent upraszcza wyświetlanie danych w postaci tabelarycznej, oferując jednocześnie potężne funkcje, takie jak sortowanie, filtrowanie, stronicowanie i wirtualizacja. Dowiedz się więcej o QuickGrid w dokumentacji QuickGrid ASP.NET Core Blazor.

Trasa do Elementów o Podanej Nazwie

Blazor .NET 8.0 wprowadza wsparcie dla trasowania po stronie klienta w celu nawigacji bezpośrednio do określonych elementów HTML na stronie za pomocą standardowych fragmentów URL. Podając identyfikator dla elementu HTML z użyciem standardowego atrybutu id, Blazor płynnie przewija się do tego elementu, gdy fragment URL odpowiada identyfikatorowi elementu.

Wartości Kaskadowe na Poziomie Głównym

Blazor .NET 8.0 rozszerza wartości kaskadowe, wprowadzając wartości kaskadowe na poziomie głównym, które mogą być rejestrowane dla całej hierarchii komponentów. Teraz obsługiwane są nazwane wartości kaskadowe i subskrypcje dla powiadomień o aktualizacjach, zapewniając większą elastyczność i kontrolę.

Wirtualizacja Pustej Zawartości

Nowy parametr EmptyContent w komponencie Virtualize umożliwia programistom dostarczanie zawartości, gdy komponent został załadowany, a element jest pusty lub ItemsProviderResult<t>.TotalItemCount jest równy zero.

To daje programistom możliwość tworzenia 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ż pozostałych interaktywnych komponentów serwera. Ta optymalizacja zwalnia zasoby serwera i poprawia ogólną wydajność.

Dodatkowo, programiści mogą teraz monitorować aktywność obwodu przychodzącego w aplikacjach po stronie serwera, używając metody CreateInboundActivityHandler na CircuitHandler.

Szybsza Wydajność Runtime z Jiterpreter

Jiterpreter, nowa funkcja czasu wykonywania w .NET 8, wprowadza częściowe wsparcie kompilacji Just-in-Time (JIT), gdy działa na WebAssembly. Skutkuje to poprawioną wydajnością runtime, oferując płynniejsze doświadczenie dla użytkowników wchodzących w interakcję z aplikacjami Blazor WebAssembly.

Kompilacja Ahead-of-Time (AOT) SIMD i Obsługa Wyjątków

Kompilacja AOT Blazor WebAssembly teraz domyślnie używa WebAssembly Fixed-width SIMD i obsługi wyjątków WebAssembly. Ten strategiczny wybór znacznie poprawia wydajność runtime, zapewniając bardziej efektywne i responsywne doświadczenie użytkownika.

Pakowanie Webcil dla Przyjaznego dla Sieci Wdrażania

Blazor WebAssembly teraz wykorzystuje Webcil, przyjazne dla sieci pakowanie zespołów .NET. Zapewnia to zgodność w środowiskach, które blokują pobieranie lub używanie plików .dll, rozwiązując problemy związane z wdrażaniem. Webcil jest domyślnie włączony dla aplikacji Blazor WebAssembly.

Ulepszenia w Debugowaniu Blazor WebAssembly

Debugowanie aplikacji Blazor WebAssembly stało się bardziej uporządkowane w .NET 8. Debuger teraz pobiera dane symboliczne z skonfigurowanych lokalizacji w preferencjach Visual Studio, poprawiając doświadczenia z debugowaniem dla aplikacji wykorzystujących pakiety NuGet.

Dodatkowo, debugowanie jest teraz obsługiwane w Firefox, co wymaga skonfigurowania do zdalnego debugowania i połączenia przez .NET WebAssembly debugowanie proxy.

Zgodność z Zasadą Bezpieczeństwa Treści (CSP)

Blazor WebAssembly w .NET 8.0 eliminuje potrzebę włączania źródła skryptu unsafe-eval przy określaniu Zasady Bezpieczeństwa Treści (CSP). To ulepszenie upraszcza konfiguracje bezpieczeństwa, co ułatwia egzekwowanie solidnego CSP dla aplikacji Blazor WebAssembly.

Obsługa Wyjątków Poza Cyklami Życia Komponentu

Wprowadzenie ComponentBase.DispatchExceptionAsync umożliwia programistom przetwarzanie wyjątków rzucanych poza stos wywołań życiowego cyklu komponentu Razor.

Funkcja ta pozwala kodowi komponentu traktować wyjątki tak, jakby były wyjątkami metody 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 potężnych aplikacji Blazor. Oferuje 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 kodów QR oraz możliwość kompresji i rozpakowania plików.

Iron Suite jest doskonałym wyborem do rozważenia w przypadku tworzenia aplikacji internetowych z użyciem modelu hostingowego Blazor WebAssembly lub jakiejkolwiek technologii Microsoft, w tym aplikacji Blazor WebAssembly, aplikacji serwerowej Blazor, aplikacji ASP.NET Core MVC, aplikacji sieciowych ASP.NET core lub każdej aplikacji zbudowanej w czasie wykonywania .NET, bez względu na jej wersję.

Biblioteki Iron Suite

  1. IronPDF do bezproblemowego tworzenia, manipulowania i wyodrębniania danych z plików PDF.

    Wyróżniającą się funkcją IronPDF jest konwertowanie HTML do PDF, z pełnym zachowaniem układu i stylu. Jest idealny do generowania PDF-ów z zawartości internetowej, w tym raportów, faktur i dokumentacji. Możesz konwertować pliki HTML, adresy URL lub ciągi 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
  2. IronOCR (Optical Character Recognition) do wyodrębniania tekstu ze skanowanych obrazów lub plików PDF, zwiększając dostępność danych.
  3. IronXL do wydajnego odczytu, zapisu i edycji arkuszy kalkulacyjnych Excel.
  4. IronBarcode do generowania i odczytywania kodów kreskowych w różnych formatach, ułatwiając kodowanie i pobieranie danych.
  5. IronQR do tworzenia i odczytywania kodów QR przy użyciu uczenia maszynowego
  6. IronWebScraper do pozyskiwania cennych danych ze stron internetowych, zwiększający możliwości aplikacji internetowych.
  7. IronZIP do kompresowania i dekompresowania plików, usprawniający procesy przechowywania i przesyłania danych.

Blazor .NET 8 (Samouczek dewelopera): Rysunek 2

Co wyróżnia pakiet Iron Suite

  1. Uzyskaj dostęp do całej Suite w cenie zaledwie dwóch pojedynczych produktów, maksymalizując wartość swojej inwestycji.
  2. Niezależnie od tego, czy pracujesz w systemie Windows, macOS czy Linux, Iron Suite zapewnia kompatybilność na (prawie) wszystkich platformach.
  3. Ciesz się szybką podróżą od pobrania do wdrożenia, z możliwością uruchomienia w zaledwie 5 minut.
  4. 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.
  5. 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.
  6. 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.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczą...

Czytaj więcej

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie