SlideShare a Scribd company logo
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

Basics of VueJS
Basics of VueJSBasics of VueJS
Basics of VueJS
Squash Apps Pvt Ltd
 
React Native
React NativeReact Native
React.js - The Dawn of Virtual DOM
React.js - The Dawn of Virtual DOMReact.js - The Dawn of Virtual DOM
React.js - The Dawn of Virtual DOM
Jimit Shah
 
.Net Core
.Net Core.Net Core
.Net Core
Bertrand Le Roy
 
Introduction to ASP.NET Core
Introduction to ASP.NET CoreIntroduction to ASP.NET Core
Introduction to ASP.NET Core
Avanade Nederland
 
React JS - Introduction
React JS - IntroductionReact JS - Introduction
React JS - Introduction
Sergey Romaneko
 
Vue JS Intro
Vue JS IntroVue JS Intro
Vue JS Intro
Muhammad Rizki Rijal
 
Vue js for beginner
Vue js for beginner Vue js for beginner
Vue js for beginner
Chandrasekar G
 
React-JS.pptx
React-JS.pptxReact-JS.pptx
React-JS.pptx
AnmolPandita7
 
An Introduction to WebAssembly
An Introduction to WebAssemblyAn Introduction to WebAssembly
An Introduction to WebAssembly
Daniel Budden
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
Amir Barylko
 
React Native
React NativeReact Native
React Native
ASIMYILDIZ
 
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web Components
Fu Cheng
 
Angular Introduction By Surekha Gadkari
Angular Introduction By Surekha GadkariAngular Introduction By Surekha Gadkari
Angular Introduction By Surekha Gadkari
Surekha Gadkari
 
ReactJS presentation.pptx
ReactJS presentation.pptxReactJS presentation.pptx
ReactJS presentation.pptx
DivyanshGupta922023
 
Vue.js for beginners
Vue.js for beginnersVue.js for beginners
Vue.js for beginners
Julio Bitencourt
 
React JS: A Secret Preview
React JS: A Secret PreviewReact JS: A Secret Preview
React JS: A Secret Preview
valuebound
 
Migrating .NET Application to .NET Core
Migrating .NET Application to .NET CoreMigrating .NET Application to .NET Core
Migrating .NET Application to .NET Core
Baris Ceviz
 
Asp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity FrameworkAsp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity Framework
Shravan A
 
React js programming concept
React js programming conceptReact js programming concept
React js programming concept
Tariqul islam
 

What's hot (20)

Basics of VueJS
Basics of VueJSBasics of VueJS
Basics of VueJS
 
React Native
React NativeReact Native
React Native
 
React.js - The Dawn of Virtual DOM
React.js - The Dawn of Virtual DOMReact.js - The Dawn of Virtual DOM
React.js - The Dawn of Virtual DOM
 
.Net Core
.Net Core.Net Core
.Net Core
 
Introduction to ASP.NET Core
Introduction to ASP.NET CoreIntroduction to ASP.NET Core
Introduction to ASP.NET Core
 
React JS - Introduction
React JS - IntroductionReact JS - Introduction
React JS - Introduction
 
Vue JS Intro
Vue JS IntroVue JS Intro
Vue JS Intro
 
Vue js for beginner
Vue js for beginner Vue js for beginner
Vue js for beginner
 
React-JS.pptx
React-JS.pptxReact-JS.pptx
React-JS.pptx
 
An Introduction to WebAssembly
An Introduction to WebAssemblyAn Introduction to WebAssembly
An Introduction to WebAssembly
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
 
React Native
React NativeReact Native
React Native
 
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web Components
 
Angular Introduction By Surekha Gadkari
Angular Introduction By Surekha GadkariAngular Introduction By Surekha Gadkari
Angular Introduction By Surekha Gadkari
 
ReactJS presentation.pptx
ReactJS presentation.pptxReactJS presentation.pptx
ReactJS presentation.pptx
 
Vue.js for beginners
Vue.js for beginnersVue.js for beginners
Vue.js for beginners
 
React JS: A Secret Preview
React JS: A Secret PreviewReact JS: A Secret Preview
React JS: A Secret Preview
 
Migrating .NET Application to .NET Core
Migrating .NET Application to .NET CoreMigrating .NET Application to .NET Core
Migrating .NET Application to .NET Core
 
Asp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity FrameworkAsp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity Framework
 
React js programming concept
React js programming conceptReact js programming concept
React js programming concept
 

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.Net
Ruwantha Ratnayake
 
DevDay 2018 - Blazor
DevDay 2018 - BlazorDevDay 2018 - Blazor
DevDay 2018 - Blazor
Denis Voituron
 
Web Assembly Big Picture
Web Assembly Big PictureWeb Assembly Big Picture
Web Assembly Big Picture
Yousif 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 2015
Shahed Chowdhuri
 
Blazor v1.1
Blazor v1.1Blazor 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
Shahed 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 Systems
Shahed 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 2020
Burton Smith
 
ASP.NET 5 Overview
ASP.NET 5 OverviewASP.NET 5 Overview
ASP.NET 5 Overview
Shahed Chowdhuri
 
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 Core
mohamed elshafey
 
ASP.NET Core
ASP.NET CoreASP.NET Core
ASP.NET Core
Andrea Dottor
 
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
Ken Cenerelli
 
Top 10 frameworks of node js
Top 10 frameworks of node jsTop 10 frameworks of node js
Top 10 frameworks of node js
Habilelabs
 
ASP.NET
ASP.NETASP.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
Mohanadarshan Vivekanandalingam
 

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

制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
cuobya
 
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
bseovas
 
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
bseovas
 
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
ukwwuq
 
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
ysasp1
 
Design Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptxDesign Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptx
saathvikreddy2003
 
Azure EA Sponsorship - Customer Guide.pdf
Azure EA Sponsorship - Customer Guide.pdfAzure EA Sponsorship - Customer Guide.pdf
Azure EA Sponsorship - Customer Guide.pdf
AanSulistiyo
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
wolfsoftcompanyco
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
Danica Gill
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
Donato Onofri
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
hackersuli
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
3a0sd7z3
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
xjq03c34
 
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
uehowe
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
Trish Parr
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
k4ncd0z
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
fovkoyb
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
Toptal Tech
 
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
zyfovom
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
Paul Walk
 

Recently uploaded (20)

制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
 
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
 
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
 
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
 
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
 
Design Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptxDesign Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptx
 
Azure EA Sponsorship - Customer Guide.pdf
Azure EA Sponsorship - Customer Guide.pdfAzure EA Sponsorship - Customer Guide.pdf
Azure EA Sponsorship - Customer Guide.pdf
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
 
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
 
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
 

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