Blazor .NET 8 (Tutorial para Desenvolvedores)
O Blazor, framework de interface de usuário web full-stack, evoluiu significativamente com o lançamento do .NET 8.0. Essa atualização traz diversos recursos e melhorias que permitem aos desenvolvedores criar aplicações web interativas e modernas usando C# e .NET.
Neste artigo, vamos explorar os principais aspectos do Blazor .NET 8.0, incluindo os novos modos de renderização, modelos de projeto, melhorias nas ferramentas e muito mais.

Entendendo os modos de renderização do Blazor
O Blazor no .NET 8.0 introduz três modos de renderização:
- Renderização estática no servidor: Gera HTML estático para um desempenho ideal.
- Renderização interativa no servidor: Utiliza o ambiente de execução ASP.NET Core do lado do servidor para renderização inicial e interatividade.
- Renderização interativa do WebAssembly: Utiliza o ambiente de execução do WebAssembly do .NET no cliente para renderização e interatividade subsequentes.
A renderização automática interativa versátil
Um dos destaques é o modo de renderização automática interativa, que combina a renderização de conteúdo no servidor com a renderização e interatividade subsequentes no cliente usando o runtime WebAssembly do .NET . Isso resulta em uma inicialização de aplicativo mais rápida, tornando-se uma opção atraente para desenvolvedores.
Introdução ao modelo de aplicativo web Blazor
O .NET 8.0 introduz o modelo Blazor Web App, um ponto de partida unificado que combina os pontos fortes dos modelos de hospedagem Blazor Server e Blazor WebAssembly.
Este modelo incorpora novos recursos como renderização estática no servidor, renderização em fluxo contínuo, navegação aprimorada e manipulação de formulários. A consolidação de modelos de projeto simplifica o processo de desenvolvimento.
Inicializadores JS simplificados para aplicativos web Blazor
Os inicializadores tradicionais de JS foram substituídos por um novo conjunto para Blazor Web Apps, oferecendo melhor controle sobre tarefas como a personalização do processo de carregamento, níveis de registro e outras opções. Essa mudança aprimora a experiência de desenvolvimento e está alinhada ao objetivo de unificar os modelos de hospedagem no .NET 8.0.
Separação do Pré-renderização e Orientações de Integração
Para oferecer uma cobertura mais específica, as orientações sobre pré-renderização e integração foram divididas em artigos separados. Essa mudança visa simplificar o entendimento e a implementação, facilitando o seguimento das melhores práticas por parte dos desenvolvedores.
Persistência de estado descomplicada em aplicativos web Blazor
Os aplicativos Web Blazor agora persistem automaticamente qualquer estado registrado no nível do aplicativo criado durante a pré-renderização. Isso elimina a necessidade do auxiliar de tag Persist Component State, simplificando o processo de persistência e leitura do estado do componente.
Manipulação aprimorada de formulários e vinculação de modelos
O .NET 8.0 traz recursos aprimorados de manipulação de formulários para componentes Blazor , incluindo vinculação de modelo e validação de dados. A estrutura respeita os atributos do contrato de dados, proporcionando aos desenvolvedores maior controle sobre como os dados do formulário são vinculados ao modelo. A introdução do suporte antifalsificação adiciona uma camada extra de segurança aos formulários enviados.
Navegação e gerenciamento de formulários aprimorados
A renderização estática no servidor do Blazor .NET 8.0 introduz uma melhoria significativa na navegação de páginas e no tratamento de formulários. Tradicionalmente, as atualizações de página inteira ocorriam ao navegar ou enviar um formulário.
Com o recurso de navegação aprimorado, o Blazor intercepta a solicitação e realiza uma requisição fetch, inserindo o conteúdo da resposta renderizada perfeitamente no DOM do navegador. Isso evita atualizações completas da página, resultando em carregamentos de página mais rápidos e suaves, preservando ao mesmo tempo mais o estado da página.
A navegação aprimorada é ativada por padrão quando o script Blazor (Blazor) é carregado, e pode ser ativada opcionalmente para formulários específicos. A nova API de navegação aprimorada permite que os desenvolvedores atualizem a página atual programaticamente, proporcionando ainda mais controle sobre a experiência do usuário.
Renderização em fluxo contínuo
O Blazor .NET 8.0 introduz a renderização em fluxo contínuo (streaming rendering), um recurso poderoso que aprimora a experiência do usuário em páginas que executam tarefas assíncronas de longa duração. Com a renderização em fluxo contínuo, as páginas podem exibir conteúdo provisório enquanto operações assíncronas estão em andamento.
Após a conclusão, o conteúdo atualizado é transmitido para o cliente na mesma conexão de resposta e integrado perfeitamente ao DOM. Essa abordagem garante que o layout principal do aplicativo seja renderizado rapidamente e que a página seja atualizada assim que o conteúdo estiver disponível.
Injeção de Serviços Chaveados
O Blazor agora suporta a injeção de serviços com chave usando o atributo Inject. As chaves permitem definir o escopo do registro e consumo de serviços em cenários de injeção de dependência.
A nova propriedade InjectAttribute.Key permite que os desenvolvedores especifiquem a chave para o serviço injetar, abrindo novas possibilidades para o escopo do serviço.
Acessando HttpContext como um parâmetro em cascata
O Blazor .NET 8.0 introduz a capacidade de acessar o HttpContext atual como um parâmetro em cascata de um componente de servidor estático. Essa melhoria é particularmente útil para inspecionar e modificar cabeçalhos ou outras propriedades relacionadas ao contexto HTTP.
Renderizando componentes Razor fora do ASP.NET Core
O Blazor .NET 8.0 possibilita a renderização de componentes Razor fora do contexto de uma requisição HTTP. Essa flexibilidade permite que os desenvolvedores renderizem componentes Razor diretamente em uma string ou fluxo, independentemente do ambiente de hospedagem do ASP.NET Core .
Essa funcionalidade é especialmente útil em cenários onde a geração de fragmentos HTML, como e-mails ou conteúdo estático de sites, é necessária.
Suporte de Seções
No Blazor .NET 8.0, a introdução dos componentes SectionOutlet e SectionContent revolucionou o gerenciamento de conteúdo. Esses componentes permitem que os desenvolvedores definam espaços reservados nos layouts, que serão preenchidos posteriormente por páginas específicas.
As seções podem ser referenciadas usando nomes exclusivos ou IDs de objeto, proporcionando flexibilidade e reutilização na construção de layouts web dinâmicos.
Suporte para página de erro
Os aplicativos Web Blazor no .NET 8.0 agora contam com suporte robusto para páginas de erro, permitindo que os desenvolvedores definam páginas de erro personalizadas para uso com o middleware de tratamento de exceções do ASP.NET Core .
A página de erro padrão (Components/Pages/ Razor) proporciona uma experiência de usuário consistente. Mesmo quando a interatividade está ativada, a página de erro é renderizada como um componente estático do servidor, garantindo estabilidade em cenários de exceção.
QuickGrid De Experimental a Essencial
O componente de grade de alto desempenho QuickGrid, passou do status experimental para se tornar parte integrante da estrutura Blazor no .NET 8.
Este componente simplifica a exibição de dados tabulares, oferecendo ao mesmo tempo recursos avançados como classificação, filtragem, paginação e virtualização. Saiba mais sobre QuickGrid na documentação do ASP.NET Core Blazor QuickGrid.
Rota para Elementos Nomeados
O Blazor .NET 8.0 introduz suporte para roteamento no lado do cliente, permitindo navegar diretamente para elementos HTML específicos em uma página usando fragmentos de URL padrão. Ao especificar um identificador para um elemento HTML com o atributo id padrão, o Blazor rola automaticamente até esse elemento quando o fragmento da URL corresponde ao identificador do elemento.
Valores em cascata de nível raiz
O Blazor .NET 8.0 aprimora os valores em cascata ao introduzir valores em cascata de nível raiz que podem ser registrados para toda a hierarquia de componentes. Agora é possível utilizar valores em cascata nomeados e assinaturas para notificações de atualização, proporcionando maior flexibilidade e controle.
Virtualizar conteúdo vazio
O novo parâmetro EmptyContent no componente Virtualize permite que os desenvolvedores forneçam conteúdo quando o componente for carregado e qualquer um dos itens estiver vazio ou ItemsProviderResult<t>.TotalItemCount for zero.
Isso permite que os desenvolvedores criem interfaces mais intuitivas e fáceis de usar.
Gerenciamento de circuitos e monitoramento de sinal SignalR
O Blazor .NET 8.0 introduz a capacidade de fechar circuitos quando não houver mais componentes interativos do servidor. Essa otimização libera recursos do servidor e melhora o desempenho geral.
Além disso, os desenvolvedores agora podem monitorar a atividade de circuito de entrada em aplicativos do lado do servidor usando o método CreateInboundActivityHandler em CircuitHandler.
Desempenho de tempo de execução mais rápido com o Jiterpreter
O Jiterpreter, um novo recurso de tempo de execução no .NET 8, introduz suporte parcial à compilação Just-in-Time (JIT) ao executar em WebAssembly. Isso resulta em um melhor desempenho em tempo de execução, oferecendo uma experiência mais fluida para os usuários que interagem com aplicativos Blazor WebAssembly.
SIMD antecipado (AOT) e tratamento de exceções
A compilação AOT do Blazor WebAssembly agora utiliza por padrão o SIMD de largura fixa do WebAssembly e o tratamento de exceções do WebAssembly. Essa escolha estratégica melhora significativamente o desempenho em tempo de execução, proporcionando uma experiência de usuário mais eficiente e ágil.
Empacotamento Webcil para Implantação Amigável à Web
O Blazor WebAssembly agora utiliza o Webcil, um empacotamento de assemblies .NET otimizado para a web. Isso garante a compatibilidade em ambientes que bloqueiam o download ou o uso de arquivos .dll, resolvendo desafios de implantação. O Webcil está habilitado por padrão para aplicativos Blazor WebAssembly.
Melhorias na depuração do Blazor WebAssembly
A depuração de aplicativos Blazor WebAssembly tornou-se mais simplificada no .NET 8. O depurador agora baixa dados de símbolos de locais configurados nas preferências do Visual Studio, aprimorando a experiência de depuração para aplicativos que utilizam pacotes NuGet .
Além disso, agora o Firefox oferece suporte à depuração, exigindo configuração para depuração remota e conexão por meio do proxy de depuração WebAssembly do .NET .
Compatibilidade com a Política de Segurança de Conteúdo (CSP)
O Blazor WebAssembly no .NET 8.0 elimina a necessidade de habilitar a origem de script unsafe-eval ao especificar uma Política de Segurança de Conteúdo (CSP). Essa melhoria simplifica as configurações de segurança, facilitando a aplicação de uma CSP robusta para aplicativos Blazor WebAssembly.
Tratamento de exceções fora do ciclo de vida do componente
A introdução de ComponentBase.DispatchExceptionAsync permite que os desenvolvedores processem exceções lançadas fora da pilha de chamadas do ciclo de vida de um componente Razor .
Essa funcionalidade permite que o código do componente trate as exceções como se fossem exceções de métodos do ciclo de vida, garantindo um mecanismo de tratamento de erros mais consistente e controlado.
Apresentando o Iron Suite
O Iron Suite , desenvolvido pela Iron Software, consiste em diversas bibliotecas úteis que permitem aos desenvolvedores criar aplicativos Blazor robustos. Ele oferece soluções para adicionar funcionalidades de PDF, arquivos Excel ou CSV, reconhecimento de imagem para texto, geração e leitura de códigos de barras e QR codes, além da capacidade de compactar ou extrair arquivos.
O Iron Suite é a escolha perfeita para desenvolvimento web usando o modelo de hospedagem Blazor WebAssembly, ou qualquer tecnologia Microsoft, incluindo aplicativos Blazor WebAssembly, aplicativos Blazor Server, aplicativos ASP.NET Core MVC, APIs Web ASP.NET Core ou qualquer aplicativo criado no ambiente de execução .NET , independentemente da versão.
Iron Suite
-
IronPDF para criar, manipular e extrair dados de arquivos PDF de forma integrada.
A principal função do IronPDF é a conversão de HTML para PDF , preservando integralmente o layout e o estilo. É perfeito para gerar PDFs a partir de conteúdo da web, incluindo relatórios, faturas e documentação. Você pode converter arquivos HTML, URLs ou strings HTML em arquivos 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 (Reconhecimento Óptico de Caracteres) para extrair texto de imagens digitalizadas ou PDFs, melhorando a acessibilidade dos dados.
- IronXL para ler, escrever e manipular planilhas do Excel com eficiência.
- IronBarcode para geração e leitura de códigos de barras em vários formatos, facilitando a codificação e recuperação de dados.
- IronQR para criar e ler códigos QR usando aprendizado de máquina.
- IronWebScraper para extrair dados valiosos de sites, aprimorando as capacidades de aplicativos baseados na web.
- IronZIP para compactar e descompactar arquivos, otimizando os processos de armazenamento e transferência de dados.

O que diferencia o Iron Suite
- Obtenha acesso a todo o pacote pelo preço de apenas dois produtos individuais, maximizando o valor do seu investimento.
- Quer você esteja trabalhando no Windows, macOS ou Linux, o Iron Suite garante compatibilidade em (quase) todas as plataformas.
- Experimente uma transição rápida do download à produção, com a possibilidade de estar operacional em apenas 5 minutos.
- Acesse documentação detalhada e exemplos para todos os recursos, proporcionando clareza e orientação ao longo de todo o processo de desenvolvimento.
- Uma equipe dedicada de engenheiros está disponível 24 horas por dia, 5 dias por semana, para ajudá-lo com quaisquer dúvidas, garantindo uma experiência de desenvolvimento tranquila.
- O Iron Suite oferece uma política de reembolso de 30 dias, sem perguntas, proporcionando confiança e tranquilidade.
Conclusão
Em conclusão, o lançamento do Blazor .NET 8.0 marca um marco significativo na evolução do desenvolvimento de interfaces de usuário web full-stack com C# e .NET.
A introdução de novos modos de renderização, o modelo Blazor Web App, a navegação aprimorada e uma infinidade de outros recursos fazem dele uma escolha atraente para desenvolvedores que desejam criar aplicativos da web modernos e interativos.
O Blazor .NET 8.0 também introduz recursos interessantes, como o aprimoramento do tratamento de formulários, a renderização em fluxo contínuo e a capacidade de injetar serviços com chave, adicionando profundidade e flexibilidade ao desenvolvimento.
O lançamento do Iron Suite pela Iron Software complementa as capacidades do Blazor, oferecendo um conjunto de ferramentas abrangente para tarefas relacionadas a documentos dentro do ecossistema .NET .
O Blazor .NET 8.0 permite que os desenvolvedores criem aplicativos web robustos e ricos em recursos, utilizando o Iron Suite.
A combinação de recursos poderosos, desempenho aprimorado e o suporte de uma comunidade de desenvolvedores ativa posiciona o Blazor como uma escolha atraente para o desenvolvimento web moderno.
Perguntas frequentes
Como posso converter HTML para PDF em uma aplicação Blazor?
Você pode usar o método RenderHtmlAsPdf do IronPDF em uma aplicação Blazor para converter strings HTML em PDFs. Este método é compatível com os modelos Blazor Server e Blazor WebAssembly.
Quais são os novos modos de renderização no Blazor .NET 8.0?
O Blazor .NET 8.0 introduz três novos modos de renderização: renderização estática no servidor, renderização interativa no servidor e renderização interativa WebAssembly, cada um projetado para otimizar o desempenho e a interatividade.
Como o Iron Suite aprimora os aplicativos Blazor?
O Iron Suite aprimora os aplicativos Blazor, oferecendo funcionalidades como manipulação de PDF, OCR, manipulação de Excel e geração de código de barras, que são essenciais para o desenvolvimento de aplicativos web robustos.
O que é o modo de renderização automática interativa no Blazor .NET 8.0?
O modo de renderização automática interativa no Blazor .NET 8.0 combina a renderização do lado do servidor com a interatividade do lado do cliente, aproveitando o runtime do .NET WebAssembly para uma inicialização mais rápida do aplicativo.
Como posso melhorar o tratamento de formulários no Blazor .NET 8.0?
O Blazor .NET 8.0 aprimora o tratamento de formulários com vinculação de modelo, validação de dados e suporte antifalsificação aprimorados, oferecendo aos desenvolvedores mais controle sobre o gerenciamento de dados de formulários.
Qual é a finalidade da renderização em fluxo contínuo (streaming rendering) no Blazor .NET 8.0?
O recurso de renderização em fluxo contínuo (streaming rendering) no Blazor .NET 8.0 permite a renderização inicial de conteúdo de espaço reservado enquanto tarefas assíncronas de longa duração são concluídas, o que melhora a experiência do usuário ao atualizar a página de forma transparente.
Como o modelo de aplicativo web Blazor agiliza o desenvolvimento?
O modelo Blazor Web App no .NET 8.0 unifica os modelos Blazor Server e Blazor WebAssembly, simplificando o processo de desenvolvimento com navegação e manipulação de formulários aprimoradas.
Como o conjunto de ferramentas da Iron Software complementa o Blazor .NET 8.0?
O conjunto de ferramentas da Iron Software complementa o Blazor .NET 8.0, fornecendo funcionalidades abrangentes relacionadas a documentos e aprimorando a capacidade da estrutura de lidar com tarefas complexas de processamento de documentos.
Quais são os benefícios de usar o IronPDF em uma aplicação web Blazor?
O IronPDF oferece recursos avançados de geração e manipulação de PDFs, tornando-o a escolha ideal para desenvolvedores que criam aplicativos web Blazor que exigem funcionalidades robustas de gerenciamento de documentos.
Quais melhorias foram feitas na depuração no Blazor .NET 8.0?
O Blazor .NET 8.0 aprimora a depuração de aplicativos WebAssembly com downloads de dados de símbolos otimizados e suporte adicional para o Firefox, simplificando o processo de depuração.




