Já é hora de colocar aplicações “Blazor” em produção?

Elemar Júnior

Nos últimos anos, Javascript se firmou como tecnologia onipresente para desenvolvimento de aplicações Web. Gostando ou não da linguagem é difícil desenvolver algo relevante sem empregar algum aspecto da mesma.

Blazor, tecnologia desenvolvida pela Microsoft, de certa forma, é alternativa para a dominância do Javascript para o desenvolvimento Web. Afinal, permite que lógica “cliente” seja implemenada em C#. Isso, aliás, pode ter impacto considerável nos investimentos em capacitação dos times técnicos.

@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;

    private void IncrementCount()
    {
        currentCount++;
    }
}

Para fazer a “mágica” acontecer, Blazor funciona com dois modelos de hosting:

  1. Blazor WebAssembly, com um run-time em C# rodando totalmente em client-side;
  2. Blazor Server, com código e estado da aplicação cliente em server-side, com atualizações de página orquestradas por SignalR.

A opção de hosting adotando WebAssembly ainda está em preview.

WebAssembly

O WebAssembly é um novo tipo de código que pode ser executado em browsers modernos — se trata de uma linguagem de baixo nível como assembly, com um formato binário compacto que executa com performance quase nativa. Tecnologias como Blazor conseguem converter códigos escritos em linguagens tradicionalmente associadas ao server-side, como C#, em código WebAssembly que o browser entende.

O aspecto mais interessante é que a opção de hosting tem pouco impacto sobre a forma como o código é escrito, embora impacte profundamente a dinâmica e os requisitos para a execução de aplicações.

O modelo de execução Blazor no servidor, que já está “pronto”, embora bastante inventivo, tem diversos pontos de atenção que podem ser críticos em produção.

Mesmo usando, geralmente, um protocolo mais leve (WebSocket) o problema da latência ainda existe. Além disso, a aplicação no cliente para de funcionar caso a conexão seja perdida. Para piorar, a gestão do servidor pode ser desafiadora.

Para a maioria dos cenários, entendemos que apenas o modelo de hosting em WebAssembly é recomendável – sobretudo se o objetivo for a substituição simples de Javascript. Como esse modelo ainda está em preview, consideramos Blazor tema fundamental de estudos, mas desaconselhamos sua adoção em produção, até que a opção de hosting com WebAssembly esteja disponível sem restrições, exceto para sistemas com conexão cliente-servidor estável e com poucos usuários.

Em tempo, o MTAC Alexandre Malavasi vem produzindo, consistentemente, ótimos materiais sobre Blazor! Vale a pena conferir. Seu último vídeo, mostra como utilizar Blazor para construção de uma aplicação inteira.

 

Em resumo

O fato
Blazor é uma alternativa mais do que relevante para a dominância de Javascript em “client-side” para aplicações desenvolvidas com ASP.net. Entretanto, infelizmente, o modelo de hosting que emprega WebAssembly ainda está em preview e o modelo que roda código no servidor tem desafios difíceis de superar, principalmente em cenários com demandas de alta escalabilidade.
A recomendação
Encorajamos a adoção imediata de Blazor em cenários mais simples, onde a conexão entre cliente e servidor seja estável, e com poucos usuários simultâneos. Para cenários mais complexos, com muitos usuários, recomendamos aguardar até que a versão com WebAssembly esteja disponível sem restrições.
Os benefícios
A adoção de Blazor pode ter impacto positivo significativo nos custos de qualificação dos times técnicos. Afinal, diminui demanda de especialização em Javascript, permitindo que o time utilize no Backend e no Frontend a mesma linguagem de programação.

Compartilhe este insight:

Comentários

Participe deixando seu comentário sobre este artigo a seguir:

Subscribe
Notify of
guest
6 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Marcio Nizzola
Marcio Nizzola
2 anos atrás

Também não podemos deixar de citar os Posts do Bigardi que tem sido pioneiro nesse assunto https://medium.com/@gbbigardi/construindo-uma-aplica%C3%A7%C3%A3o-web-completa-com-blazor-parte-1-4048f4452278

Elemar Júnior
Elemar Júnior
2 anos atrás

Boa lembrança. Obrigado.

Alessandro de Souza
Alessandro de Souza
2 anos atrás

“OS BENEFÍCIOS
A adoção de Blazor pode ter impacto positivo significativo nos custos de qualificação dos times técnicos. Afinal, diminui demanda de especialização em Javascript, permitindo que o time utilize no Backend e no Frontend a mesma linguagem de programação.”

IMHO o javascript já trás esse benefício. Não seria o caso da MS por o Typescript para rodar no .Net Core para juntar o melhor dos 2 mundos?

Renan Barbosa
Renan Barbosa
2 anos atrás

Blazor é uma aposta muito boa da Microsoft, acho que além da versão ainda com limitação do web assembly ainda teremos que enfrentar a algumas librarys javascript que existem que são muito boas, D3.js é uma delas e que eu gosto muito. Bom, com o sucesso do Blazor a comunidade .NET terá muito trabalho pela frente, isto é incrível.

Elemar Júnior
Elemar Júnior
2 anos atrás

Typescript é um superset de JavaScript. Acha uma boa idéia ter um “JavaScript.net”?

Alessandro de Souza
Alessandro de Souza
2 anos atrás

Eu acho que sim… Por ser tipado e uma linguagem (superset) “de gente grande” creio que uniria bem os 2 mundos: conhecimento da equipe pra usar uma única linguagem de ponta a ponta e a velocidade espetacular do .Net? Acha viável?

AUTOR

Elemar Júnior
Fundador e CEO da EximiaCo atua como tech trusted advisor ajudando empresas e profissionais a gerar mais resultados através da tecnologia.

NOVOS HORIZONTES PARA O SEU NEGÓCIO

Nosso time está preparado para superar junto com você grandes desafios tecnológicos.

Entre em contato e vamos juntos utilizar a tecnologia do jeito certo para gerar mais resultados.

Insights EximiaCo

Confira os conteúdos de negócios e tecnologia desenvolvidos pelos nossos consultores:

Arquitetura de Dados

Insights de um DBA na análise de um plano de execução

Especialista em performance de Bancos de Dados de larga escala
Arquitetura de Software

Estratégias para modernização do legado

Desenvolvedor .NET/NodeJs e especialista em Kafka com experiência em startups e grandes empresas
Infraestrutura e Nuvem

Migração para a nuvem, mais do que mudança tecnológica, implica em mudança da cultura organizacional

Engenheiro de nuvem, arquiteto de software e especialista em Containers e Devops

Acesse nossos canais

Simplificamos, potencializamos e aceleramos resultados usando a tecnologia do jeito certo

EximiaCo 2022 – Todos os direitos reservados

6
0
Queremos saber a sua opinião, deixe seu comentáriox
()
x

Já é hora de colocar aplicações “Blazor” em produção?

Para se candidatar nesta turma aberta, preencha o formulário a seguir:

Condição especial de pré-venda: R$ 14.000,00 - contratando a mentoria até até 31/01/2023 e R$ 15.000,00 - contratando a mentoria a partir de 01/02/2023, em até 12x com taxas.

Tenho interesse nessa capacitação

Para solicitar mais informações sobre essa capacitação para a sua empresa, preencha o formulário a seguir:

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

O seu insight foi excluído com sucesso!

O seu insight foi excluído e não está mais disponível.

O seu insight foi salvo com sucesso!

Ele está na fila de espera, aguardando ser revisado para ter sua publicação programada.

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse nessa solução

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse neste serviço

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

× Precisa de ajuda?