SlideShare a Scribd company logo
Oleksandr Skachkov, Itera
Running C# in your Web Browser with
WebAssembly
ABOUT ME
• Itera’s FrontEnd Tech Lead
• WebKit contributor
• WebAssembly enthusiast
• Twitter: @alSkachkov
• JavaScript in the Web
• WebAssembly’s key features
• WebAssembly and C#
• Blazor
JavaScript has monopoly in the Web
C# developer asked to do some JavaScript
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
New solution!
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
Blazor on WebAssembly
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
• Announced in 17 June 2015
• Supported by major Browsers
• Developed by WebAssembly Working
Group (W3C)
• Draft specific published 15 Feb 2018
WebAssembly – New Hope
What is WebAssembly (aka WASM)?
safe, portable, low-level code format designed for efficient execution
and compact representation
https://webassembly.github.io/spec/intro
C - Source code
RUST - Source code
S - Expression
fast to load
Byte code
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
WebAssembly’s key features
quick validation (parsing)
S-expression
S-expression
$0 10
Stack
S-expression
$0
10
10 * $0
Stack
S-expression
10 * $0
Stack
S-expression
Streaming API
1
3 2 1
5 4 3 2 1
No garbage collector
Only 4 primitive types
No access to DOM and WEB API
INTERACTION WITH JAVASCRIPT
We can use JS function in WASM and WASM function in JS
WEBASSEMBLY WILL BRING TO WEB
• High performance
• New languages
• Variety of existed libraries
WebAssembly and C#
.NET RUNTIME
• Mono
• https://github.com/mono/mono
• https://github.com/lrz/mono-wasm
• CoreRT
• https://github.com/dotnet/corert
• https://github.com/dotnet/llilc
WEBASSMBLY .NET FRAMEWORKS
• Blazor - https://github.com/aspnet/Blazor
• Xamarin.FORMS - https://github.com/praeclarum/Ooui
• NoesisGUI - http://www.noesisengine.com
BLAZOR. KEY FEATURES
• Built specially for SPA
• Use C# in Browser!
• Own shadow DOM
• Same codebase for both ENDS
BLAZOR
• Blazor concept announced at NDC Jul 10 2017
• Bring C# to the WEB
• Blazor = Browser + Razor
• At start relied on DotNetAnywere
• Currently relies on Mono WebAssembly
• Current version 0.1.0
• Not a new Silverlight!
CLR IN BROWSER
HOW BLAZOR WORKS
BLAZOR. FEATURES
Components
Routing
Binding
Dependency injection
HTTP Calls
JavaScript interop
Support asm.js for old browsers
COMPONENTS
• C# class from .cshtml
• Master page
• Reusable components
• Shadow DOM and diff base update
• Can be created fully in C#
• Life cycle methods/event, ie onInit …
COMPONENT
ROUTING
BINDING
BINDING
BINDING
BINDING
DEPENDENCY INJECTION
HTTP CALLS
JAVASCRIPT INTEROP: JS FROM C#
JAVASCRIPT INTEROP: C# FROM JS
JAVASCRIPT INTEROP: C# FROM JS
SOME MORE
REDUX: https://github.com/torhovland/blazor-redux
Entity Framework: https://www.c-sharpcorner.com/article/asp-net-core-crud-
using-blazor-and-entity-framework-core/
BLAZOR. HOW TO START
https://blogs.msdn.microsoft.com/webdev/2018/03/22/get-started-building-
net-web-apps-in-the-browser-with-blazor/
https://learn-blazor.com/
SUMMARY
• WebAssembly is an emerging technology
• Blazor on earliest stages
• Blazor very promising Framework
• Large build package for the Web
RESOURCES
• Blazor: https://learn-blazor.com
• Blazor github: https://github.com/aspnet/Blazor
• Blazor gitter: aspnet/Blazor
• Steven Sanderson: http://blog.stevensanderson.com
• WebAssembly Site: http://webassembly.org/
• Github: https://github.com/WebAssembly/
THANKS!
QUESTIONS?

More Related Content

What's hot (20)

PDF
Pump up the JAM with Gatsby
Stefan Adolf
 
PDF
Using eZ Platform as a Headless CMS (with Vue.js)
Jani Tarvainen
 
PDF
Blazor web apps
Rajesh Kolla
 
PPTX
Blazor - An Introduction
JamieTaylor112
 
PDF
Isomorphic web application
Oliver N
 
PPT
Bootstrapping angular js with bower grunt yeoman
Makarand Bhatambarekar
 
PDF
WebKit Programming in Cocoa
Jason Harwig
 
PDF
Blazor - The New Silverlight?
Christian Nagel
 
PDF
Blazor introduction
Chih-Yang Lee
 
PDF
React server side rendering performance
Nick Dreckshage
 
PPT
Fast Slim Correct: The History and Evolution of JavaScript.
John Dalziel
 
PPTX
Blazor Full-Stack
Ed Charbeneau
 
PDF
React Webinar With CodePolitan
Riza Fahmi
 
PDF
slide-dnrdw
Yue Liu
 
PPTX
[Cordova] Empezando con Ionic
Moises Alexander Salazar Vila
 
PDF
Node PDX: Intro to Sails.js
Mike McNeil
 
PPTX
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
Irfan Maulana
 
PPTX
React brief introduction
Prograils.com
 
PDF
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Conference
 
PDF
Why NodeJS
Riza Fahmi
 
Pump up the JAM with Gatsby
Stefan Adolf
 
Using eZ Platform as a Headless CMS (with Vue.js)
Jani Tarvainen
 
Blazor web apps
Rajesh Kolla
 
Blazor - An Introduction
JamieTaylor112
 
Isomorphic web application
Oliver N
 
Bootstrapping angular js with bower grunt yeoman
Makarand Bhatambarekar
 
WebKit Programming in Cocoa
Jason Harwig
 
Blazor - The New Silverlight?
Christian Nagel
 
Blazor introduction
Chih-Yang Lee
 
React server side rendering performance
Nick Dreckshage
 
Fast Slim Correct: The History and Evolution of JavaScript.
John Dalziel
 
Blazor Full-Stack
Ed Charbeneau
 
React Webinar With CodePolitan
Riza Fahmi
 
slide-dnrdw
Yue Liu
 
[Cordova] Empezando con Ionic
Moises Alexander Salazar Vila
 
Node PDX: Intro to Sails.js
Mike McNeil
 
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
Irfan Maulana
 
React brief introduction
Prograils.com
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Conference
 
Why NodeJS
Riza Fahmi
 

Similar to Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly" (20)

PPTX
Blazor.pptx
ssuserb1d1a2
 
PPTX
Full stack web development with c# and web assembly - Blazor.Net
Ruwantha Ratnayake
 
PPTX
Building Web Apps with WebAssembly and Blazor
Amir Zuker
 
PDF
Amir Zuker: Building web apps with web assembly and blazor - Architecture Nex...
CodeValue
 
PPTX
A Gentle Introduction to Blazor
Jose Javier Columbie
 
PPTX
Blazor and more.pptx
Jürgen Gutsch
 
PPTX
Blazor
Ed Charbeneau
 
PPTX
Blazor - La nueva Web?
Matias Iacono
 
PPTX
Blazor - .NET in the Browser!
David Paquette
 
PPTX
Blazor into
hari krish
 
PDF
Learning Blazor (Fourth Early Release) David Pine
zapatruca
 
PPTX
Modernizing Web Apps with .NET 6.pptx
Ed Charbeneau
 
PPTX
Modernizing Web Apps with .NET 6.pptx
Ed Charbeneau
 
PDF
Pushing AI to the Client with WebAssembly and Blazor
J On The Beach
 
PPTX
Welcome to Blazor
dark_wisdom
 
PPTX
Goodbye JavaScript Hello Blazor
Ed Charbeneau
 
PPTX
MAUI Blazor - One App that runs everywhere
Jose Javier Columbie
 
PDF
Blazor, lo sapevi che...
Andrea Dottor
 
PPTX
.NET Conf 2019 高雄場 - .NET Core 3.0
Jeff Chu
 
PPTX
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
Clint Edmonson
 
Blazor.pptx
ssuserb1d1a2
 
Full stack web development with c# and web assembly - Blazor.Net
Ruwantha Ratnayake
 
Building Web Apps with WebAssembly and Blazor
Amir Zuker
 
Amir Zuker: Building web apps with web assembly and blazor - Architecture Nex...
CodeValue
 
A Gentle Introduction to Blazor
Jose Javier Columbie
 
Blazor and more.pptx
Jürgen Gutsch
 
Blazor - La nueva Web?
Matias Iacono
 
Blazor - .NET in the Browser!
David Paquette
 
Blazor into
hari krish
 
Learning Blazor (Fourth Early Release) David Pine
zapatruca
 
Modernizing Web Apps with .NET 6.pptx
Ed Charbeneau
 
Modernizing Web Apps with .NET 6.pptx
Ed Charbeneau
 
Pushing AI to the Client with WebAssembly and Blazor
J On The Beach
 
Welcome to Blazor
dark_wisdom
 
Goodbye JavaScript Hello Blazor
Ed Charbeneau
 
MAUI Blazor - One App that runs everywhere
Jose Javier Columbie
 
Blazor, lo sapevi che...
Andrea Dottor
 
.NET Conf 2019 高雄場 - .NET Core 3.0
Jeff Chu
 
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
Clint Edmonson
 
Ad

More from Fwdays (20)

PPTX
"Як ми переписали Сільпо на Angular", Євген Русаков
Fwdays
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
"Validation and Observability of AI Agents", Oleksandr Denisyuk
Fwdays
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PPTX
"Co-Authoring with a Machine: What I Learned from Writing a Book on Generativ...
Fwdays
 
PPTX
"Human-AI Collaboration Models for Better Decisions, Faster Workflows, and Cr...
Fwdays
 
PDF
"AI is already here. What will happen to your team (and your role) tomorrow?"...
Fwdays
 
PPTX
"Is it worth investing in AI in 2025?", Alexander Sharko
Fwdays
 
PDF
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
Fwdays
 
PDF
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
PDF
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
PDF
"Scaling in space and time with Temporal", Andriy Lupa .pdf
Fwdays
 
PPTX
"Provisioning via DOT-Chain: from catering to drone marketplaces", Volodymyr ...
Fwdays
 
PPTX
" Observability with Elasticsearch: Best Practices for High-Load Platform", A...
Fwdays
 
PPTX
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
PPTX
"Istio Ambient Mesh in production: our way from Sidecar to Sidecar-less",Hlib...
Fwdays
 
PPTX
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
PPTX
"Confidential AI: zero trust concept", Hennadiy Karpov
Fwdays
 
PPTX
"Choosing Tensor Accelerators for Specific Tasks: Compute vs Memory Bound Mod...
Fwdays
 
"Як ми переписали Сільпо на Angular", Євген Русаков
Fwdays
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
"Validation and Observability of AI Agents", Oleksandr Denisyuk
Fwdays
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
"Co-Authoring with a Machine: What I Learned from Writing a Book on Generativ...
Fwdays
 
"Human-AI Collaboration Models for Better Decisions, Faster Workflows, and Cr...
Fwdays
 
"AI is already here. What will happen to your team (and your role) tomorrow?"...
Fwdays
 
"Is it worth investing in AI in 2025?", Alexander Sharko
Fwdays
 
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
Fwdays
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
"Scaling in space and time with Temporal", Andriy Lupa .pdf
Fwdays
 
"Provisioning via DOT-Chain: from catering to drone marketplaces", Volodymyr ...
Fwdays
 
" Observability with Elasticsearch: Best Practices for High-Load Platform", A...
Fwdays
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
"Istio Ambient Mesh in production: our way from Sidecar to Sidecar-less",Hlib...
Fwdays
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
"Confidential AI: zero trust concept", Hennadiy Karpov
Fwdays
 
"Choosing Tensor Accelerators for Specific Tasks: Compute vs Memory Bound Mod...
Fwdays
 
Ad

Recently uploaded (20)

PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Biography of Daniel Podor.pdf
Daniel Podor
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 

Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"

Editor's Notes

  • #5: Stackoverflow.com Github.com
  • #7: Stackoverflow.com
  • #8: Stackoverflow.com