Campanha Founders60 vagas (30 vitalícias + 30 por 12 meses) a R$ 59,90/mês, com pagamento anual — lançamento oficial em 01/03/2026. Garanta prioridade Lista antecipada aberta para os primeiros Founders — cadastre seu e-mail, garanta sua vaga sem cobrança automática e conte com 30 dias de reembolso após a ativação do ambiente. Quero ser Founder

Série Boas Práticas .NET em Produção • FoundryShip Cloud

Blazor Server vs Blazor WebAssembly: qual modelo faz mais sentido para o seu projeto?

A partir do .NET 8, a pergunta “Blazor Server ou Blazor WebAssembly?” evoluiu para: qual modo de renderização do Blazor Web App usar em cada página e componente? Você pode renderizar tudo no servidor, no navegador ou combinar os dois.

Este guia resume, em linguagem prática, os modos de renderização do Blazor Web App e como escolher entre Server estático, Server interativo, WebAssembly interativo e Interactive Auto para aplicações em produção — inclusive rodando em clouds especializadas como a FoundryShip.

1. O motor Razor e os modos de renderização do Blazor Web App

Blazor é o modelo de UI da ASP.NET Core baseado em componentes Razor. Cada componente é um arquivo .razor que mistura HTML e C#, e é compilado em uma classe .NET que constrói uma árvore de elementos de interface.

O motor Razor gera código C# fortemente tipado para cada componente. Em tempo de execução, o framework compara a árvore de renderização atual com a anterior e aplica apenas as diferenças no DOM – semelhante a um “virtual DOM”, mas com a infraestrutura do .NET por trás.

A partir do Blazor Web App (.NET 8+), entra um conceito central: modo de renderização. Ele define onde o componente roda e como a interatividade é entregue:

  • Renderização estática no servidor – HTML é gerado no servidor, enviado e pronto. Sem interatividade Blazor.
  • Interactive Server – o HTML é prerenderizado no servidor e a interatividade é habilitada via SignalR.
  • Interactive WebAssembly – HTML inicial vem do servidor, mas a interatividade roda no navegador via WebAssembly.
  • Interactive Auto – começa no servidor e tenta usar WebAssembly; se não puder, cai para o modo server interativo.

Esses modos podem ser aplicados no nível da aplicação (em App.razor) ou por componente, com a diretiva @rendermode, o que permite misturar estratégias na mesma aplicação.

@page "/filmes"
@rendermode InteractiveServer

Filmes em destaque

@if (movies is null) { <p>Carregando...</p> } else { <ul> @foreach (var movie in movies) { <li>@movie.Title (@movie.Year)</li> } </ul> } @code { private List<Movie>? movies; protected override async Task OnInitializedAsync() => movies = await MovieService.GetLatestAsync(); }

O mesmo componente pode ser renderizado como página estática, como UI interativa no servidor ou como UI interativa no navegador — basta trocar o @rendermode e ajustar a arquitetura.

Entre para a lista de Founders

Quer ser avisado quando liberarmos o link de compra no dia 01/03/2026 e ter prioridade para uma das 60 vagas Founders a R$ 59,90/mês (pagamento anual)? Deixe seu e-mail abaixo. Sem spam, só os avisos importantes sobre o lançamento.

Você pode cancelar o recebimento a qualquer momento.

2. Renderização no servidor: estática vs Interactive Server

2.1 Server estático – páginas rápidas, sem interatividade Blazor

No modo estático, o Blazor gera HTML no servidor e envia para o navegador. Não há conexão em tempo real nem acompanhamento de estado da UI. A página se comporta como um site Razor tradicional: ótima para SEO, landing pages, artigos e telas públicas.

  • Sem circuito Blazor – menor consumo de memória no servidor.
  • Excelente para conteúdo (marketing, blog, documentação).
  • Perfeito para combinar com componentes interativos pontuais em outras rotas.

2.2 Interactive Server – experiência de app de desktop, código no servidor

No modo Interactive Server, o componente é prerenderizado no servidor e depois se conecta por SignalR. A UI permanece no navegador, mas toda lógica de componente e estado vivem no servidor, dentro de um “circuito” por usuário.

  • Download inicial leve – apenas HTML/CSS/JS mínimos.
  • Estado da UI no servidor – ideal para regras de negócio pesadas.
  • Debug no backend – você depura o fluxo completo em C# no servidor.
  • Depende de conexão estável entre cliente e data center.
@page "/dashboard"
@rendermode InteractiveServer

Painel do escritório

<Counter /> @* componente interativo no servidor *@

Em uma cloud como a FoundryShip, isso significa dimensionar bem o cluster para suportar o número de circuitos simultâneos por tenant: quantidade de conexões WebSocket, memória e CPU disponíveis para cada app Blazor Server.

Uma combinação comum é: páginas públicas estáticas (marketing, site) e área logada em Interactive Server para telas de ERP, jurídico, financeiro e outros backoffices internos.

3. Interactive WebAssembly: a UI .NET rodando no navegador

No modo Interactive WebAssembly, o runtime .NET, as DLLs da aplicação e os componentes Razor são baixados para o navegador. O HTML inicial ainda pode ser prerenderizado no servidor, mas a interatividade passa a rodar dentro do browser, em WebAssembly.

  • Primeiro carregamento maior – o usuário baixa runtime + assemblies.
  • Depois disso, as interações acontecem localmente, com menos impacto de latência.
  • O servidor fica focado em APIs, banco e cache, o que ajuda a escalar.
  • Permite cenários com funcionalidade offline usando cache e storage local.
@page "/analytics"
@rendermode InteractiveWebAssembly

Dashboard interativo

<ChartsComponent Data="AnalyticsData" />

Em aplicações B2C com muitos usuários (portais de clientes, e-commerce, SaaS público), esse modelo geralmente reduz o custo de CPU por usuário no servidor, já que parte do trabalho é feito no dispositivo do cliente.

Rodando na FoundryShip, você dimensiona principalmente os serviços de API (compute, PostgreSQL, Redis, mensageria) e muito menos o número de conexões persistentes por usuário.

4. Interactive Auto e modelos híbridos no Blazor Web App

O modo Interactive Auto combina o melhor dos mundos: o componente é prerenderizado no servidor e, depois, o runtime decide se a interatividade vai rodar em WebAssembly ou em Server, dependendo do ambiente do usuário.

  • Fallback inteligente – se o navegador não suportar WebAssembly adequadamente, o app pode cair para Interactive Server.
  • Experiência consistente – você mantém a mesma base de componentes, mas adapta a execução ao contexto do usuário.
  • Excelente para apps com público muito diverso (desktop corporativo, mobile, navegadores antigos).
@page "/app"
@rendermode InteractiveAuto

<LayoutPrincipal>
    <Outlet />
</LayoutPrincipal>
    

Na prática, você pode montar uma estratégia híbrida:

Páginas e modos sugeridos

  • Landing pages e blog: Server estático.
  • Área administrativa interna: Interactive Server.
  • Dashboards ricos para clientes: Interactive WebAssembly.
  • App público heterogêneo: Interactive Auto.

O que você otimiza em cada um

  • Server estático: SEO e performance de primeiro load.
  • Interactive Server: produtividade do time .NET e regras de negócio no backend.
  • Interactive WASM: escala por usuário e responsividade da UI.
  • Interactive Auto: experiência consistente em ambientes variados.

Na FoundryShip, você pode experimentar esses modos em ambientes separados (dev, homolog, produção), medir consumo de recursos por render mode e, depois, padronizar a arquitetura que faz mais sentido para o seu SaaS.

Entre para a lista de Founders

Quer ser avisado quando liberarmos o link de compra no dia 01/03/2026 e ter prioridade para uma das 60 vagas Founders a R$ 59,90/mês (pagamento anual)? Deixe seu e-mail abaixo. Sem spam, só os avisos importantes sobre o lançamento.

Você pode cancelar o recebimento a qualquer momento.