Partilhar via


Modelos de hospedagem do ASP.NET Core Blazor

Note

Esta não é a versão mais recente deste artigo. Para a versão atual, consulte a versão .NET 10 deste artigo.

Warning

Esta versão do ASP.NET Core não é mais suportada. Para obter mais informações, consulte a Política de suporte do .NET e .NET Core. Para a versão atual, consulte a versão .NET 10 deste artigo.

Este artigo explica Blazor modelos de hospedagem, focados principalmente em aplicativos Blazor Server e Blazor WebAssembly em versões do .NET anteriores ao .NET 8. A orientação neste artigo é relevante em todas as versões do .NET para aplicativos Blazor Hybrid executados em plataformas móveis e de desktop nativas. Blazor Web Apps no .NET 8 ou posterior são melhor compreendidos pela forma como os componentes Razor são renderizados, descrito como seu modo de renderização . Os modos de renderização são brevemente abordados no artigo de visão geral dos fundamentos e abordados em detalhes nos modos de renderização do ASP.NET Core Blazor do nó de componentes do .

Este artigo explica os modelos de hospedagem Blazor e como escolher qual usar.

Blazor é uma estrutura da Web para a criação de componentes da interface do usuário da Web (Razor componentes) que podem ser hospedados de diferentes maneiras. Razor componentes podem ser executados no lado do servidor no ASP.NET Core (Blazor Server) versus no lado do cliente no navegador num runtime .NET baseado em WebAssembly (Blazor WebAssembly, Blazor Wasm). Você também pode hospedar componentes Razor em aplicações móveis e de desktop nativas que renderizam num controlo Web View incorporado (Blazor Hybrid). Independentemente do modelo de hospedagem, a maneira como você constrói Razor componentes é a mesma. Os mesmos componentes Razor podem ser usados com qualquer um dos modelos de hospedagem inalterados.

Blazor é uma estrutura da Web para a criação de componentes da interface do usuário da Web (Razor componentes) que podem ser hospedados de diferentes maneiras. Razor componentes podem ser executados no lado do servidor no ASP.NET Core (Blazor Server) versus no lado do cliente no navegador num runtime .NET baseado em WebAssembly (Blazor WebAssembly, Blazor Wasm). Independentemente do modelo de hospedagem, a maneira como você constrói Razor componentes é a mesma. Os mesmos componentes Razor podem ser usados com qualquer um dos modelos de hospedagem inalterados.

Blazor Server

Com o modelo de hospedagem Blazor Server, os componentes são executados no servidor de dentro de um aplicativo ASP.NET Core. Atualizações da interface do usuário, manipulação de eventos e chamadas JavaScript são tratadas em uma conexão SignalR usando o protocolo WebSockets. O estado no servidor associado a cada cliente conectado é chamado de circuito . Os circuitos não estão vinculados a uma conexão de rede específica e podem tolerar interrupções temporárias da rede e tentativas do cliente de se reconectar ao servidor quando a conexão é perdida.

Em um aplicativo renderizado por servidor tradicional, abrir o mesmo aplicativo em várias telas do navegador (guias ou iframes) normalmente não se traduz em demandas de recursos adicionais no servidor. Para o modelo de hospedagem Blazor Server, cada tela do navegador requer um circuito separado e instâncias separadas do estado do componente gerenciado pelo servidor. Blazor considera fechar uma guia do navegador ou navegar para uma URL externa um encerramento gracioso. No caso de uma rescisão graciosa, o circuito e os recursos associados são imediatamente liberados. Um cliente também pode desligar-se de forma não normal, por exemplo, devido a uma interrupção da rede. Blazor Server armazena circuitos desconectados por um intervalo configurável para permitir que o cliente se reconecte.

O navegador interage com Blazor (hospedado dentro de um aplicativo ASP.NET Core) no servidor através de uma conexão SignalR.

No cliente, o script Blazor estabelece a conexão SignalR com o servidor. O script é servido como um ativo web estático com compressão automática e impressão digital .

No cliente, o script Blazor estabelece a conexão SignalR com o servidor. O script é servido a partir de um recurso incorporado na estrutura compartilhada do ASP.NET Core.

O modelo de hospedagem Blazor Server oferece vários benefícios:

  • O tamanho do download é significativamente menor do que quando o modelo de hospedagem Blazor WebAssembly é usado, e o aplicativo carrega muito mais rápido.
  • O aplicativo aproveita ao máximo os recursos do servidor, incluindo o uso de APIs .NET.
  • O .NET no servidor é usado para executar o aplicativo, portanto, as ferramentas .NET existentes, como depuração, funcionam conforme o esperado.
  • Os clientes ligeiros são suportados. Por exemplo, Blazor Server funciona com navegadores que não suportam WebAssembly e em dispositivos com recursos limitados.
  • A base de código .NET/C# do aplicativo, incluindo o código do componente do aplicativo, não é servida aos clientes.

O modelo de hospedagem Blazor Server tem as seguintes limitações:

  • Latência mais alta geralmente existe. Cada interação do usuário envolve um salto de rede.
  • Não há suporte offline. Se a conexão do cliente falhar, a interatividade falhará.
  • Dimensionar aplicativos com muitos usuários requer recursos do servidor para lidar com várias conexões de cliente e o estado do cliente.
  • É necessário um servidor ASP.NET Core para servir a aplicação. Cenários de implantação sem servidor não são possíveis, como servir o aplicativo a partir de uma Rede de Distribuição de Conteúdo (CDN).

Recomendamos usar o Azure SignalR Service para aplicativos que adotam o modelo de hospedagem Blazor Server. O serviço permite escalar um aplicativo Blazor Server para um grande número de conexões SignalR simultâneas.

Blazor WebAssembly

O modelo de alojamento Blazor WebAssembly executa componentes no lado do cliente no navegador em um runtime .NET baseado em WebAssembly. Razor componentes, suas dependências e o tempo de execução do .NET são baixados para o navegador. Os componentes são executados diretamente no thread da interface do usuário do navegador. As atualizações da interface do usuário e a manipulação de eventos ocorrem dentro do mesmo processo. Os ativos são implantados como arquivos estáticos em um servidor Web ou serviço capaz de fornecer conteúdo estático aos clientes.

Blazor WebAssembly: Blazor é executado em um thread de interface do usuário dentro do navegador.

Blazor Web Apps pode usar o modelo de hospedagem para permitir a interatividade do lado do Blazor WebAssembly cliente. Quando um aplicativo é criado que é executado exclusivamente no modelo de hospedagem sem renderização e interatividade no servidor, o aplicativo é chamado de aplicativo autônomo .

Quando a aplicação Blazor WebAssembly é criada para implantação sem uma aplicação back-end ASP.NET Core para servir os seus ficheiros, a aplicação é chamada de aplicação Blazor WebAssembly autónoma.

Quando uma aplicação autónoma usa um back-end ASP.NET Core para servir os seus ficheiros, a aplicação é chamada de aplicação hospedada . Usando Blazor WebAssemblyhospedados, você obtém uma experiência de desenvolvimento web full-stack com .NET, incluindo a capacidade de compartilhar código entre os aplicativos cliente e servidor, suporte para pré-renderização e integração com MVC e Razor Pages. Um aplicativo cliente hospedado pode interagir com seu aplicativo de servidor back-end pela rede usando uma variedade de estruturas e protocolos de mensagens, como de API da Web, gRPC-web e SignalR (Use ASP.NET Core SignalR com Blazor).

Um aplicativo Blazor WebAssembly criado como um Progressive Web App (PWA) usa APIs de navegador modernas para habilitar muitos dos recursos de um aplicativo cliente nativo, como trabalhar offline, executar em sua própria janela de aplicativo, iniciar a partir do sistema operacional do host, receber notificações por push e atualizar automaticamente em segundo plano.

O script Blazor manipula:

  • A descarregar o runtime do .NET, os componentes Razor e as dependências.
  • Inicialização do tempo de execução.

O tamanho do aplicativo publicado, seu tamanho de carga útil , é um fator de desempenho crítico para a usabilidade de um aplicativo. Um aplicativo grande leva um tempo relativamente longo para ser baixado para um navegador, o que diminui a experiência do usuário. Blazor WebAssembly otimiza o tamanho da carga útil para reduzir os tempos de download:

  • O código não utilizado é removido da aplicação quando é publicada pelo Trimmer de Linguagem Intermediária (IL) .
  • As respostas HTTP são compactadas.
  • O tempo de execução e os assemblies do .NET são armazenados em cache no navegador.

O modelo de hospedagem Blazor WebAssembly oferece vários benefícios:

  • Para aplicativos Blazor WebAssembly autônomos, não há dependência do lado do servidor .NET depois que o aplicativo é baixado do servidor, portanto, o aplicativo permanece funcional se o servidor ficar offline.
  • Os recursos e capacidades do cliente são totalmente aproveitados.
  • O trabalho é descarregado do servidor para o cliente.
  • Para aplicativos Blazor WebAssembly autônomos, não é necessário um servidor Web ASP.NET Core para hospedar o aplicativo. São possíveis cenários de implantação sem servidor, como servir o aplicativo a partir de uma CDN (Rede de Distribuição de Conteúdo).

O modelo de hospedagem Blazor WebAssembly tem as seguintes limitações:

  • Os componentes Razor estão limitados aos recursos do navegador.
  • É necessário hardware e software de cliente capaz (por exemplo, suporte a WebAssembly).
  • O tamanho do download é maior e os componentes levam mais tempo para carregar.
  • O código enviado ao cliente não pode ser protegido contra inspeção e adulteração pelos usuários.

O interpretador de .NET Intermediate Language (IL) inclui suporte parcial just-in-time (JIT) tempo de execução para obter melhor desempenho de tempo de execução. O interpretador JIT otimiza a execução de bytecodes do interpretador substituindo-os por pequenos blobs de código WebAssembly. O interpretador JIT é ativado automaticamente para aplicativos Blazor WebAssembly, exceto durante a depuração.

Blazor suporta compilação ahead-of-time (AOT), onde você pode compilar seu código .NET diretamente no WebAssembly. A compilação AOT resulta em melhorias de desempenho em tempo de execução às custas de um tamanho de aplicativo maior. Para obter mais informações, consulte ASP.NET Core Blazor WebAssembly ferramentas de build e compilação antecipada (AOT).

O mesmo ferramentas de compilação do .NET WebAssembly usadas para compilação AOT também revincular o de tempo de execução do .NET WebAssembly para cortar o código de tempo de execução não utilizado. Blazor também corta o código não utilizado das bibliotecas do .NET framework. O compilador .NET ainda pré-compacta um aplicativo Blazor WebAssembly autônomo para uma carga útil de aplicativo menor.

Os componentes Razor renderizados pelo WebAssembly podem utilizar dependências nativas construídas para serem executadas no WebAssembly.

Blazor WebAssembly inclui suporte para cortar código não utilizado de bibliotecas .NET. Para obter mais informações, consulte ASP.NET Core Blazor globalização e localização.

Blazor Hybrid

Blazor também pode ser usado para criar aplicativos cliente nativos usando uma abordagem híbrida. Os aplicativos híbridos são aplicativos nativos que aproveitam as tecnologias da Web para sua funcionalidade. Em uma aplicação Blazor Hybrid, os componentes Razor são executados diretamente na aplicação nativa (não no WebAssembly) juntamente com qualquer outro código .NET e renderizam a interface web baseada em HTML e CSS para um controlo incorporado Web View através de um canal de interoperabilidade local.

aplicativos híbridos com .NET e Blazor renderizam a interface do usuário em um controle Web View, onde o HTML DOM interage com Blazor e .NET do aplicativo nativo de desktop ou móvel.

Blazor Hybrid aplicativos podem ser criados usando diferentes estruturas de aplicativos nativos do .NET, incluindo .NET MAUI, WPF e Windows Forms. Blazor fornece controles BlazorWebView para adicionar componentes Razor a aplicativos criados com essas estruturas. Usar o Blazor com o .NET MAUI oferece uma maneira conveniente de criar aplicativos de Blazor Hybrid multiplataforma para dispositivos móveis e desktop, enquanto a integração Blazor com WPF e Windows Forms pode ser uma ótima maneira de modernizar aplicativos existentes.

Como Blazor Hybrid aplicativos são aplicativos nativos, eles podem oferecer suporte a funcionalidades que não estão disponíveis apenas com a plataforma Web. Blazor Hybrid aplicativos têm acesso total aos recursos nativos da plataforma por meio de APIs .NET normais. Blazor Hybrid aplicativos também podem compartilhar e reutilizar componentes com aplicativos Blazor Server ou Blazor WebAssembly existentes. Blazor Hybrid aplicativos combinam os benefícios da Web, aplicativos nativos e a plataforma .NET.

O modelo de hospedagem Blazor Hybrid oferece vários benefícios:

  • Reutilize componentes existentes que podem ser compartilhados em dispositivos móveis, desktops e Web.
  • Aproveite as habilidades, a experiência e os recursos de desenvolvimento web.
  • Os aplicativos têm acesso total aos recursos nativos do dispositivo.

O modelo de hospedagem Blazor Hybrid tem as seguintes limitações:

  • Aplicativos cliente nativos separados devem ser criados, implantados e mantidos para cada plataforma de destino.
  • Os aplicativos cliente nativos geralmente levam mais tempo para localizar, baixar e instalar ao acessar um aplicativo Web em um navegador.

Para obter mais informações, consulte ASP.NET Core Blazor Hybrid.

Para obter mais informações sobre estruturas de cliente nativo da Microsoft, consulte os seguintes recursos:

Qual Blazor modelo de hospedagem devo escolher?

O modelo de hospedagem de um componente é definido por seu modo de renderização , seja em tempo de compilação ou tempo de execução, que é descrito com exemplos em ASP.NET modos de renderização Core Blazor. A tabela a seguir mostra as principais considerações para definir o modo de renderização para determinar o modelo de hospedagem de um componente. Para aplicativos Blazor WebAssembly autônomos, todos os componentes do aplicativo são renderizados no cliente com o modelo de hospedagem Blazor WebAssembly.

Selecione o modelo de hospedagem Blazor com base nos requisitos de recursos do aplicativo. A tabela a seguir mostra as principais considerações para selecionar o modelo de hospedagem.

Blazor Hybrid aplicações incluem aplicações da estrutura .NET MAUI, WPF e Windows Forms.

Feature Blazor Server Blazor WebAssembly (Wasm) Blazor Hybrid
Compatibilidade completa com a API .NET Supported Não suportado Supported
Acesso direto aos recursos do servidor e da rede Supported Não suportado Não suportado
Pequeno tamanho de carga útil com rápido tempo de carregamento inicial Supported Não suportado Não suportado
Velocidade de execução quase nativa Supported Supported Supported
código da aplicação seguro e privado no servidor Supported Não suportado Não suportado
Execute aplicações offline depois de descarregadas Não suportado Supported Supported
Site estático que hospeda Não suportado Supported Não suportado
Encaminha o processamento para os clientes Não suportado Supported Supported
Acesso total aos recursos nativos do cliente Não suportado Não suportado Supported
Implantação baseada na Web Supported Supported Não suportado

†Blazor WebAssembly e Blazor Hybrid aplicativos podem usar APIs baseadas em servidor para acessar recursos de servidor/rede e acessar código de aplicativo privado e seguro.
‡Blazor WebAssembly só atinge um desempenho quase nativo com compilação ahead-of-time (AOT).

Feature Blazor Server Blazor WebAssembly (Wasm)
Compatibilidade completa com a API .NET Supported Não suportado
Acesso direto aos recursos do servidor e da rede Supported Não suportado
Pequeno tamanho de carga útil com rápido tempo de carregamento inicial Supported Não suportado
código da aplicação seguro e privado no servidor Supported Não suportado
Execute aplicações offline depois de descarregadas Não suportado Supported
Site estático que hospeda Não suportado Supported
Encaminha o processamento para os clientes Não suportado Supported

†Blazor WebAssembly aplicativos podem usar APIs baseadas em servidor para acessar recursos de servidor/rede e acessar código de aplicativo privado e seguro.

Depois de escolher o modelo de hospedagem do aplicativo, você pode gerar um aplicativo Blazor Server ou Blazor WebAssembly a partir de um modelo de projeto Blazor. Para obter mais informações, consulte Tooling for ASP.NET Core Blazor.

Para criar uma aplicação Blazor Hybrid, consulte os artigos em ASP.NET Core tutoriais Blazor Hybrid.

Compatibilidade completa com a API .NET

Os componentes renderizados para o modelo de hospedagem Blazor Server e aplicativos Blazor Hybrid têm compatibilidade completa com a API do .NET, enquanto os componentes renderizados para Blazor WebAssembly são limitados a um subconjunto de APIs do .NET. Quando a especificação de um aplicativo exigir uma ou mais APIs .NET que não estão disponíveis para componentes renderizados pelo WebAssembly, opte por renderizar componentes para Blazor Server ou usar Blazor Hybrid.

Blazor Server e Blazor Hybrid aplicativos têm compatibilidade completa com a API .NET, enquanto os aplicativos Blazor WebAssembly são limitados a um subconjunto de APIs .NET. Quando a especificação de um aplicativo exigir uma ou mais APIs .NET que não estão disponíveis para Blazor WebAssembly aplicativos, escolha Blazor Server ou Blazor Hybrid.

Blazor Server aplicativos têm total compatibilidade com a API do .NET, enquanto os aplicativos Blazor WebAssembly são limitados a um subconjunto de APIs do .NET. Quando a especificação de uma aplicação requerer uma ou mais APIs .NET que não estão disponíveis para aplicações Blazor WebAssembly, escolha Blazor Server.

Acesso direto aos recursos do servidor e da rede

Os componentes renderizados para o modelo de hospedagem Blazor Server têm acesso direto aos recursos do servidor e da rede onde o aplicativo está sendo executado. Como os componentes hospedados usando Blazor WebAssembly ou Blazor Hybrid são executados em um cliente, eles não têm acesso direto aos recursos do servidor e da rede. Os componentes podem acessar recursos de servidor e rede indiretamente por meio de APIs protegidas baseadas em servidor. As APIs baseadas em servidor podem estar disponíveis por meio de bibliotecas, pacotes e serviços de terceiros. Tenha em conta as seguintes considerações:

  • A implementação e manutenção de bibliotecas, pacotes e serviços de terceiros podem ser dispendiosos, ter um suporte fraco ou introduzir riscos de segurança.
  • Se uma ou mais APIs baseadas em servidor forem desenvolvidas internamente pela sua organização, serão necessários recursos adicionais para criá-las e mantê-las.

Use o modelo de hospedagem Blazor Server para evitar a necessidade de expor APIs do ambiente de servidor.

Blazor Server aplicativos têm acesso direto aos recursos do servidor e da rede onde o aplicativo está sendo executado. Como Blazor WebAssembly e Blazor Hybrid aplicativos são executados em um cliente, eles não têm acesso direto aos recursos do servidor e da rede. Blazor WebAssembly e Blazor Hybrid aplicativos podem acessar recursos de servidor e rede indiretamente por meio de APIs protegidas baseadas em servidor. As APIs baseadas em servidor podem estar disponíveis por meio de bibliotecas, pacotes e serviços de terceiros. Tenha em conta as seguintes considerações:

  • A implementação e manutenção de bibliotecas, pacotes e serviços de terceiros podem ser dispendiosos, ter um suporte fraco ou introduzir riscos de segurança.
  • Se uma ou mais APIs baseadas em servidor forem desenvolvidas internamente pela sua organização, serão necessários recursos adicionais para criá-las e mantê-las.

Para evitar APIs baseadas em servidor para aplicativos Blazor WebAssembly ou Blazor Hybrid, adote Blazor Server, que pode acessar recursos de servidor e rede diretamente.

Blazor Server aplicativos têm acesso direto aos recursos do servidor e da rede onde o aplicativo está sendo executado. Como Blazor WebAssembly aplicativos são executados em um cliente, eles não têm acesso direto aos recursos do servidor e da rede. Blazor WebAssembly as aplicações podem aceder a recursos de servidores e redes indiretamente através de APIs protegidas baseadas em servidor. As APIs baseadas em servidor podem estar disponíveis por meio de bibliotecas, pacotes e serviços de terceiros. Tenha em conta as seguintes considerações:

  • A implementação e manutenção de bibliotecas, pacotes e serviços de terceiros podem ser dispendiosos, ter um suporte fraco ou introduzir riscos de segurança.
  • Se uma ou mais APIs baseadas em servidor forem desenvolvidas internamente pela sua organização, serão necessários recursos adicionais para criá-las e mantê-las.

Para evitar APIs baseadas em servidor para aplicativos Blazor WebAssembly, adote Blazor Server, que podem acessar recursos de servidor e rede diretamente.

Tamanho de carga útil pequeno com tempo de carregamento inicial rápido

A renderização de componentes do servidor reduz o tamanho da carga útil do aplicativo e melhora os tempos de carregamento iniciais. Quando um tempo de carregamento inicial rápido for desejado, use o modelo de hospedagem Blazor Server ou considere a renderização estática do lado do servidor.

As aplicações Blazor Server têm tamanhos de carga relativamente pequenos e tempos de carregamento inicial mais rápidos. Quando desejar um tempo de carregamento inicial rápido, adote Blazor Server.

Velocidade de execução quase nativa

Blazor Hybrid aplicações são executadas usando o .NET runtime nativamente na plataforma de destino, o que oferece a melhor velocidade possível.

Os componentes renderizados para o modelo de hospedagem Blazor WebAssembly, incluindo PWAs (Progressive Web Apps) e aplicativos Blazor WebAssembly autônomos são executados usando o tempo de execução do .NET para WebAssembly, que é mais lento do que a execução direta na plataforma. Considere o uso de compilado antecipadamente do tempo (AOT) para melhorar o desempenho do tempo de execução ao usar Blazor WebAssembly.

Blazor Hybrid aplicações são executadas usando o .NET runtime nativamente na plataforma de destino, o que oferece a melhor velocidade possível.

Blazor WebAssembly, incluindo Progressive Web Apps (PWAs), os aplicativos são executados usando o tempo de execução do .NET para WebAssembly, que é mais lento do que a execução direta na plataforma, mesmo para aplicativos que são antecipadamente compilados (AOT) para WebAssembly no navegador.

Blazor Server aplicativos geralmente são executados no servidor rapidamente.

Blazor WebAssembly aplicativos são executados usando o tempo de execução do .NET para WebAssembly, que é mais lento do que a execução direta na plataforma.

Código do aplicativo seguro e privado no servidor

Manter o código do aplicativo de forma segura e privada no servidor é um recurso interno de componentes renderizados para o modelo de hospedagem Blazor Server. Os componentes renderizados usando os modelos de hospedagem Blazor WebAssembly ou Blazor Hybrid podem usar APIs baseadas em servidor para acessar funcionalidades que devem ser mantidas privadas e seguras. Aplicam-se as considerações para desenvolver e manter APIs baseadas em servidor descritas na seção Acesso direto ao servidor e aos recursos de rede. Se o desenvolvimento e a manutenção de APIs baseadas em servidor não forem desejáveis para manter o código seguro e privado do aplicativo, renderize componentes para o modelo de hospedagem Blazor Server.

Manter o código do aplicativo de forma segura e privada no servidor é um recurso interno do Blazor Server. Blazor WebAssembly e Blazor Hybrid aplicativos podem usar APIs baseadas em servidor para acessar funcionalidades que devem ser mantidas privadas e seguras. Aplicam-se as considerações para desenvolver e manter APIs baseadas em servidor descritas na seção Acesso direto ao servidor e aos recursos de rede. Se o desenvolvimento e a manutenção de APIs baseadas em servidor não forem desejáveis para manter o código de aplicativo seguro e privado, adote o modelo de hospedagem Blazor Server.

Manter o código do aplicativo de forma segura e privada no servidor é um recurso interno do Blazor Server. Blazor WebAssembly aplicativos podem usar APIs baseadas em servidor para acessar funcionalidades que devem ser mantidas privadas e seguras. Aplicam-se as considerações para desenvolver e manter APIs baseadas em servidor descritas na seção Acesso direto ao servidor e aos recursos de rede. Se o desenvolvimento e a manutenção de APIs baseadas em servidor não forem desejáveis para manter o código de aplicativo seguro e privado, adote o modelo de hospedagem Blazor Server.

Execute aplicativos off-line depois de baixado

Os aplicativos Blazor WebAssembly autônomos criados como aplicativos Web progressivos (PWAs) e aplicativos Blazor Hybrid podem ser executados offline, o que é particularmente útil quando os clientes não conseguem se conectar à Internet. Os componentes renderizados para o modelo de hospedagem Blazor Server não são executados quando a conexão com o servidor é perdida. Se um aplicativo precisar ser executado offline, Blazor WebAssembly e Blazor Hybrid autônomos são as melhores opções.

Blazor WebAssembly aplicativos criados como Progressive Web Apps (PWAs) e aplicativos Blazor Hybrid podem ser executados offline, o que é particularmente útil quando os clientes não conseguem se conectar à Internet. Blazor Server aplicativos não são executados quando a conexão com o servidor é perdida. Se um aplicativo precisar ser executado offline, Blazor WebAssembly e Blazor Hybrid são as melhores opções.

Blazor WebAssembly aplicativos podem ser executados offline, o que é particularmente útil quando os clientes não conseguem se conectar à Internet. Blazor Server aplicativos não são executados quando a conexão com o servidor é perdida. Se um aplicativo precisar ser executado offline, Blazor WebAssembly é a melhor escolha.

Hospedagem de site estático

A hospedagem de sites estáticos é possível com aplicativos Blazor WebAssembly autônomos porque eles são baixados para clientes como um conjunto de arquivos estáticos. Os aplicativos autônomos não exigem que um servidor execute código do lado do servidor para baixar e executar e podem ser entregues por meio de um de Rede de Distribuição de Conteúdo (CDN) (por exemplo, CDN do Azure).

Embora as aplicações Blazor Hybrid sejam compiladas em um ou mais ativos de implementação autossuficientes, os ativos geralmente são fornecidos aos clientes através de uma loja de aplicações de terceiros. Se a hospedagem estática for um requisito do aplicativo, selecione Blazor WebAssemblyindependente.

Descarrega o processamento para os clientes

Os componentes renderizados usando os modelos de hospedagem Blazor WebAssembly ou Blazor Hybrid são executados em clientes e, portanto, descarregam o processamento para os clientes. Os componentes renderizados para o modelo de hospedagem Blazor Server são executados em um servidor, de modo que a demanda de recursos do servidor normalmente aumenta com o número de usuários e a quantidade de processamento necessária por usuário. Quando é possível descarregar a maior parte ou todo o processamento de um aplicativo para clientes e o aplicativo processa uma quantidade significativa de dados, Blazor WebAssembly ou Blazor Hybrid é a melhor escolha.

Blazor WebAssembly e Blazor Hybrid aplicativos são executados em clientes e, portanto, descarregam o processamento para os clientes. Blazor Server aplicativos são executados em um servidor, portanto, a demanda de recursos do servidor normalmente aumenta com o número de usuários e a quantidade de processamento necessária por usuário. Quando é possível descarregar a maior parte ou todo o processamento de um aplicativo para clientes e o aplicativo processa uma quantidade significativa de dados, Blazor WebAssembly ou Blazor Hybrid é a melhor escolha.

Blazor WebAssembly aplicações são executadas em clientes e, portanto, transferem o processamento para os clientes. Blazor Server aplicativos são executados em um servidor, portanto, a demanda de recursos do servidor normalmente aumenta com o número de usuários e a quantidade de processamento necessária por usuário. Quando é possível descarregar a maior parte ou todo o processamento de um aplicativo para clientes e o aplicativo processa uma quantidade significativa de dados, Blazor WebAssembly é a melhor escolha.

Acesso total aos recursos nativos do cliente

Blazor Hybrid aplicativos têm acesso total aos recursos nativos da API do cliente por meio de estruturas de aplicativos nativos do .NET. Em aplicações Blazor Hybrid, os componentes Razor funcionam diretamente na aplicação nativa, não no WebAssembly. Quando os recursos completos do cliente são um requisito, Blazor Hybrid é a melhor escolha.

Implantação baseada na Web

Blazor Web Apps são atualizados na próxima atualização do aplicativo a partir do navegador.

Blazor Hybrid aplicativos são aplicativos cliente nativos que normalmente exigem um instalador e um mecanismo de implantação específico da plataforma.

Definindo o modelo de hospedagem de um componente

Para definir o modelo de hospedagem de um componente como Blazor Server ou Blazor WebAssembly em tempo de compilação ou dinamicamente em tempo de execução, defina seu modo de renderização . Os modos de renderização são totalmente explicados e demonstrados no ASP.NET Core Blazor modos de renderização artigo. Não recomendamos que salte deste artigo diretamente para o artigo modos de renderização sem ler o conteúdo dos artigos entre eles. Por exemplo, os modos de renderização são mais facilmente compreendidos ao examinar exemplos de componentes Razor, mas a estrutura e a função básicas do componente Razor só são tratadas quando se chega ao artigo sobre fundamentos do ASP.NET Core Blazor. Também é útil aprender sobre os modelos de projeto e as ferramentas do antes de trabalhar com os exemplos de componentes no artigo Modos de renderização .