Fullstack C# com Blazor
Gustavo Bellini Bigardi
https://www.facebook.com/jundevelopers/
https://www.meetup.com/pt-BR/JunDevelopers/
Contexto
Blazor é um framework, criado e mantido
pela Microsoft, disponível no GitHub, onde
utilizamos HTML, CSS e C# para produzir
aplicações Web baseadas em WebAssembly.
O projeto esteve em fase experimental, ou
seja, podendo ter continuidade ou não do
desenvolvimento e suporte pela Microsoft
até este mês, Abril/2019, quando teve seu
status modificado para Preview, ou seja, com
seu desenvolvimento e suporte oficialmente
garantidos pela Microsoft agora.
Web
Assembly
WebAssembly é uma espécie de novo código
de byte. WebAssembly – ou abreviado:
“wasm” – é uma nova sintaxe para código
binário seguro de baixo nível. Ele é definido
como “um formato portátil para execução,
carregamento, verificação e exibição de
modelos de código”, projetado para servir
como um alvo de compilação para a web.
.NET CLR
C#
VB.NET
...
Compilador C#
Compilador VB.NET
Compilador Y...
Código CIL Código Nativo
CLR
Source Code Bytecode Native Code
Compile Time Runtime
BLAZOR - WEBASSEMBLY
.cs
.cshtml
Compilação para
assemblies (DLL) .NET
Browser
App.dll
.NET
mscorlib.dll,
System.Core.dll, etc.
WebAssembly
mono.wasm
Blazor
Web Assembly
É como se o Browser funcionasse como uma
máquina virtual, como o .NET ou JVM, que
executa de forma nativa um código binário
(WASM), que é quase tão rápido como
código nativo e com performance superior
ao JavaScript.
Arquitetura
Blazor
Client-side
Arquitetura
Blazor
Client-side
Arquitetura
Blazor
Server-side
SUPORTE
O padrão do WebAssembly é suportado e mantido já faz algum
tempo pelo W3C.
https://www.w3.org/TR/wasm-core-1/
Quanto ao Blazor, agora temos garantia de continuidade do
framework, dado o anúncio oficial da Microsot para fase Preview
https://devblogs.microsoft.com/aspnet/blazor-now-in-official-
preview/
E quanto ao Blazor Server-Side, a.k.a Razor Components, está
previsto para a versão release do .NET Core 3.0
E por que utilizar .NET no browser?
Javascript...
Vai substituir o
JavaScript?
Vai ser
substituído?
C#
everywhere!
JS Interop!
.NET
Standard!
E o que temos de novidades no último release?
O que muda com a fase preview e qual o roadmap?
NOMENCLATURA E VERSIONAMENTO
Antes deste ultimo release, tínhamos o Blazor como versão client-side e
Razor Components como server-side. A partir de agora, a nomenclatura
centraliza-se no Blazor, da seguinte forma:
• Server-side Blazor – Antigo Razor Components, que executa no
servidor e comunica-se com o browser via SignalR
• Client-side Blazor - O já conhecido modelo que é executado no
browser através do WebAssembly
Também a partir de agora, o Blazor é parte do .NET Core 3.0,
acompanhando as versões do framework, ao invés dos releases 0.*.*
como na fase experimental.
NOVIDADES DO ÚLTIMO
RELEASE
• Templates e Componentes agora usam a extensão .razor
• _Imports.razor – Arquivo com importação de namespaces “globais”
• Componentes com escopo através do bloco @using
• Novo template para criar um componente
• Novos ícones do framework
• Suporte do Visual Studio Code ao Blazor, com a última versão da
extensão C#
DOCUMENTAÇÃO
https://blazor.net ou https://dotnet.microsoft.com/apps/aspnet/web-
apps/client
O QUE E QUANDO SERÁ ENTREGUE
• Server-side Blazor será disponibilizado como parte do .NET Core 3.0,
quando o mesmo for lançado oficialmente em versão final, coforme
anunciado em Outubro de 2018.
• Client-side Blazor não será entregue como parte do .NET Core 3.0,
pelo menos não inicialmente, mas com a muduança de fase do
projeto de experimental para preview, existe um comprometimento
da Microsoft de liberar o Client-side Blazor em um release future do
.NET Core. Até lá, teremos novas versões preview sendo liberadas,
• Com cada release em preview do .NET Core 3.0, novas versões
preview do Blazor, tanto server como client-side, serão liberadas
também.
https://github.com/AdrienTorris/awesome-blazor
AWESOME BLAZOR
Obrigado!
Perguntas?

Fullstack C# com Blazor

  • 1.
  • 2.
  • 3.
  • 4.
    Contexto Blazor é umframework, criado e mantido pela Microsoft, disponível no GitHub, onde utilizamos HTML, CSS e C# para produzir aplicações Web baseadas em WebAssembly. O projeto esteve em fase experimental, ou seja, podendo ter continuidade ou não do desenvolvimento e suporte pela Microsoft até este mês, Abril/2019, quando teve seu status modificado para Preview, ou seja, com seu desenvolvimento e suporte oficialmente garantidos pela Microsoft agora.
  • 5.
    Web Assembly WebAssembly é umaespécie de novo código de byte. WebAssembly – ou abreviado: “wasm” – é uma nova sintaxe para código binário seguro de baixo nível. Ele é definido como “um formato portátil para execução, carregamento, verificação e exibição de modelos de código”, projetado para servir como um alvo de compilação para a web.
  • 6.
    .NET CLR C# VB.NET ... Compilador C# CompiladorVB.NET Compilador Y... Código CIL Código Nativo CLR Source Code Bytecode Native Code Compile Time Runtime
  • 7.
    BLAZOR - WEBASSEMBLY .cs .cshtml Compilaçãopara assemblies (DLL) .NET Browser App.dll .NET mscorlib.dll, System.Core.dll, etc. WebAssembly mono.wasm
  • 8.
    Blazor Web Assembly É comose o Browser funcionasse como uma máquina virtual, como o .NET ou JVM, que executa de forma nativa um código binário (WASM), que é quase tão rápido como código nativo e com performance superior ao JavaScript.
  • 9.
  • 10.
  • 11.
  • 12.
    SUPORTE O padrão doWebAssembly é suportado e mantido já faz algum tempo pelo W3C. https://www.w3.org/TR/wasm-core-1/ Quanto ao Blazor, agora temos garantia de continuidade do framework, dado o anúncio oficial da Microsot para fase Preview https://devblogs.microsoft.com/aspnet/blazor-now-in-official- preview/ E quanto ao Blazor Server-Side, a.k.a Razor Components, está previsto para a versão release do .NET Core 3.0
  • 13.
    E por queutilizar .NET no browser?
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
    E o quetemos de novidades no último release? O que muda com a fase preview e qual o roadmap?
  • 21.
    NOMENCLATURA E VERSIONAMENTO Antesdeste ultimo release, tínhamos o Blazor como versão client-side e Razor Components como server-side. A partir de agora, a nomenclatura centraliza-se no Blazor, da seguinte forma: • Server-side Blazor – Antigo Razor Components, que executa no servidor e comunica-se com o browser via SignalR • Client-side Blazor - O já conhecido modelo que é executado no browser através do WebAssembly Também a partir de agora, o Blazor é parte do .NET Core 3.0, acompanhando as versões do framework, ao invés dos releases 0.*.* como na fase experimental.
  • 22.
    NOVIDADES DO ÚLTIMO RELEASE •Templates e Componentes agora usam a extensão .razor • _Imports.razor – Arquivo com importação de namespaces “globais” • Componentes com escopo através do bloco @using • Novo template para criar um componente • Novos ícones do framework • Suporte do Visual Studio Code ao Blazor, com a última versão da extensão C#
  • 23.
  • 24.
    O QUE EQUANDO SERÁ ENTREGUE • Server-side Blazor será disponibilizado como parte do .NET Core 3.0, quando o mesmo for lançado oficialmente em versão final, coforme anunciado em Outubro de 2018. • Client-side Blazor não será entregue como parte do .NET Core 3.0, pelo menos não inicialmente, mas com a muduança de fase do projeto de experimental para preview, existe um comprometimento da Microsoft de liberar o Client-side Blazor em um release future do .NET Core. Até lá, teremos novas versões preview sendo liberadas, • Com cada release em preview do .NET Core 3.0, novas versões preview do Blazor, tanto server como client-side, serão liberadas também.
  • 26.
  • 27.