Clique e receba as novidades quentinhas no Telegram

Blazor é um framework experimental de UI (Interface de Usuário) da web baseada em C #, Razor e HTML que é executado no navegador via WebAssembly. Blazor promete simplificar grandemente a tarefa de construir aplicativos de página única rápidos e bonitos que sejam executados em qualquer navegador. Fazendo isso, permitirá que os desenvolvedores criem aplicativos da Web baseados em .NET que funcionem no lado do cliente em navegadores usando padrões abertos da web.

Se você já usa o .NET, tudo fica mais fácil: você poderá usar suas habilidades para desenvolvimento baseado em navegador, além de cenários existentes para serviços baseados em servidor e na nuvem, aplicativos nativos de celular / desktop e jogos. Se você ainda não usa o .NET, a Microsoft acredita que os benefícios de produtividade e simplicidade da Blazor sejam suficientemente convincentes para que você tente este novo Framework.

O que é Blazor?

Blazor é a mistura de Browser + Razor = Blazor. O Blazor é um Framework Web baseado nas tecnologias web padrão como a HTML e CSS mas, utiliza C# ao invés de JavaScript.

O navegador vai entender .NET?

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

WebAssembly muda a Web

Executar o .NET no navegador é possível com WebAssembly , um novo padrão da web para um “formato portátil, tamanho e tempo de carga adequado para compilação na web.” A WebAssembly permite formas fundamentalmente novas de escrever aplicativos da web. O código compilado para o WebAssembly pode ser executado em qualquer navegador a velocidades nativas. Esta é a peça fundamental necessária para criar um tempo de execução do .NET que pode ser executado no navegador. Não é necessário nenhum plug-in ou transpilação. Você executa montagens .NET normais no navegador usando um tempo de execução .NET baseado na Web.

Em agosto passado, a equipe Xamarin da Microsoft anunciou seus planos para trazer um tempo de execução do .NET (Mono) para a web usando o WebAssembly e têm feito um progresso constante . O projeto Blazor baseia-se em seu trabalho para criar uma estrutura de aplicativos de uma única página do lado do cliente, escrita em .NET.

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

O WebAssembly está sob a responsabilidade do W3C e já é suportado pelos quatro grandes navegadores: Chrome, Edge, Firefox e Webkit (Safari).

É 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.

A Blazor terá todas as características de uma moderna estrutura web, incluindo:

  • Um modelo de componente para construir UI composável
  • Roteamento
  • Layouts
  • Formulários e validação
  • Injeção de dependência
  • Interoperabilidade JavaScript
  • Recarga ao vivo no navegador durante o desenvolvimento
  • Processamento do lado do servidor
  • Depuração completa do .NET tanto nos navegadores quanto no IDE
  • Rich IntelliSense e ferramentas
  • Possibilidade de rodar em navegadores mais antigos (não-WebAssembly) via asm.js
  • Recorte de tamanho de publicação e aplicativo

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.

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, com a adoção do WebAssembly isto muda totalmente! Até por que, qualquer linguagem pode gerar WebAssembly e se beneficiar de todas as suas vantagens.

Impressões sobre a adoção do Blazor

Pontos positivos:

  • Entrega WebAssembly (O que é uma 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!

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

Não sabemos.

A Microsoft está trabalhando no .NET para segmentar o WebAssembly para que possamos nos livrar da loucura do JavaScript? Resposta: Sim.

Para saber mais

O projeto é todo OpenSource, veja um demo clicando aqui:

Fonte: Eduardo Pires e Microsoft