![Page 2: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/2.jpg)
Uma breve história…
![Page 3: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/3.jpg)
• Celular antes do iPhone
•
![Page 4: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/4.jpg)
![Page 5: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/5.jpg)
ASM.JS
![Page 6: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/6.jpg)
![Page 7: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/7.jpg)
Permitir executar código com performance o mais próximas possível
de nativo
![Page 8: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/8.jpg)
![Page 9: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/9.jpg)
Transpilers
São
Uma
Gambiarra
![Page 10: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/10.jpg)
Alta fidelidade de execução para código de baixo nível
![Page 11: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/11.jpg)
![Page 12: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/12.jpg)
WebAssembly…
• Máquina virtual de baixo nível
• Executa dentro do browser
• Acesso bidirecional a JS
• Formato binário eficiente
• Precompilação
![Page 13: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/13.jpg)
Alem de C/C++
• Blockchain
• Edge computing
• Rust, Go, C#
![Page 14: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/14.jpg)
Mono e C#
• Runtime existente agora em WebAssembly
• Interpretador para dev-loop rápido
• Compilador estático para performance
• Depurador, Bindings e ferramentas de build
• Limitações do ambiente (threads, IO, etc)
![Page 15: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/15.jpg)
Por que C#?
• Bilhões de linhas de código existente
• Populariedade da plataforma
• Portar apps mobile ou desktop
![Page 17: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/17.jpg)
Demo time
#wish-me-luck
![Page 18: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/18.jpg)
Resumindo
• WebAssembly é a nova fronteira da web
• Universo de possibilidades
• Usos reais possíveis hoje
• Outras linguagens, C# disponível hoje
![Page 19: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático](https://reader030.vdocumento.com/reader030/viewer/2022040615/5f0ef47c7e708231d441c35d/html5/thumbnails/19.jpg)
Obrigado!Twitter: @kumpera
Github: https://github.com/kumpera
Mono: https://github.com/mono/mono
Blazor: https://github.com/aspnet/blazor
WebAssembly: https://webassembly.org