Blazor, um novo Experimento! .NET Rodando direto no navegador!
Existem vários frameworks SPA por ai, porém o Blazor não veio para ser mais um na luta por um lugar no coração dos Devs.
Blazor é um novo experimento da Microsoft, um framework para UI baseado em C#, Razor e HTML que é executado no navegador através de WebAssembly.
Microsoft pretende entregar uma forma de simplificar e agilizar a tarefa de criação de SPAs que executam no navegador. Isso será feito possibilitando a escrita de aplicações baseadas em .NET que serão executadas no lado cliente via navegador utilizando os padrões web.
Blazor será executado no navegador via WebAssembly
Como é isso mesmo ? .Net Executando no navegador?
Executar .Net no navegador é possível graças à relativamente nova tecnologia web padronizada, o WebAssembly.
WebAssembly é um “formato portátil, com tamanho e tempo de carga adequado para compilação web”. Código compilado para WebAssembly pode ser executado no navegador em velocidade nativa.
Para executar os binários de .NET no navegador, é utilizado o .NET runtime (Mono) que foi compilado para WebAssembly.
Por que eu deveria me importar com WebAssembly e .Net no navegador ?
Vamos inicialmente rever alguns pontos.
WebAssembly já um padrão w3c. WebAssembly se trata de uma Web mais rápida.
WebAssembly nos fornece um formato binário para web. Fornecerá ao JavaScript uma opção “Nitro” para funcionalidades criticas de performance, como jogos e processamentos de vídeo.
Também será fácil portar código escrito em linguagens rápidas, como C ou C++ para a Web. Este ponto é onde algumas pessoas podem pensar que sinaliza o fim do JavaScript, mas na verdade já surgiram outras ferramentas como Emscripten, e não mudou a dominância do JavaScript na Web.
No momento, WebAssembly tende a ajudar o JavaScrip, mais do que machucá-lo, tornando a web um forte competidor ao nativo.
JavaScript e Node.js continuam crescendo rápido, estude eles. Com a ajuda do WebAssembly, poderá surgir uma próxima geração de Editores de videos e Video Games direto no navegador.
Agora vamos ao .NET
Já vimos que o WebAssembly é forte, e o Blazor utiliza esta força para entregar um framework de SPA que alguns benefícios retirados diretamente do anúncio da Microsoft em tradução livre:
- 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.
Blazor terá todas as funcionalidades de um SPA moderno:
- Modelo de componentes para criar interface
- Rotas
- Layouts
- Formulários e Validações
- Injeção de dependência
- Interoperabilidade com JavaScript
- Atualização automática do browser durante desenvolvimento
- Renderização do lado servidor
- Debugging completo .NET na IDE e no navegador
- Rico IntelliSense e ferramentaria
- Habilidade de executar em navegadores antigos sem WebAssembly via asm.js
O Blazor está sendo construído de forma independente de linguagem servidor(back-end), então é possível utilizar o Blazor como Framework front-end, no estilo SPA, e qualquer outra linguagem rodando no servidor, como PHP ou Node.js
Se você já é programador .NET, será lindo trabalhar com a mesma linguagem preferida em qualquer lugar! DNA! (Dot Net Anywhere).
O Blazor pode ser trabalhado facilmente em conjunto com o JavaScript, graças a já prevista interoperabilidade entre ambos.
Como iniciar? Quero criar meu próximo projeto com Blazor!
Vamos devagar.
A maioria de nós, deveríamos relaxar e esperar para o primeiro pre-alpha ser liberado. É muito importante nesse momento frisar que é um experimento do time ASP.NET e não é um produto ainda.
Para quem quer se aventurar e ajudar a reportar bugs, segue os passos para testar o Blazor:
Requisitos:
- Visual Studio 2017.3 ou superior
- .NET Core SDK 2.0 ou superior
- Template para o Visual Stutio (baixe a ultima versão)
Logo postarei um tutorial voltado diretamente a criação de um app no Visual Studio.
Boa sorte!
Fontes:
https://blogs.msdn.microsoft.com/webdev/2018/02/06/blazor-experimental-project/
http://blog.stevensanderson.com/2017/11/05/blazor-on-mono/
https://www.quora.com/Should-web-developers-studying-JavaScript-and-its-frameworks-Node-JS-learn-WebAssembly-and-ES6-independent-from-these-and-what-are-these-two%E2%80%99s-connection-with-the-former-programs