SlideShare a Scribd company logo
1 of 39
Blazor
An experimental .NET
framework for the browser
Brian Jablonsky
• What is Blazor?
• How Blazor Works
• WebAssembly Crash Course
• Why?
• Features
• Roadmap
• FAQ
• Code Examples
• Questions
• Blazor is experimental!
• 0.1.0 was released just 28 days
ago!
• NSFW!
• A .NET web framework that runs in the browser
• Use C#/Razor to author
• Runs on a .NET runtime implemented in
WebAssembly
• Browser + Razor = Blazor
1. C# and Razor code files are compiled into .NET
assemblies
2. Assemblies and .NET runtime are downloaded on the
browser
3. Blazor uses JavaScript to bootstrap the .NET runtime
(Mono) loading the required assembly references
4. Blazor allows DOM manipulation/browser API calls
from the .NET runtime via JavaScript interoperability
1. C# and Razor code files are compiled into .NET
assemblies
2. Assemblies and .NET runtime are downloaded on the
browser
3. Blazor uses JavaScript to bootstrap the .NET runtime
loading the required assembly references
3. Blazor uses JavaScript to bootstrap the .NET runtime
loading the required assembly references
4. Blazor allows DOM manipulation/browser API calls
from the .NET runtime via JavaScript interoperability
C#
Render Tree Blazor
JavaScript
Change DOM
DOM
Event Trigger
C#
UI Differences
Blazor
JavaScript
Change DOM
DOM
Process Event
• WebAssembly (wasm) is a binary instruction format for
a stack-based virtual machine
• New type of code that can be run in a browser
• Developed out of performance problems from
JavaScript
• WebAssembly Goals:
• Fast, efficient, and portable
• Wasm code can be executed at near-native speed
in the browser
• Readable and debuggable
• Wasm code is a low-level assembly language but
is in a human-readable text format
• Secure
• Designed to run in a safe, sandboxed execution
environment like JavaScript in the browser
• The web platform consists of two parts:
1. A virtual machine to run code
2. Set of APIs to control the browser
• Traditionally, the browser’s VM has only been able to
load JavaScript
• WebAssembly adds an additional VM to run a compact
binary format
• WebAssembly is not meant to replace JavaScript
• Intended to be a compilation target of source
languages
• WebAssembly can’t directly access the DOM
C/C++/C#
source code
Wasm compiler wasm module
HTML
JavaScript
“glue” code
• Full Stack development using C# and .NET
• .NET advantages:
• High Performance
• Scalability
• Maintainability
• Cross Platform
• Visual Studio
• Component model for building composable UI
• Routing
• Layouts
• Forms and validation
• Dependency injection
• JavaScript interop
• Live reloading in the browser during development
• Server-side rendering
• Full .NET debugging both in browsers and in the IDE
• Rich IntelliSense and tooling
• Ability to run on older (non-WebAssembly) browsers via
asm.js
• Publishing and app size trimming
• March 2017 – WebAssembly announces 1.0
• August 2017 – Mono announces prototype
WebAssembly
• February 2018 – Blazor is publicly available
• March 22, 2018 – Blazor 0.1.0 is released
• Support @page with custom route template on
components
• Standard BCL HttpClient
• Add ASP.NET Core hosted project template
• VS Blazor editor
• Basic JavaScript interop
• Publishing
• Development host
• Compilation
• April 17, 2018 – Blazor 0.2.0 is released
• Improved event handling
• Build reusable component libraries
• Improved JavaScript interop
• Beyond 0.2.0
• Finish Component Model
• ASP.NET Core Blazor Language Services for Mac
• Forms and Validations
• Client-side Debugging
• Real-time web client (SignalR/Web Sockets)
• Testing/Tests
• Routing Enhancements
• Security/Authorization
• State Management
• Does Blazor compile my entire .NET assembly into
WebAssembly?
• No.
• Only .NET runtime is compiled into WebAssembly.
• Could be support for full static ahead-of-time
compilation into WebAssembly in the future.
• Won’t the app size huge for the .NET runtime?
• Not really.
• Runs on full Mono Desktop profile right now.
• Plans to reduce size by using custom profile.
• Can I use Blazor without .NET backend?
• Yup.
• Can be deployed as set of static files.
• WebAssembly compatible browser
• https://platform-status.mozilla.org/#web-assembly
• .NET Core 2.1 Preview 2 SDK
• At least v.2.1.300-preview2-008533
• https://www.microsoft.com/net/download/dotnet-
core/sdk-2.1.300-preview2
• Visual Studio 2017 Preview (15.7)
• https://www.visualstudio.com/vs/preview
• ASP.NET Core Blazor Language Services extension
• https://go.microsoft.com/fwlink/?linkid=870389
• Visual Studio Code/command line
dotnet new -i Microsoft.AspNetCore.Blazor.Templates
dotnet new blazor
• New Project
• Fundamental building block of web apps
• Components are self-contained UI
• Includes HTML and logic to inject data or respond to
events
• They can be nested, reused, and shared between
projects
• Written using C#/Razor and HTML
• Components
• Layouts are really just components
• Defined in a Razor template
• Must implement the
Microsoft.AspNetCore.Blazor.Layouts.ILayoutCompone
nt component
• Adds a Body property that contains the content to
be rendered
• Allows for nested layouts
• Layouts
• Handles internal routing of pages
• Router is configured in App.cshtml
• Uses the @Page directive defined in the Pages
• Can have multiple routes
• Can contain parameters
• Routes
• Supports one-way and two-way data binding
• Binding using the bind= attribute
• Support for binding data types:
• Int
• String
• DateTime
• Enums
• Bool
• If you need another type, you must provide a
getter/setter.
• Data binding
• Supports calling JavaScript from inside Blazor
• Blazor uses registered functions
• Supports calling C# from JavaScript
• JavaScript Interop
?
• Blazor GitHub
• https://github.com/aspnet/Blazor/
• Blazor.net
• http://blazor.net/docs/
• Steve Sanderson’s Intro to Blazor
• http://blog.stevensanderson.com/2018/02/06/blazor
-intro/
• Steve Sanderson’s Demo Video
• https://www.youtube.com/watch?v=MiLAE6HMr10

More Related Content

What's hot

Micro Frontends Architecture - Jitendra kumawat (Guavus)
Micro Frontends Architecture - Jitendra kumawat (Guavus)Micro Frontends Architecture - Jitendra kumawat (Guavus)
Micro Frontends Architecture - Jitendra kumawat (Guavus)Tech Triveni
 
WebAssembly Fundamentals
WebAssembly FundamentalsWebAssembly Fundamentals
WebAssembly FundamentalsKnoldus Inc.
 
Intro to Reactive Programming
Intro to Reactive ProgrammingIntro to Reactive Programming
Intro to Reactive ProgrammingStéphane Maldini
 
An Introduction to WebAssembly
An Introduction to WebAssemblyAn Introduction to WebAssembly
An Introduction to WebAssemblyDaniel Budden
 
Intro to react native
Intro to react nativeIntro to react native
Intro to react nativeModusJesus
 
Getting started with Next.js
Getting started with Next.jsGetting started with Next.js
Getting started with Next.jsGökhan Sarı
 
Building Web Applications with Blazor and MudBlazor
Building Web Applications with Blazor and MudBlazorBuilding Web Applications with Blazor and MudBlazor
Building Web Applications with Blazor and MudBlazorMiguel Angel Teheran Garcia
 
.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnetRick van den Bosch
 
WebAssembly: In a Nutshell
WebAssembly: In a NutshellWebAssembly: In a Nutshell
WebAssembly: In a NutshellRangHo Lee
 
Intro To React Native
Intro To React NativeIntro To React Native
Intro To React NativeFITC
 
WebAssembly WASM Introduction Presentation
WebAssembly WASM Introduction PresentationWebAssembly WASM Introduction Presentation
WebAssembly WASM Introduction PresentationBrad Beiermann
 
Vue.js Getting Started
Vue.js Getting StartedVue.js Getting Started
Vue.js Getting StartedMurat Doğan
 
Micro Frontends Architecture
Micro Frontends ArchitectureMicro Frontends Architecture
Micro Frontends ArchitectureRag Dhiman
 

What's hot (20)

React Native
React NativeReact Native
React Native
 
Micro Frontends Architecture - Jitendra kumawat (Guavus)
Micro Frontends Architecture - Jitendra kumawat (Guavus)Micro Frontends Architecture - Jitendra kumawat (Guavus)
Micro Frontends Architecture - Jitendra kumawat (Guavus)
 
WebAssembly Fundamentals
WebAssembly FundamentalsWebAssembly Fundamentals
WebAssembly Fundamentals
 
Why Vue.js?
Why Vue.js?Why Vue.js?
Why Vue.js?
 
Intro to Reactive Programming
Intro to Reactive ProgrammingIntro to Reactive Programming
Intro to Reactive Programming
 
React Native Workshop
React Native WorkshopReact Native Workshop
React Native Workshop
 
React Native
React Native React Native
React Native
 
An Introduction to WebAssembly
An Introduction to WebAssemblyAn Introduction to WebAssembly
An Introduction to WebAssembly
 
Micro-frontend
Micro-frontendMicro-frontend
Micro-frontend
 
Intro to react native
Intro to react nativeIntro to react native
Intro to react native
 
Getting started with Next.js
Getting started with Next.jsGetting started with Next.js
Getting started with Next.js
 
Building Web Applications with Blazor and MudBlazor
Building Web Applications with Blazor and MudBlazorBuilding Web Applications with Blazor and MudBlazor
Building Web Applications with Blazor and MudBlazor
 
Rendering engine
Rendering engineRendering engine
Rendering engine
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
 
.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet
 
WebAssembly: In a Nutshell
WebAssembly: In a NutshellWebAssembly: In a Nutshell
WebAssembly: In a Nutshell
 
Intro To React Native
Intro To React NativeIntro To React Native
Intro To React Native
 
WebAssembly WASM Introduction Presentation
WebAssembly WASM Introduction PresentationWebAssembly WASM Introduction Presentation
WebAssembly WASM Introduction Presentation
 
Vue.js Getting Started
Vue.js Getting StartedVue.js Getting Started
Vue.js Getting Started
 
Micro Frontends Architecture
Micro Frontends ArchitectureMicro Frontends Architecture
Micro Frontends Architecture
 

Similar to Blazor.pptx

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"Fwdays
 
Full stack web development with c# and web assembly - Blazor.Net
Full stack web development with c# and web assembly - Blazor.NetFull stack web development with c# and web assembly - Blazor.Net
Full stack web development with c# and web assembly - Blazor.NetRuwantha Ratnayake
 
Web Assembly Big Picture
Web Assembly Big PictureWeb Assembly Big Picture
Web Assembly Big PictureYousif Shalaby
 
Blazor - The New Silverlight?
Blazor - The New Silverlight?Blazor - The New Silverlight?
Blazor - The New Silverlight?Christian Nagel
 
Blazor - .NET in the Browser!
Blazor - .NET in the Browser!Blazor - .NET in the Browser!
Blazor - .NET in the Browser!David Paquette
 
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...Gabriel Villa
 
ASP.NET 5 Overview - Post Build 2015
ASP.NET 5 Overview - Post Build 2015ASP.NET 5 Overview - Post Build 2015
ASP.NET 5 Overview - Post Build 2015Shahed Chowdhuri
 
ASP.NET 5 Overview: Post RTM
ASP.NET 5 Overview: Post RTMASP.NET 5 Overview: Post RTM
ASP.NET 5 Overview: Post RTMShahed Chowdhuri
 
ASP.NET 5 Overview for Apex Systems
ASP.NET 5 Overview for Apex SystemsASP.NET 5 Overview for Apex Systems
ASP.NET 5 Overview for Apex SystemsShahed Chowdhuri
 
Getting started with Vue.js - CodeMash 2020
Getting started with Vue.js - CodeMash 2020Getting started with Vue.js - CodeMash 2020
Getting started with Vue.js - CodeMash 2020Burton Smith
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Conference
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Coremohamed elshafey
 
ASP.NET Core: The best of the new bits
ASP.NET Core: The best of the new bitsASP.NET Core: The best of the new bits
ASP.NET Core: The best of the new bitsKen Cenerelli
 
Top 10 frameworks of node js
Top 10 frameworks of node jsTop 10 frameworks of node js
Top 10 frameworks of node jsHabilelabs
 

Similar to Blazor.pptx (20)

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"
 
Full stack web development with c# and web assembly - Blazor.Net
Full stack web development with c# and web assembly - Blazor.NetFull stack web development with c# and web assembly - Blazor.Net
Full stack web development with c# and web assembly - Blazor.Net
 
DevDay 2018 - Blazor
DevDay 2018 - BlazorDevDay 2018 - Blazor
DevDay 2018 - Blazor
 
Web Assembly Big Picture
Web Assembly Big PictureWeb Assembly Big Picture
Web Assembly Big Picture
 
Blazor - The New Silverlight?
Blazor - The New Silverlight?Blazor - The New Silverlight?
Blazor - The New Silverlight?
 
Blazor - .NET in the Browser!
Blazor - .NET in the Browser!Blazor - .NET in the Browser!
Blazor - .NET in the Browser!
 
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
 
ASP.NET 5 Overview - Post Build 2015
ASP.NET 5 Overview - Post Build 2015ASP.NET 5 Overview - Post Build 2015
ASP.NET 5 Overview - Post Build 2015
 
Blazor v1.1
Blazor v1.1Blazor v1.1
Blazor v1.1
 
ASP.NET 5 Overview: Post RTM
ASP.NET 5 Overview: Post RTMASP.NET 5 Overview: Post RTM
ASP.NET 5 Overview: Post RTM
 
ASP.NET 5 Overview for Apex Systems
ASP.NET 5 Overview for Apex SystemsASP.NET 5 Overview for Apex Systems
ASP.NET 5 Overview for Apex Systems
 
Getting started with Vue.js - CodeMash 2020
Getting started with Vue.js - CodeMash 2020Getting started with Vue.js - CodeMash 2020
Getting started with Vue.js - CodeMash 2020
 
ASP.NET 5 Overview
ASP.NET 5 OverviewASP.NET 5 Overview
ASP.NET 5 Overview
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Core
 
ASP.NET Core
ASP.NET CoreASP.NET Core
ASP.NET Core
 
ASP.NET Core: The best of the new bits
ASP.NET Core: The best of the new bitsASP.NET Core: The best of the new bits
ASP.NET Core: The best of the new bits
 
Top 10 frameworks of node js
Top 10 frameworks of node jsTop 10 frameworks of node js
Top 10 frameworks of node js
 
ASP.NET
ASP.NETASP.NET
ASP.NET
 
Transforming the web into a real application platform
Transforming the web into a real application platformTransforming the web into a real application platform
Transforming the web into a real application platform
 

Recently uploaded

Complet Documnetation for Smart Assistant Application for Disabled Person
Complet Documnetation   for Smart Assistant Application for Disabled PersonComplet Documnetation   for Smart Assistant Application for Disabled Person
Complet Documnetation for Smart Assistant Application for Disabled Personfurqan222004
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Dana Luther
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Roomgirls4nights
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Deliverybabeytanya
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...aditipandeya
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
象限策略:Google Workspace 与 Microsoft 365 对业务的影响 .pdf
象限策略:Google Workspace 与 Microsoft 365 对业务的影响 .pdf象限策略:Google Workspace 与 Microsoft 365 对业务的影响 .pdf
象限策略:Google Workspace 与 Microsoft 365 对业务的影响 .pdfkeithzhangding
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一3sw2qly1
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Roomdivyansh0kumar0
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607dollysharma2066
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 

Recently uploaded (20)

Complet Documnetation for Smart Assistant Application for Disabled Person
Complet Documnetation   for Smart Assistant Application for Disabled PersonComplet Documnetation   for Smart Assistant Application for Disabled Person
Complet Documnetation for Smart Assistant Application for Disabled Person
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
Vip Call Girls Aerocity ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Aerocity ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Aerocity ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Aerocity ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
象限策略:Google Workspace 与 Microsoft 365 对业务的影响 .pdf
象限策略:Google Workspace 与 Microsoft 365 对业务的影响 .pdf象限策略:Google Workspace 与 Microsoft 365 对业务的影响 .pdf
象限策略:Google Workspace 与 Microsoft 365 对业务的影响 .pdf
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girls
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 

Blazor.pptx

  • 1. Blazor An experimental .NET framework for the browser Brian Jablonsky
  • 2. • What is Blazor? • How Blazor Works • WebAssembly Crash Course • Why? • Features • Roadmap • FAQ • Code Examples • Questions
  • 3. • Blazor is experimental! • 0.1.0 was released just 28 days ago! • NSFW!
  • 4. • A .NET web framework that runs in the browser • Use C#/Razor to author • Runs on a .NET runtime implemented in WebAssembly • Browser + Razor = Blazor
  • 5. 1. C# and Razor code files are compiled into .NET assemblies 2. Assemblies and .NET runtime are downloaded on the browser 3. Blazor uses JavaScript to bootstrap the .NET runtime (Mono) loading the required assembly references 4. Blazor allows DOM manipulation/browser API calls from the .NET runtime via JavaScript interoperability
  • 6. 1. C# and Razor code files are compiled into .NET assemblies
  • 7. 2. Assemblies and .NET runtime are downloaded on the browser
  • 8. 3. Blazor uses JavaScript to bootstrap the .NET runtime loading the required assembly references
  • 9. 3. Blazor uses JavaScript to bootstrap the .NET runtime loading the required assembly references
  • 10. 4. Blazor allows DOM manipulation/browser API calls from the .NET runtime via JavaScript interoperability C# Render Tree Blazor JavaScript Change DOM DOM Event Trigger C# UI Differences Blazor JavaScript Change DOM DOM Process Event
  • 11. • WebAssembly (wasm) is a binary instruction format for a stack-based virtual machine • New type of code that can be run in a browser • Developed out of performance problems from JavaScript
  • 12. • WebAssembly Goals: • Fast, efficient, and portable • Wasm code can be executed at near-native speed in the browser • Readable and debuggable • Wasm code is a low-level assembly language but is in a human-readable text format • Secure • Designed to run in a safe, sandboxed execution environment like JavaScript in the browser
  • 13. • The web platform consists of two parts: 1. A virtual machine to run code 2. Set of APIs to control the browser • Traditionally, the browser’s VM has only been able to load JavaScript • WebAssembly adds an additional VM to run a compact binary format
  • 14. • WebAssembly is not meant to replace JavaScript • Intended to be a compilation target of source languages • WebAssembly can’t directly access the DOM C/C++/C# source code Wasm compiler wasm module HTML JavaScript “glue” code
  • 15. • Full Stack development using C# and .NET • .NET advantages: • High Performance • Scalability • Maintainability • Cross Platform • Visual Studio
  • 16. • Component model for building composable UI • Routing • Layouts • Forms and validation • Dependency injection • JavaScript interop • Live reloading in the browser during development • Server-side rendering
  • 17. • Full .NET debugging both in browsers and in the IDE • Rich IntelliSense and tooling • Ability to run on older (non-WebAssembly) browsers via asm.js • Publishing and app size trimming
  • 18. • March 2017 – WebAssembly announces 1.0 • August 2017 – Mono announces prototype WebAssembly • February 2018 – Blazor is publicly available
  • 19. • March 22, 2018 – Blazor 0.1.0 is released • Support @page with custom route template on components • Standard BCL HttpClient • Add ASP.NET Core hosted project template • VS Blazor editor • Basic JavaScript interop • Publishing • Development host • Compilation
  • 20. • April 17, 2018 – Blazor 0.2.0 is released • Improved event handling • Build reusable component libraries • Improved JavaScript interop
  • 21. • Beyond 0.2.0 • Finish Component Model • ASP.NET Core Blazor Language Services for Mac • Forms and Validations • Client-side Debugging • Real-time web client (SignalR/Web Sockets) • Testing/Tests • Routing Enhancements • Security/Authorization • State Management
  • 22. • Does Blazor compile my entire .NET assembly into WebAssembly? • No. • Only .NET runtime is compiled into WebAssembly. • Could be support for full static ahead-of-time compilation into WebAssembly in the future.
  • 23. • Won’t the app size huge for the .NET runtime? • Not really. • Runs on full Mono Desktop profile right now. • Plans to reduce size by using custom profile.
  • 24. • Can I use Blazor without .NET backend? • Yup. • Can be deployed as set of static files.
  • 25. • WebAssembly compatible browser • https://platform-status.mozilla.org/#web-assembly • .NET Core 2.1 Preview 2 SDK • At least v.2.1.300-preview2-008533 • https://www.microsoft.com/net/download/dotnet- core/sdk-2.1.300-preview2 • Visual Studio 2017 Preview (15.7) • https://www.visualstudio.com/vs/preview • ASP.NET Core Blazor Language Services extension • https://go.microsoft.com/fwlink/?linkid=870389
  • 26. • Visual Studio Code/command line dotnet new -i Microsoft.AspNetCore.Blazor.Templates dotnet new blazor
  • 28. • Fundamental building block of web apps • Components are self-contained UI • Includes HTML and logic to inject data or respond to events • They can be nested, reused, and shared between projects • Written using C#/Razor and HTML
  • 30. • Layouts are really just components • Defined in a Razor template • Must implement the Microsoft.AspNetCore.Blazor.Layouts.ILayoutCompone nt component • Adds a Body property that contains the content to be rendered • Allows for nested layouts
  • 32. • Handles internal routing of pages • Router is configured in App.cshtml • Uses the @Page directive defined in the Pages • Can have multiple routes • Can contain parameters
  • 34. • Supports one-way and two-way data binding • Binding using the bind= attribute • Support for binding data types: • Int • String • DateTime • Enums • Bool • If you need another type, you must provide a getter/setter.
  • 36. • Supports calling JavaScript from inside Blazor • Blazor uses registered functions • Supports calling C# from JavaScript
  • 38. ?
  • 39. • Blazor GitHub • https://github.com/aspnet/Blazor/ • Blazor.net • http://blazor.net/docs/ • Steve Sanderson’s Intro to Blazor • http://blog.stevensanderson.com/2018/02/06/blazor -intro/ • Steve Sanderson’s Demo Video • https://www.youtube.com/watch?v=MiLAE6HMr10

Editor's Notes

  1. https://www.techempower.com/benchmarks/#section=data-r15&hw=ph&test=plaintext&l=hra0al