SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
Conceitos Básicos de
Blazor e WebAssembly
O que é o framework Blazor
Blazor é um framework FrontEnd feito para ser desenvolvido utilizando C# e
HTML, é uma alternativa para programadores que dominam a linguagem C#
frente as tecnologias web mais comuns do mercado como Javascript e
Typescript.
Blazor veio para necessariamente substituir
javascript?
Não, o Blazor tem integração com javascript, não é necessário substituir todo
javascript de uma aplicação
Também veio como uma alternativa para trazer mais performance e o uso de
bibliotecas de .net
Linha do tempo do Blazor
Blazor Client-side
vs Blazor Server-side
Client-side Blazor
● A aplicação está rodando como um app WebAssembly diretamente no
browser
● O Código é compilado no servidor e baixado no cliente e executado
localmente
Benefícios
● Roda em todos os browser modernos
● Não necessita de ter o .net instalado no servidor, ter o app compilado no servidor ja é o
suficiente
● Experiência do SPA(single page application)
Desvantagens
● App pode não rodar em broswer mais antigos como versões mais antigas do IE
● O carregamento inicial do app pode levar um pouco mais de tempo
● Suporte ao Debug pode ter uma experiência limitada
Server-side Blazor
● Aplicação é rodada no servidor e é apenas servido páginas HTML para o client
● Comunicação entre client e server utilizando SignalR (Tecnologia da microsoft que
fornece uma comunicação real time permitindo o servidor trazer atualização da aplicação
para o client)
Benefícios
● O download inicial da aplicação é menor que comparado ao client-side
● Funciona com qualquer aplicação Web API
● Suporte ao debug com experiência melhor que no server side
● Ao contrário do client side, o browser não precisa ter suporte ao webassembly
Desvantagens
● Não existe nenhuma lógica no client, qualquer problema momentâneo no servidor pode
atrapalhar a experiência do usuário
● Pode existir lentidão na aplicação por algum delay de rede
● Problemas com escalabilidade, um número alto de usuários pode onerar muitos recursos
do servidor
E o WebAssembly
nessa história?
Quando ele entra em ação?
O WebAssembly será utilizado em projetos Client-side, quando o programa
compilado passa a ser executado no Browser.
Isso porque a maioria dos navegadores tem suporte ao WebAssembly. Nesse
Caso o código em blazor é compilado em WebAssembly e o navegador ira
executar as DLLs geradas no padrão .NET
Fluxo de Execução
● O Browser recebe o index.html
● index.html executa o blazor.webassembly.js
que baixa o Mono DotNet runtime
(DotNet.wasm) e os DLLs
● blazor.webassembly.js faz a
interoperatividade do DOM, JavaScript e as
DLLs do app e elementos de UI
● E por fim, inicia o Runtime para começar a
execução do app(executa os DLLs)
Importância do blazor.webassembly.js
Como deu para perceber, este arquivo é muito importante para orquestrar toda
a execução do app trazendo tudo que é necessário para que o browser consiga
ler o webassembly do Blazor, como WebAssembly não tem acesso ao DOM, ele
é o responsável por se comunicar entre o Runtime e a interação com o DOM

Weitere ähnliche Inhalte

Was ist angesagt?

Desenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoDesenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoGuilherme Heynemann Bruzzi
 
Canal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorCanal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorGustavo Bellini Bigardi
 
MSP Tech Days Online 2018 - SPA além do JavaScript com Blazor
MSP Tech Days Online 2018 - SPA além do JavaScript com BlazorMSP Tech Days Online 2018 - SPA além do JavaScript com Blazor
MSP Tech Days Online 2018 - SPA além do JavaScript com BlazorGustavo Bellini Bigardi
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 
Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutosakamud
 
Você não precisa de uma sopa de letrinhas para criar web apps
Você não precisa de uma sopa de letrinhas para criar web appsVocê não precisa de uma sopa de letrinhas para criar web apps
Você não precisa de uma sopa de letrinhas para criar web appsWilliam Oliveira
 
Guga Alves apresenta Gutenberg fase 2 e 3
Guga Alves apresenta Gutenberg fase 2 e 3Guga Alves apresenta Gutenberg fase 2 e 3
Guga Alves apresenta Gutenberg fase 2 e 3WordCamp Floripa
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.jsDenis Velrino
 
Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp netAnderson Wernek
 
Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)Sérgio Vilar
 
Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"Stefan Horochovec
 
JavaCE Conference 2012: ExtJS 4 + VRaptor
JavaCE Conference 2012: ExtJS 4 + VRaptorJavaCE Conference 2012: ExtJS 4 + VRaptor
JavaCE Conference 2012: ExtJS 4 + VRaptorLoiane Groner
 
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...E-Commerce Brasil
 
Walker Leite apresenta usando o WordPress como backend de aplicação
Walker Leite apresenta usando o WordPress como backend de aplicaçãoWalker Leite apresenta usando o WordPress como backend de aplicação
Walker Leite apresenta usando o WordPress como backend de aplicaçãoWordCamp Floripa
 
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsDevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsJúnior Porfirio
 
JavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavaJavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavajesuinoPower
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B Rguestb9d145
 

Was ist angesagt? (20)

Desenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoDesenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do código
 
Canal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorCanal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com Blazor
 
MSP Tech Days Online 2018 - SPA além do JavaScript com Blazor
MSP Tech Days Online 2018 - SPA além do JavaScript com BlazorMSP Tech Days Online 2018 - SPA além do JavaScript com Blazor
MSP Tech Days Online 2018 - SPA além do JavaScript com Blazor
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutos
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Você não precisa de uma sopa de letrinhas para criar web apps
Você não precisa de uma sopa de letrinhas para criar web appsVocê não precisa de uma sopa de letrinhas para criar web apps
Você não precisa de uma sopa de letrinhas para criar web apps
 
Guga Alves apresenta Gutenberg fase 2 e 3
Guga Alves apresenta Gutenberg fase 2 e 3Guga Alves apresenta Gutenberg fase 2 e 3
Guga Alves apresenta Gutenberg fase 2 e 3
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.js
 
Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp net
 
SPA's com Blazor e .NET Core
SPA's com Blazor e .NET CoreSPA's com Blazor e .NET Core
SPA's com Blazor e .NET Core
 
Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)
 
Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"
 
JavaCE Conference 2012: ExtJS 4 + VRaptor
JavaCE Conference 2012: ExtJS 4 + VRaptorJavaCE Conference 2012: ExtJS 4 + VRaptor
JavaCE Conference 2012: ExtJS 4 + VRaptor
 
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
 
Walker Leite apresenta usando o WordPress como backend de aplicação
Walker Leite apresenta usando o WordPress como backend de aplicaçãoWalker Leite apresenta usando o WordPress como backend de aplicação
Walker Leite apresenta usando o WordPress como backend de aplicação
 
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsDevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
 
JavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavaJavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma Java
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B R
 

Ähnlich wie Blazor #SnetTalks3

MVP Week 2020 - Aplicações Modernas com Blazor WASM
MVP Week 2020 - Aplicações Modernas com Blazor WASMMVP Week 2020 - Aplicações Modernas com Blazor WASM
MVP Week 2020 - Aplicações Modernas com Blazor WASMGustavo Bellini Bigardi
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...tdc-globalcode
 
12 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 201812 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 2018Graziella Bonizi
 
Tecnologias Web 2.0
Tecnologias Web 2.0 Tecnologias Web 2.0
Tecnologias Web 2.0 Duarte Nunes
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxMarceloRosenbrock1
 
Performance e otimização no wordpress
Performance e otimização no wordpressPerformance e otimização no wordpress
Performance e otimização no wordpressDaniel Paz
 
Explorando o mundo serverless
Explorando o mundo serverlessExplorando o mundo serverless
Explorando o mundo serverlessRoberto Alves
 
Comunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalRComunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalREduardo Pires
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3André Luiz Forchesatto
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web appsJoão Maciel
 
O rad da wave maker developing for the cloud
O rad da wave maker developing for the cloudO rad da wave maker developing for the cloud
O rad da wave maker developing for the cloudFrancisco Gonçalves
 
Migrando de Applets para JavaFX, e Modelos de Distribuição de Apps
Migrando de Applets para JavaFX, e Modelos de Distribuição de AppsMigrando de Applets para JavaFX, e Modelos de Distribuição de Apps
Migrando de Applets para JavaFX, e Modelos de Distribuição de AppsBruno Borges
 

Ähnlich wie Blazor #SnetTalks3 (20)

Front end architecture
Front end architectureFront end architecture
Front end architecture
 
Aula09 - Java Script
Aula09 - Java ScriptAula09 - Java Script
Aula09 - Java Script
 
MVP Week 2020 - Aplicações Modernas com Blazor WASM
MVP Week 2020 - Aplicações Modernas com Blazor WASMMVP Week 2020 - Aplicações Modernas com Blazor WASM
MVP Week 2020 - Aplicações Modernas com Blazor WASM
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
 
12 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 201812 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 2018
 
Tecnologias Web 2.0
Tecnologias Web 2.0 Tecnologias Web 2.0
Tecnologias Web 2.0
 
Software gratuito
Software gratuitoSoftware gratuito
Software gratuito
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
Performance e otimização no wordpress
Performance e otimização no wordpressPerformance e otimização no wordpress
Performance e otimização no wordpress
 
Mod06 licao01-apostila
Mod06 licao01-apostilaMod06 licao01-apostila
Mod06 licao01-apostila
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Aula 05 - Java Script Básico
Aula 05 -  Java Script BásicoAula 05 -  Java Script Básico
Aula 05 - Java Script Básico
 
Explorando o mundo serverless
Explorando o mundo serverlessExplorando o mundo serverless
Explorando o mundo serverless
 
Comunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalRComunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalR
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps
 
O rad da wave maker developing for the cloud
O rad da wave maker developing for the cloudO rad da wave maker developing for the cloud
O rad da wave maker developing for the cloud
 
Migrando de Applets para JavaFX, e Modelos de Distribuição de Apps
Migrando de Applets para JavaFX, e Modelos de Distribuição de AppsMigrando de Applets para JavaFX, e Modelos de Distribuição de Apps
Migrando de Applets para JavaFX, e Modelos de Distribuição de Apps
 

Mehr von André Agostinho

How to justify technical debt mitigations in Software Engineering
How to justify technical debt mitigations in Software EngineeringHow to justify technical debt mitigations in Software Engineering
How to justify technical debt mitigations in Software EngineeringAndré Agostinho
 
Google web stories #SnetTalks3
Google web stories #SnetTalks3Google web stories #SnetTalks3
Google web stories #SnetTalks3André Agostinho
 
Impact mapping #SnetTalks3
Impact mapping  #SnetTalks3Impact mapping  #SnetTalks3
Impact mapping #SnetTalks3André Agostinho
 
Asp.net Core 5 and C# 9 - #SnetTalks2
Asp.net Core 5 and C# 9 - #SnetTalks2Asp.net Core 5 and C# 9 - #SnetTalks2
Asp.net Core 5 and C# 9 - #SnetTalks2André Agostinho
 
ARIA - Acessible Rich Internet Applications #SnetTalks2
ARIA - Acessible Rich Internet Applications #SnetTalks2ARIA - Acessible Rich Internet Applications #SnetTalks2
ARIA - Acessible Rich Internet Applications #SnetTalks2André Agostinho
 
AMP - Accelarared Mobile Pages #SnetTalks2
AMP - Accelarared Mobile Pages #SnetTalks2AMP - Accelarared Mobile Pages #SnetTalks2
AMP - Accelarared Mobile Pages #SnetTalks2André Agostinho
 
Lead time and cycle time. What matters? #SnetTalks1
Lead time and cycle time.  What matters? #SnetTalks1Lead time and cycle time.  What matters? #SnetTalks1
Lead time and cycle time. What matters? #SnetTalks1André Agostinho
 
Overcoming automation fear in infrastructure as code
Overcoming automation fear in infrastructure as codeOvercoming automation fear in infrastructure as code
Overcoming automation fear in infrastructure as codeAndré Agostinho
 
Scaling multi cloud with infrastructure as code
Scaling multi cloud with infrastructure as codeScaling multi cloud with infrastructure as code
Scaling multi cloud with infrastructure as codeAndré Agostinho
 
Cloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct servicesCloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct servicesAndré Agostinho
 
Goal-Driven Software Process
Goal-Driven Software ProcessGoal-Driven Software Process
Goal-Driven Software ProcessAndré Agostinho
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de ProgramaçãoAndré Agostinho
 
Avaliação Heurística de Aplicativos de Bateria para Windows Phone
Avaliação Heurística de Aplicativos de Bateria para Windows PhoneAvaliação Heurística de Aplicativos de Bateria para Windows Phone
Avaliação Heurística de Aplicativos de Bateria para Windows PhoneAndré Agostinho
 
Desenvolvimento de um aplicativo móvel utilizando o Ciclo de Engenharia de Us...
Desenvolvimento de um aplicativo móvel utilizando o Ciclo de Engenharia de Us...Desenvolvimento de um aplicativo móvel utilizando o Ciclo de Engenharia de Us...
Desenvolvimento de um aplicativo móvel utilizando o Ciclo de Engenharia de Us...André Agostinho
 
Identificando requisitos comuns e variantes em linhas de produtos de software
Identificando requisitos comuns e variantes em linhas de produtos de softwareIdentificando requisitos comuns e variantes em linhas de produtos de software
Identificando requisitos comuns e variantes em linhas de produtos de softwareAndré Agostinho
 
A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...André Agostinho
 
Fluent NHibernate - Baby Steps
Fluent NHibernate - Baby StepsFluent NHibernate - Baby Steps
Fluent NHibernate - Baby StepsAndré Agostinho
 
Proposta para especificação de histórias de usuários alinhadas a IEEE 830
Proposta para especificação de histórias de usuários alinhadas a IEEE 830Proposta para especificação de histórias de usuários alinhadas a IEEE 830
Proposta para especificação de histórias de usuários alinhadas a IEEE 830André Agostinho
 
Mapeando processos de negócios com Zackman Framework e SBVR
Mapeando processos de negócios com Zackman Framework e SBVRMapeando processos de negócios com Zackman Framework e SBVR
Mapeando processos de negócios com Zackman Framework e SBVRAndré Agostinho
 

Mehr von André Agostinho (20)

How to justify technical debt mitigations in Software Engineering
How to justify technical debt mitigations in Software EngineeringHow to justify technical debt mitigations in Software Engineering
How to justify technical debt mitigations in Software Engineering
 
Google web stories #SnetTalks3
Google web stories #SnetTalks3Google web stories #SnetTalks3
Google web stories #SnetTalks3
 
Impact mapping #SnetTalks3
Impact mapping  #SnetTalks3Impact mapping  #SnetTalks3
Impact mapping #SnetTalks3
 
Asp.net Core 5 and C# 9 - #SnetTalks2
Asp.net Core 5 and C# 9 - #SnetTalks2Asp.net Core 5 and C# 9 - #SnetTalks2
Asp.net Core 5 and C# 9 - #SnetTalks2
 
ARIA - Acessible Rich Internet Applications #SnetTalks2
ARIA - Acessible Rich Internet Applications #SnetTalks2ARIA - Acessible Rich Internet Applications #SnetTalks2
ARIA - Acessible Rich Internet Applications #SnetTalks2
 
AMP - Accelarared Mobile Pages #SnetTalks2
AMP - Accelarared Mobile Pages #SnetTalks2AMP - Accelarared Mobile Pages #SnetTalks2
AMP - Accelarared Mobile Pages #SnetTalks2
 
Lead time and cycle time. What matters? #SnetTalks1
Lead time and cycle time.  What matters? #SnetTalks1Lead time and cycle time.  What matters? #SnetTalks1
Lead time and cycle time. What matters? #SnetTalks1
 
Overcoming automation fear in infrastructure as code
Overcoming automation fear in infrastructure as codeOvercoming automation fear in infrastructure as code
Overcoming automation fear in infrastructure as code
 
Scaling multi cloud with infrastructure as code
Scaling multi cloud with infrastructure as codeScaling multi cloud with infrastructure as code
Scaling multi cloud with infrastructure as code
 
Cloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct servicesCloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct services
 
Goal-Driven Software Process
Goal-Driven Software ProcessGoal-Driven Software Process
Goal-Driven Software Process
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de Programação
 
Scrum fundamentos basicos
Scrum   fundamentos basicosScrum   fundamentos basicos
Scrum fundamentos basicos
 
Avaliação Heurística de Aplicativos de Bateria para Windows Phone
Avaliação Heurística de Aplicativos de Bateria para Windows PhoneAvaliação Heurística de Aplicativos de Bateria para Windows Phone
Avaliação Heurística de Aplicativos de Bateria para Windows Phone
 
Desenvolvimento de um aplicativo móvel utilizando o Ciclo de Engenharia de Us...
Desenvolvimento de um aplicativo móvel utilizando o Ciclo de Engenharia de Us...Desenvolvimento de um aplicativo móvel utilizando o Ciclo de Engenharia de Us...
Desenvolvimento de um aplicativo móvel utilizando o Ciclo de Engenharia de Us...
 
Identificando requisitos comuns e variantes em linhas de produtos de software
Identificando requisitos comuns e variantes em linhas de produtos de softwareIdentificando requisitos comuns e variantes em linhas de produtos de software
Identificando requisitos comuns e variantes em linhas de produtos de software
 
A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...
 
Fluent NHibernate - Baby Steps
Fluent NHibernate - Baby StepsFluent NHibernate - Baby Steps
Fluent NHibernate - Baby Steps
 
Proposta para especificação de histórias de usuários alinhadas a IEEE 830
Proposta para especificação de histórias de usuários alinhadas a IEEE 830Proposta para especificação de histórias de usuários alinhadas a IEEE 830
Proposta para especificação de histórias de usuários alinhadas a IEEE 830
 
Mapeando processos de negócios com Zackman Framework e SBVR
Mapeando processos de negócios com Zackman Framework e SBVRMapeando processos de negócios com Zackman Framework e SBVR
Mapeando processos de negócios com Zackman Framework e SBVR
 

Blazor #SnetTalks3

  • 2. O que é o framework Blazor Blazor é um framework FrontEnd feito para ser desenvolvido utilizando C# e HTML, é uma alternativa para programadores que dominam a linguagem C# frente as tecnologias web mais comuns do mercado como Javascript e Typescript.
  • 3. Blazor veio para necessariamente substituir javascript? Não, o Blazor tem integração com javascript, não é necessário substituir todo javascript de uma aplicação Também veio como uma alternativa para trazer mais performance e o uso de bibliotecas de .net
  • 4. Linha do tempo do Blazor
  • 6. Client-side Blazor ● A aplicação está rodando como um app WebAssembly diretamente no browser ● O Código é compilado no servidor e baixado no cliente e executado localmente
  • 7. Benefícios ● Roda em todos os browser modernos ● Não necessita de ter o .net instalado no servidor, ter o app compilado no servidor ja é o suficiente ● Experiência do SPA(single page application) Desvantagens ● App pode não rodar em broswer mais antigos como versões mais antigas do IE ● O carregamento inicial do app pode levar um pouco mais de tempo ● Suporte ao Debug pode ter uma experiência limitada
  • 8. Server-side Blazor ● Aplicação é rodada no servidor e é apenas servido páginas HTML para o client ● Comunicação entre client e server utilizando SignalR (Tecnologia da microsoft que fornece uma comunicação real time permitindo o servidor trazer atualização da aplicação para o client)
  • 9. Benefícios ● O download inicial da aplicação é menor que comparado ao client-side ● Funciona com qualquer aplicação Web API ● Suporte ao debug com experiência melhor que no server side ● Ao contrário do client side, o browser não precisa ter suporte ao webassembly Desvantagens ● Não existe nenhuma lógica no client, qualquer problema momentâneo no servidor pode atrapalhar a experiência do usuário ● Pode existir lentidão na aplicação por algum delay de rede ● Problemas com escalabilidade, um número alto de usuários pode onerar muitos recursos do servidor
  • 10. E o WebAssembly nessa história?
  • 11. Quando ele entra em ação? O WebAssembly será utilizado em projetos Client-side, quando o programa compilado passa a ser executado no Browser. Isso porque a maioria dos navegadores tem suporte ao WebAssembly. Nesse Caso o código em blazor é compilado em WebAssembly e o navegador ira executar as DLLs geradas no padrão .NET
  • 12. Fluxo de Execução ● O Browser recebe o index.html ● index.html executa o blazor.webassembly.js que baixa o Mono DotNet runtime (DotNet.wasm) e os DLLs ● blazor.webassembly.js faz a interoperatividade do DOM, JavaScript e as DLLs do app e elementos de UI ● E por fim, inicia o Runtime para começar a execução do app(executa os DLLs)
  • 13. Importância do blazor.webassembly.js Como deu para perceber, este arquivo é muito importante para orquestrar toda a execução do app trazendo tudo que é necessário para que o browser consiga ler o webassembly do Blazor, como WebAssembly não tem acesso ao DOM, ele é o responsável por se comunicar entre o Runtime e a interação com o DOM