Ir para o conteúdo do rodapé
AJUDA DO .NET

O que é o Blazor Framework (Tutorial de como funciona para desenvolvedores)

Blazor é um framework ASP.NET lançado pela Microsoft em 2018. O lançamento do framework Blazor foi vantajoso, pois permitiu que os desenvolvedores criassem aplicativos web de página única usando C# em vez de JavaScript.

O Blazor permite criar interfaces de usuário web interativas usando C#, que são executadas no navegador com WebAssembly (abreviado como Wasm). Os aplicativos Blazor são compostos por componentes de interface de usuário web reutilizáveis, implementados usando C#, HTML e CSS. Tanto o código do cliente quanto o do servidor são escritos em C#, permitindo o compartilhamento de código e bibliotecas.

O Blazor pode executar seu código C# do lado do cliente diretamente no navegador usando WebAssembly. Por ser .NET executado em WebAssembly, você pode reutilizar código e bibliotecas das partes do lado do servidor do seu aplicativo.

Alternativamente, o Blazor pode executar a lógica do cliente no servidor. Os eventos da interface do usuário do cliente são enviados de volta ao servidor usando o SignalR, uma estrutura de mensagens em tempo real. Após a conclusão da execução, as alterações necessárias na interface do usuário são enviadas ao cliente e incorporadas ao Modelo de Objeto de Documento (DOM).

O que é WebAssembly?

Blazor WebAssembly é um framework de Aplicativo de Página Única (SPA, do inglês Single-Page App) para criar aplicativos web interativos do lado do cliente com .NET. O Blazor WebAssembly utiliza padrões web abertos que permitem o desenvolvimento sem plugins ou recompilação de código para outras linguagens. O Blazor WebAssembly funciona em todos os navegadores web modernos.

A execução de código .NET em navegadores da web é possível graças ao WebAssembly. WebAssembly é um formato de bytecode compacto, otimizado para downloads rápidos e velocidades máximas de execução. WebAssembly é um padrão web aberto e é suportado nos navegadores web sem a necessidade de plugins.

O código WebAssembly pode acessar todas as funcionalidades do navegador por meio do JavaScript. Conhecido como Interoperabilidade JavaScript , é frequentemente abreviado para Interoperabilidade JavaScript ou Interoperabilidade JS. O código .NET executado via WebAssembly é executado no ambiente isolado (sandbox) do JavaScript do navegador, com as proteções que esse ambiente oferece contra ações maliciosas na máquina do cliente.

Crie aplicativos nativos

Com o Blazor Hybrid, podemos criar aplicativos nativos para clientes usando componentes de interface do usuário da Web Blazor existentes. Os componentes Blazor podem ser compartilhados entre dispositivos móveis, desktops e a web, aproveitando o acesso total aos recursos nativos do cliente. Podemos usar o Blazor Hybrid para criar aplicativos multiplataforma com a interface de usuário de aplicativos multiplataforma .NET (MAUI) ou para modernizar aplicativos existentes do Windows Presentation Foundation (WPF) e do Windows Forms.

Em um aplicativo híbrido Blazor , os componentes Razor são executados nativamente no dispositivo. Os componentes são renderizados em um controle Web View incorporado por meio de um canal de interoperabilidade local. Os componentes não são executados no navegador e o WebAssembly não está envolvido. Os componentes Razor carregam e executam código rapidamente, e têm acesso total aos recursos nativos do dispositivo por meio da plataforma .NET .

Vamos criar um aplicativo de demonstração para entender melhor como funcionam os aplicativos Blazor .

Criar uma aplicação Blazor Server

Para criar nosso primeiro aplicativo Blazor , precisamos criar um novo projeto no Visual Studio.

  • Abra o Visual Studio.
  • Clique no botão Criar novo projeto.
  • Selecione o modelo de aplicativo Blazor Server.
  • Clique no botão Próximo.
  • Dê um nome à sua aplicação.
  • Clique no botão Próximo.
  • Selecione uma estrutura de destino.
  • Clique no botão Criar Projeto.

Um novo projeto será criado conforme mostrado abaixo.

What is Blazor and How Does It Work - Figure 1

Foram criados diversos arquivos para fornecer um aplicativo Blazor simples e pronto para ser executado.

  • Program.cs é o ponto de entrada do aplicativo que inicia o servidor e onde você configura os serviços e o middleware do aplicativo.
  • App.razor é o componente raiz do aplicativo.
  • O diretório Pages contém algumas páginas web de exemplo para o aplicativo.
  • O arquivo launchSettings.json dentro do diretório Properties define diferentes configurações de perfil para o ambiente de desenvolvimento local. Um número de porta é atribuído automaticamente na criação do projeto e salvo neste arquivo.

Execute este aplicativo modelo.

Executando o aplicativo Blazor

Existem três componentes Blazor criados automaticamente no modelo.

Componente inicial

What is Blazor and How Does It Work - Figure 2

Clique em "Contador" no menu lateral. Você verá que clicar no botão incrementa o contador sem alterar ou recarregar a página. Incrementar um contador dinamicamente em uma aplicação web normalmente requer JavaScript, mas com Blazor, podemos fazer isso usando C#. É por isso que os desenvolvedores de ASP.NET gostam tanto do Blazor . Isso ajuda os desenvolvedores .NET a criar aplicativos da web de forma rápida e fácil.

Componente do contador

What is Blazor and How Does It Work - Figure 3

Podemos ver o código do componente Contador no arquivo Counter.razor localizado dentro da pasta Pages da nossa solução.

@page "/counter"
<h1>Counter</h1>
<p>Current count: @currentCount</p>
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
@code {
    private int currentCount = 0;

    // This method increments the counter value when the button is clicked
    private void IncrementCount()
    {
        currentCount++;
    }
}

Uma solicitação para /counter no navegador, conforme especificado pela diretiva @page no topo, faz com que o componente Counter renderize seu conteúdo.

Cada vez que o botão "Clique aqui" for selecionado:

  • O evento onclick foi executado.
  • O método IncrementCount foi chamado.
  • O currentCount foi incrementado.
  • O componente é renderizado para mostrar a contagem atualizada.

Cada um dos arquivos .razor define um componente de interface do usuário que pode ser reutilizado.

Abra o arquivo Index.razor no Visual Studio. O arquivo Index.razor já existe porque foi criado quando você criou o projeto. Está localizado na pasta Pages dentro do diretório BlazorApp que foi criado anteriormente.

Componente de busca

Existe outro componente chamado "Fetch Component". Este componente também injeta um serviço usado para desenvolvimento de backend no lado do servidor. Vamos substituir esse código para gerar um PDF a partir de uma URL para entender melhor o poder do desenvolvimento web com Blazor .

Gerar PDF a partir de URL

Primeiramente, precisamos instalar uma biblioteca de terceiros para gerar arquivos PDF. A biblioteca que utilizaremos é o IronPDF - Geração de PDF for .NET . É fácil de usar, inclui muitos recursos e é gratuito para desenvolvimento. Você pode aprender mais sobre como usar o IronPDF em seu aplicativo Blazor lendo a documentação do IronPDF para Blazor .

Instale o pacote NuGet IronPDF.

Também podemos instalar o pacote NuGet IronPDF no aplicativo Blazor WebAssembly de forma semelhante a um aplicativo ASP.NET Core normal.

Abra o console do Gerenciador de Pacotes NuGet e digite o seguinte comando:

Install-Package IronPdf

A biblioteca será instalada conforme mostrado abaixo.

What is Blazor and How Does It Work - Figure 4

Remova todo o código existente do arquivo FetchData.razor e adicione o seguinte exemplo de código:

@page "/fetchdata"

@using myBlazorAPP.Data
@inject WeatherForecastService ForecastService

<h1>Generate PDF FROM URL</h1>
<p>This component demonstrates generating PDF from URL using IronPDF in Blazor Application</p>
<input type="text" @bind="URL" placeholder="URL HERE..."/>
<button @onclick="GeneratePDF">Generate PDF</button>

@code {
    private string URL { get; set; }

    // This method calls the service to generate a PDF document from a given URL
    protected async Task GeneratePDF()
    {
        await ForecastService.GeneratePDFfromURL(URL);
    }
}

Acima está o código Blazor do lado do cliente para gerar arquivos PDF. Define um botão e uma caixa de entrada. O campo de entrada está vinculado à variável URL.

Agora, vamos escrever o código do lado do servidor para nosso aplicativo.

Abra o arquivo WeatherForecastService.cs e substitua todo o código existente pelo seguinte trecho de código:

using System;
using System.Threading.Tasks;
using IronPdf;

namespace myBlazorAPP.Data
{
    public class WeatherForecastService
    {
        // This method generates a PDF file asynchronously from a provided URL
        public async Task GeneratePDFfromURL(string URL)
        {
            ChromePdfRenderer renderer = new ChromePdfRenderer();
            var pdfDoc = await renderer.RenderUrlAsPdfAsync(URL);
            pdfDoc.SaveAs(@"myFile.pdf");
        }
    }
}
using System;
using System.Threading.Tasks;
using IronPdf;

namespace myBlazorAPP.Data
{
    public class WeatherForecastService
    {
        // This method generates a PDF file asynchronously from a provided URL
        public async Task GeneratePDFfromURL(string URL)
        {
            ChromePdfRenderer renderer = new ChromePdfRenderer();
            var pdfDoc = await renderer.RenderUrlAsPdfAsync(URL);
            pdfDoc.SaveAs(@"myFile.pdf");
        }
    }
}
Imports System
Imports System.Threading.Tasks
Imports IronPdf

Namespace myBlazorAPP.Data
	Public Class WeatherForecastService
		' This method generates a PDF file asynchronously from a provided URL
		Public Async Function GeneratePDFfromURL(ByVal URL As String) As Task
			Dim renderer As New ChromePdfRenderer()
			Dim pdfDoc = Await renderer.RenderUrlAsPdfAsync(URL)
			pdfDoc.SaveAs("myFile.pdf")
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

Vamos executar nossa aplicação para ver o resultado.

What is Blazor and How Does It Work - Figure 5

Cole um URL na caixa de entrada e clique em Gerar PDF. O arquivo PDF será gerado e poderá ser visualizado na pasta do aplicativo.

Abra o arquivo PDF conforme mostrado abaixo.

What is Blazor and How Does It Work - Figure 6

Geramos um PDF a partir da URL com apenas três linhas de código. Este é o poder do IronPDF.

O IronPDF é fornecido pela Iron Software e faz parte do pacote de produtos Iron Suite da Iron Software . Você pode economizar dinheiro e comprar cinco produtos pelo preço de dois , adquirindo o pacote completo Iron Suite .

Resumo

Blazor é uma estrutura para construir interfaces de usuário web interativas do lado do cliente com o .NET Framework da Microsoft .

  • Crie interfaces de usuário interativas e ricas usando C# em vez de JavaScript.
  • Compartilhar a lógica do aplicativo do lado do servidor e do lado do cliente escrita em .NET.
  • Renderizar a interface do usuário em HTML e CSS para ampla compatibilidade com navegadores, incluindo navegadores móveis.
  • Integre-se com plataformas de hospedagem modernas, como o Docker.
  • Crie aplicativos híbridos para desktop e dispositivos móveis com .NET e Blazor.

Utilizar o .NET para desenvolvimento web do lado do cliente oferece as seguintes vantagens:

  • Escreva o código em C# em vez de JavaScript.
  • Aproveite o ecossistema existente de .NET .NET
  • Compartilhar a lógica do aplicativo entre o servidor e o cliente. Aproveite o desempenho, a confiabilidade e a segurança do .NET. Mantenha-se produtivo no Windows, Linux ou macOS com um ambiente de desenvolvimento, como o Visual Studio ou o Visual Studio Code.
  • Construir sobre um conjunto comum de linguagens, estruturas e ferramentas que sejam estáveis, ricas em recursos e fáceis de usar.

Perguntas frequentes

Como posso gerar um PDF a partir de uma URL usando C#?

É possível gerar um PDF a partir de uma URL em C# usando a biblioteca IronPDF. Isso envolve a utilização da classe ChromePdfRenderer para renderizar a URL como um documento PDF.

Quais são os principais benefícios de usar Blazor para desenvolvimento web?

O Blazor permite que os desenvolvedores criem aplicativos web com C#, possibilitando o compartilhamento de código entre o cliente e o servidor. Ele também melhora o desempenho e a produtividade ao utilizar o ecossistema .NET existente e fornecer suporte para navegadores modernos por meio do WebAssembly.

Como o Blazor pode ser usado para integrar recursos nativos do dispositivo?

O Blazor pode ser usado para criar aplicativos nativos com o Blazor Hybrid, que permite que os componentes sejam executados nativamente e acessem os recursos do dispositivo por meio do .NET, aproveitando frameworks como o .NET MAUI para aplicativos multiplataforma.

Como o WebAssembly aprimora os aplicativos Blazor?

O WebAssembly aprimora os aplicativos Blazor, permitindo que o código .NET seja executado em navegadores modernos sem a necessidade de plugins. Isso possibilita aplicativos web interativos do lado do cliente que podem utilizar a interoperabilidade com JavaScript para obter todas as funcionalidades do navegador.

Como criar uma aplicação Blazor Server no Visual Studio?

Para criar um aplicativo Blazor Server no Visual Studio, você precisa iniciar um novo projeto, selecionar o modelo de aplicativo Blazor Server, fornecer um nome para o projeto, escolher uma estrutura de destino e, em seguida, prosseguir com a criação do projeto. Esse processo configura a estrutura necessária para um aplicativo Blazor Server.

O que é interoperabilidade JavaScript no Blazor?

A interoperabilidade com JavaScript, ou JS interop, é um recurso do Blazor que permite que o código .NET em execução no navegador interaja com o JavaScript, possibilitando o uso de todas as funcionalidades do navegador em aplicativos Blazor.

É possível implantar aplicativos Blazor usando o Docker?

Sim, as aplicações Blazor podem ser implantadas usando o Docker, o que facilita o gerenciamento e a implantação de aplicações em diversos ambientes de servidor, aumentando a escalabilidade e a integração com plataformas de hospedagem modernas.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim