Mais um Framework SPA e desta vez é da Microsoft! Conheça o Blazor

Existem diversas opções de frameworks SPA disponíveis e é difícil saber escolher qual é o melhor, agora a Microsoft está investindo em seu próprio framework SPA e ele é bem diferente dos demais. Conheça o Blazor!

Blazor = Browser + Razor

Blazor. (Browser + Razor).
O nome é interessante mas o que o Blazor tem de inovação é mais interessante ainda!

O que é o Blazor?

O Blazor é um framework Web baseado nas tecnologias Web já existentes como HTML e CSS mas usa C# e Razor ao invés de JavaScript.

Como assim? E como o browser vai entender .NET?

O Blazor roda no browser via WebAssembly o que é um de seus maiores diferenciais!

Para quem não conhece o WebAssembly o que tudo indica será o futuro da Web. É como se o Browser funcionasse como uma máquina virtual rodando um código binário (WASM) que é quase tão rápido como código nativo de máquina e possui performance muito superior ao JavaScript.

O WebAssembly está sob a responsabilidade do W3C e já é suportado pela maioria dos browsers modernos.

É possível rodar OpenGL, Banco de dados e etc. Inclusive o engine Unreal 4 já foi portado para WebAssembly assim como o .NET Core está passando pela portabilidade.

Hey Desenvolvedor Web! É melhor começar a ficar de olho nisso hein?

Por que usar .NET no Browser?

O desenvolvimento da Web melhorou de muitas maneiras ao longo dos anos, mas a construção de aplicativos web modernos ainda representa desafios. O uso do .NET no navegador oferece muitas vantagens que podem ajudar a tornar o desenvolvimento web mais fácil e mais produtivo:

  • Estável e consistente: o .NET oferece APIs padrão, ferramentas e infraestrutura de construção em todas as plataformas .NET que são estáveis, ricas em recursos e fáceis de usar.
  • Linguagens inovadoras modernas: linguagens .NET como C# e F# tornam a programação mais fácil e continuam melhorando com novos recursos inovadores na linguagem.
  • Ferramentas líderes da indústria: a família de produtos Visual Studio oferece uma excelente experiência de desenvolvimento .NET no Windows, Linux e MacOS.
  • Rápido e escalável: o .NET possui um longo histórico de desempenho, confiabilidade e segurança para desenvolvimento web no servidor. Usar o .NET como um Stack completo facilita a criação de aplicativos rápidos, confiáveis e seguros.

O que o Blazor oferece?

O Blazor é um projeto experimental, recém anunciado pela Microsoft como parte do Stack do ASP.NET.

O Blazor possui todas as features de um framework SPA moderno:

  • Utiliza o conceito de Component Model
  • Roteamento
  • Layouts
  • Formulários e Validações
  • Dependency Injection nativo
  • Interoperabilidade com JavaScript
  • Atualização automática do browser durante desenvolvimento
  • Renderização server-side
  • Debug em .NET diretamente pela IDE e pelo browser
  • IntelliSense e Tooling
  • Realiza o publishing diminuindo (comprimindo) o tamanho da App

PS – Se o browser não for compatível com WebAssembly o Blazor tem a capacidade de oferecer o asm.js permitindo a mesma experiência até no IE 9 por exemplo.

Futuro da Web?

Enquanto todos os frameworks SPA de mercado são baseados em JavaScript (ou TypeScript) o Blazor entrega um código nativo rodando em performance superior e com muito mais segurança.

Se escrever um código em TypeScript para transpilar JS já é muito mais agradável do que escrever JS puro, imagine poder escrever sua aplicação inteira em .NET?

O JavaScript é atualmente considerado o Assembly da internet, mas na minha visão com a adoção do WebAssembly isto muda totalmente! Até por que qualquer linguagem pode gerar WebAssembly e se beneficiar de todas suas vantagens.

A pergunta que fica:
Qual será o futuro do JavaScript?

Minhas impressões sobre a adoção do Blazor

Pontos positivos:

  • Entrega WebAssembly (já sabemos que é vantagem)
  • Possui todas as features de um framework SPA
  • Permite a reciclagem de conhecimento uma vez que usa .NET com C# e Views em Razor
  • Facilita a curva de aprendizado e de entrega para times que desejam entregar aplicações Web que rodam no client utilizando uma arquitetura baseada em REST.
  • Server-side rendering nativo, ótimo para SEO.
  • DNA! DOT NET Anywhere (.NET em todos os lugares).

Pontos negativos:

  • É super novo e experimental, não sabemos se terá continuidade ou adoção.
  • É baseado em .NET o que restringe desenvolvedores de outras plataformas em aderir (pelo menos rapidamente).
  • Não possui componentes prontos assim como existem para Angular e React (problemas de adotar um framework novo)
  • Não tem suporte da comunidade e 0 documentação.
  • Não funciona 100% no Visual Studio ou no Code (falta tooling).

Notem que a maioria dos pontos negativos é devido ao Blazor ser extremamente novo, com o tempo e o sucesso na adoção (e bastante investimento da Microsoft) isto tende a mudar.

O único ponto imutável é que o Blazor é baseado em .NET. Enquanto um desenvolvedor Angular pode mudar para React ou Vue sem ter que aprender uma nova linguagem o mesmo não acontecerá com o Blazor, o que pode ser um limitador para desenvolvedores de outras plataformas.

De outro lado desenvolvedores WebForms, MVC, Xamarin e etc poderão se beneficiar imediatamente e começar a entregar aplicações SPA com uma performance e segurança superior.

Isto é sério mesmo?

Entregar o .NET Core por completo pela Web com cerca de 300 KB?
Até mesmo o novo Angular pesa um pouco mais que isso!

Para saber mais

Assista essa demo de TODO List com Blazor (é muito interessante)

O projeto é OpenSource (Microsoft <3)
https://github.com/aspnet/Blazor/

E para finalizar! O que acham do Blazor e WebAssembly?


Vamos continuar a troca de experiências, deixe seu comentário abaixo. Se gostou e concorda com o artigo, compartilhe com seus colegas para transmitirmos o conhecimento para o máximo de pessoas possíveis.

30 pensou em “Mais um Framework SPA e desta vez é da Microsoft! Conheça o Blazor

  1. Eduardo, boa tarde. Vai precisar do node.js? Se sim qual será o papel dele? Acha que a microsoft vai fazer com que não precise dele?

    • Nas dependências consta o Node sim, não sei onde que ele entra se é no processamento de httpclient ou etc. Não estudei tão a fundo assim por que isso ainda vai mudar muito.

  2. Acho que o Blazor tem tudo para dar certo, ainda mais na questão de componentes temos 2 grandes empresas que investem pesado na criação de componentes ricos para .NET que é o DevExpress e a Telerik. Tudo caminha para aplicações web mais performáticas, escaláveis e com comportamentos melhores.
    Excelente artigo!

  3. Cara, curti a ideia de poder usar c# na stack inteira. É um tiro de um player de respeito contra outros frameworks já consolidados (com grandes empresas apoiando tbm) .
    Mas acredito que só irá atrair quem já está na no mundo Microsoft.

  4. Boa Noite Eduardo ,
    Eduardo é tudo que precisamos chega das gambiarras de javascripts, angular, etc
    não chamo isso de framework, mas de uma nova tecnologia, onde posso utilizar meu conhecimentos em c# do inicio ao fim de uma aplicação web, mas acredito que quem utiliza já os produtos da Microsoft vai aderir em peso esta nova tecnologia.

    • Que se tudo der certo lancem oficialmente, com base na experiência em novos produtos Microsoft.

  5. Estou muito empolgado com Blazor. Sei que eh uma aposta pro longo prazo, mas estou confiante. Tão confiante que vou fazer uma meta de 30 dias.

    Minha meta eh fazer 2 horas de estudo por dia. E ir compartilhando e trocando conhecimento com a galera do grupo BLAZOR no whatsapp. Segue o link de convite.

    https://chat.whatsapp.com/14Huka0HROE3WCw52yvWxV

    • RAFFAELLO DAMGAARD NEVES manda o link do grupo de BLAZOR para Eu poer participar também, obrigado.

Os comentários estão fechados.