SlideShare a Scribd company logo
Ed Charbeneau
Modernizing Web
Applications with
.NET 6
2
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
ASP.NET vs. ASP.NET Core
Full-Framework ASP.NET Core
• Windows only
• Matured
• Supported .NET v. 4.6.2 – 4.8+
• Cross Platform & OSS
• Performant
• Dependency Injection built-in
• Configuration improvements
• Improved Middleware Pipeline
• Modern Front-End Frameworks
• Rapid Release Cycle
3
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
ASP.NET Core
benefits:
• A unified story for building web UI
and web APIs.
• Architected for testability.
• Razor Pages makes coding page-
focused scenarios easier and more
productive.
• Blazor lets you use C# in the browser
alongside JavaScript. Share server-
side and client-side app logic all
written with .NET.
4
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
ASP.NET Core
benefits: (cont.)
• Ability to develop and run on
Windows, macOS, and Linux.
• Open-source and community-
focused.
• Integration of modern, client-side
frameworks and development
workflows.
• Support for hosting Remote
Procedure Call (RPC) services using
gRPC.
5
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
ASP.NET MVC -> ASP.NET Core MVC
• .NET Upgrade Assistant ⚠️
• Expect Breaking Changes ⚠️
• App Startup ⚠️
• App Settings ⚠️
• Static File hosting ⚠️
• Dependency Injection ⚠️
• Routing ⚠️
6
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
ASP.NET MVC -> ASP.NET Core MVC
• HtmlHelpers are generally
unchanged ✅
• HTML ✅
• CSS ✅
• JavaScript ✅
7
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
ASP.NET vs. ASP.NET Core: UI
Full-Framework ASP.NET Core
• WebForms
• MVC 5.2
• MVC
• Razor Pages
• Blazor
8
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
MVC
(Model-View-Controller)
• Clear separation of responsibilities
• Testable
• Flexible
• Server Rendered views, JavaScript
for interactivity
9
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
MVC (Model-View-Controller)
• Razor lets you render a
page/component using C#
• @ syntax
• Rendered on the server
• Client-side logic is JavaScript
(typically jQuery)
• Html Helpers / TagHelpers / Razor
Components
10
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Razor Pages
• ASP.NET without the fuss of MVC
• Feature focused
• MVVM like
• Server Rendered views, JavaScript
for interactivity
11
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Razor Pages
• Razor lets you render a
page/component using C#
• @ syntax
• Rendered on the server
• Client-side logic is JavaScript
(typically jQuery)
• Html Helpers / TagHelpers / Razor
Components
12
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Blazor Wasm
(WebAssembly)
• .NET in the Browser
• Web Standards
• Rendered Client-Side
• Single Page Application (SPA)
• Much like Angular/React but using C#
• Low Learning Curve for .NET Developers
• Great transition from WebForms or
Silverlight
13
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Blazor Server
• Same framework as Blazor Wasm
( minus WebAssembly )
• Rendered Server-Side, instead of
Client
• .NET on the server, thin client on the
browser
• Great for LOB apps
14
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Blazor
• Razor Components / RenderTree
• @ syntax
• Rendered on the client
• UI logic is C# instead of JS
15
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
ASP.NET in .NET Core: Component Models
Framework Component Models
MVC HtmlHelpers, TagHelpers, Razor Components*
Razor Pages HtmlHelpers, TagHelpers, Razor Components*
Blazor Razor Components
*Requires Blazor dependencies
Blazor Deep Dive
17
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Blazor is a new .NET web framework using C# and
HTML that runs in the browser.
What is Blazor
Browser + Razor = Blazor
18
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Just the FAQs
What it IS What it is NOT
• Client-side C#
• Web Standard Technologies
• WebAssembly
• .NET Standard
• A Plugin
• ASP.NET WebForms
• Trans-piled JavaScript
PUBLISHING
COMPONENT MODEL FORMS & VALIDATION
DEPENDENCY INJECTION
AUTO REBUILD
UNIT TESTING
JAVASCRIPT INTEROP
SERVER-SIDE RENDERING
DEBUGGING
INTELLISENSE & TOOLING
LAYOUTS
ASSEMBLY TRIMMING
COMPONENT PACKAGES
ROUTING
Blazor
20
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
blazorREPL.Telerik.com
• Write / Run / Share / Embed
• Live in the browser
• No install
• No account required
• Completely FREE
21
© 2020 ProgressSoftware Corporation and/or its subsidiaries or affiliates. All rights reserved.
Blazor:Client& Server
https://...
DOM
Razor Components
.NET
WebAssembly
https...
DOM
ASP.NET
Core
SignalR
Razor Components
.NET
22
© 2020 ProgressSoftware Corporation and/or its subsidiaries or affiliates. All rights reserved.
HowClient-SideWorks
https://...
Engine
Compiler
Byte Code
DOM
Parser
Foo.js
23
© 2020 ProgressSoftware Corporation and/or its subsidiaries or affiliates. All rights reserved.
HowClient-SideWorks
https://...
DOM
Engine
Parser
Compiler
Byte Code
Foo.wasm
Parser
Compiler
24
© 2020 ProgressSoftware Corporation and/or its subsidiaries or affiliates. All rights reserved.
HowClient-SideWorks
https://...
DOM
Engine
mono.wasm
.NET Runtime
25
© 2020 ProgressSoftware Corporation and/or its subsidiaries or affiliates. All rights reserved.
HowClient-SideWorks
https://...
DOM
.NET Runtime
.NET Application
App.dll
26
© 2020 ProgressSoftware Corporation and/or its subsidiaries or affiliates. All rights reserved.
https...
HowServer-SideWorks
ASP.NET Core
.NET Runtime
SignalR Blazor.server.js
DOM
27
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Let’s Compare
Client-Side Server-Side
• Low-no server overhead
• RESTful
• Offline & PWA capable
• Larger payload size
• Disconnected Environment
• Performance
• Tiny Payload Size
• Less Abstraction
• Pre-Rendering
• Connection Required
• Server Resources
Blazor Demo
29
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Hybrid apps with .NET & Blazor
Native desktop app
Web view
Native mobile app
Web view
.NET
.NET
Blazor
Blazor
30
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Hybrid app benefits
• Reuse existing web development skills and code
• Access to all the native capabilities of the device
• Mix native & web UI
• Reduce app development time
31
© 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Reuse UI components across native & web
Mix & match web and native UI
Directly access native device functionality
Cross-platform mobile & desktop apps
(primary focus on desktop for .NET 7+)
Blazor hybrid apps with
.NET Multi-platform App UI
.NET Multi-platform App UI
WinUI Mac
Catalyst
Android
iOS
iOS
macOS
github.com/dotnet/maui
Blazor
Blazor Hybrid Demo
Modernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptx

More Related Content

What's hot

NEXT.JS
NEXT.JSNEXT.JS
Intro to react native
Intro to react nativeIntro to react native
Intro to react native
ModusJesus
 
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
 
.NET6.pptx
.NET6.pptx.NET6.pptx
Node js introduction
Node js introductionNode js introduction
Node js introduction
Joseph de Castelnau
 
Universal React apps in Next.js
Universal React apps in Next.jsUniversal React apps in Next.js
Universal React apps in Next.js
🐕 Łukasz Ostrowski
 
Spring boot
Spring bootSpring boot
Spring boot
Gyanendra Yadav
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
Docker, Inc.
 
Maven ppt
Maven pptMaven ppt
Maven ppt
natashasweety7
 
Build Automation using Maven
Build Automation using Maven Build Automation using Maven
Build Automation using Maven
Ankit Gubrani
 
.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
Avanade Nederland
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptx
apidays
 
React native
React nativeReact native
Introduction Node.js
Introduction Node.jsIntroduction Node.js
Introduction Node.js
Erik van Appeldoorn
 
Nodejs presentation
Nodejs presentationNodejs presentation
Nodejs presentation
Arvind Devaraj
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
Viyaan Jhiingade
 
Apache Maven
Apache MavenApache Maven
Apache Maven
Rahul Tanwani
 
ansible why ?
ansible why ?ansible why ?
ansible why ?
Yashar Esmaildokht
 

What's hot (20)

NEXT.JS
NEXT.JSNEXT.JS
NEXT.JS
 
Intro to react native
Intro to react nativeIntro to react native
Intro to react native
 
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
 
.NET6.pptx
.NET6.pptx.NET6.pptx
.NET6.pptx
 
Node js introduction
Node js introductionNode js introduction
Node js introduction
 
Universal React apps in Next.js
Universal React apps in Next.jsUniversal React apps in Next.js
Universal React apps in Next.js
 
Spring boot
Spring bootSpring boot
Spring boot
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 
Maven ppt
Maven pptMaven ppt
Maven ppt
 
Tomcat
TomcatTomcat
Tomcat
 
Build Automation using Maven
Build Automation using Maven Build Automation using Maven
Build Automation using Maven
 
.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
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptx
 
React native
React nativeReact native
React native
 
Introduction Node.js
Introduction Node.jsIntroduction Node.js
Introduction Node.js
 
Nodejs presentation
Nodejs presentationNodejs presentation
Nodejs presentation
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Apache Maven
Apache MavenApache Maven
Apache Maven
 
ansible why ?
ansible why ?ansible why ?
ansible why ?
 

Similar to Modernizing Web Apps with .NET 6.pptx

Goodbye JavaScript Hello Blazor
Goodbye JavaScript Hello BlazorGoodbye JavaScript Hello Blazor
Goodbye JavaScript Hello Blazor
Ed Charbeneau
 
Blazor Full-Stack
Blazor Full-StackBlazor Full-Stack
Blazor Full-Stack
Ed Charbeneau
 
Node.js Tools Ecosystem
Node.js Tools EcosystemNode.js Tools Ecosystem
Node.js Tools Ecosystem
Rocket Software
 
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
Alen Leit
 
CI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and FargateCI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and Fargate
Amazon Web Services
 
Full Steam Ahead, R2DBC!
Full Steam Ahead, R2DBC!Full Steam Ahead, R2DBC!
Full Steam Ahead, R2DBC!
VMware Tanzu
 
Application development using Zend Framework
Application development using Zend FrameworkApplication development using Zend Framework
Application development using Zend Framework
Mahmud Ahsan
 
DevOps for Mainframe: Open Source Fast Track
DevOps for Mainframe: Open Source Fast TrackDevOps for Mainframe: Open Source Fast Track
DevOps for Mainframe: Open Source Fast Track
DevOps.com
 
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
 
Asp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech SoftwareAsp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech Software
Ritwik Das
 
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
 
.NET Conf 2019 高雄場 - .NET Core 3.0
.NET Conf 2019 高雄場 - .NET Core 3.0.NET Conf 2019 高雄場 - .NET Core 3.0
.NET Conf 2019 高雄場 - .NET Core 3.0
Jeff Chu
 
SpringPeople Building Web Sites with ASP.NET MVC FRAMEWORK
SpringPeople Building Web Sites with ASP.NET MVC FRAMEWORKSpringPeople Building Web Sites with ASP.NET MVC FRAMEWORK
SpringPeople Building Web Sites with ASP.NET MVC FRAMEWORK
SpringPeople
 
IBM - Developing portlets using Script portlet in WP 8001
IBM - Developing portlets using Script portlet in WP 8001IBM - Developing portlets using Script portlet in WP 8001
IBM - Developing portlets using Script portlet in WP 8001Vinayak Tavargeri
 
Building share point apps with angularjs
Building share point apps with angularjsBuilding share point apps with angularjs
Building share point apps with angularjs
Ahmed Elharouny
 
PDF_Slide__Memodernisasi_aplikasi_Microsoft_Anda_dengan_cepat_di_AWS.pdf
PDF_Slide__Memodernisasi_aplikasi_Microsoft_Anda_dengan_cepat_di_AWS.pdfPDF_Slide__Memodernisasi_aplikasi_Microsoft_Anda_dengan_cepat_di_AWS.pdf
PDF_Slide__Memodernisasi_aplikasi_Microsoft_Anda_dengan_cepat_di_AWS.pdf
Ropiudin5
 
【BS1】What’s new in visual studio 2022 and c# 10
【BS1】What’s new in visual studio 2022 and c# 10【BS1】What’s new in visual studio 2022 and c# 10
【BS1】What’s new in visual studio 2022 and c# 10
日本マイクロソフト株式会社
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First Look
VMware Tanzu
 

Similar to Modernizing Web Apps with .NET 6.pptx (20)

Goodbye JavaScript Hello Blazor
Goodbye JavaScript Hello BlazorGoodbye JavaScript Hello Blazor
Goodbye JavaScript Hello Blazor
 
Blazor Full-Stack
Blazor Full-StackBlazor Full-Stack
Blazor Full-Stack
 
Node.js Tools Ecosystem
Node.js Tools EcosystemNode.js Tools Ecosystem
Node.js Tools Ecosystem
 
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
 
CI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and FargateCI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and Fargate
 
Full Steam Ahead, R2DBC!
Full Steam Ahead, R2DBC!Full Steam Ahead, R2DBC!
Full Steam Ahead, R2DBC!
 
ASP.pptx
ASP.pptxASP.pptx
ASP.pptx
 
Application development using Zend Framework
Application development using Zend FrameworkApplication development using Zend Framework
Application development using Zend Framework
 
DevOps for Mainframe: Open Source Fast Track
DevOps for Mainframe: Open Source Fast TrackDevOps for Mainframe: Open Source Fast Track
DevOps for Mainframe: Open Source Fast Track
 
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
 
Asp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech SoftwareAsp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech Software
 
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
 
.NET Conf 2019 高雄場 - .NET Core 3.0
.NET Conf 2019 高雄場 - .NET Core 3.0.NET Conf 2019 高雄場 - .NET Core 3.0
.NET Conf 2019 高雄場 - .NET Core 3.0
 
Ajax World West
Ajax World WestAjax World West
Ajax World West
 
SpringPeople Building Web Sites with ASP.NET MVC FRAMEWORK
SpringPeople Building Web Sites with ASP.NET MVC FRAMEWORKSpringPeople Building Web Sites with ASP.NET MVC FRAMEWORK
SpringPeople Building Web Sites with ASP.NET MVC FRAMEWORK
 
IBM - Developing portlets using Script portlet in WP 8001
IBM - Developing portlets using Script portlet in WP 8001IBM - Developing portlets using Script portlet in WP 8001
IBM - Developing portlets using Script portlet in WP 8001
 
Building share point apps with angularjs
Building share point apps with angularjsBuilding share point apps with angularjs
Building share point apps with angularjs
 
PDF_Slide__Memodernisasi_aplikasi_Microsoft_Anda_dengan_cepat_di_AWS.pdf
PDF_Slide__Memodernisasi_aplikasi_Microsoft_Anda_dengan_cepat_di_AWS.pdfPDF_Slide__Memodernisasi_aplikasi_Microsoft_Anda_dengan_cepat_di_AWS.pdf
PDF_Slide__Memodernisasi_aplikasi_Microsoft_Anda_dengan_cepat_di_AWS.pdf
 
【BS1】What’s new in visual studio 2022 and c# 10
【BS1】What’s new in visual studio 2022 and c# 10【BS1】What’s new in visual studio 2022 and c# 10
【BS1】What’s new in visual studio 2022 and c# 10
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First Look
 

More from Ed Charbeneau

Writing JavaScript for C# Blazor.pptx
Writing JavaScript for C# Blazor.pptxWriting JavaScript for C# Blazor.pptx
Writing JavaScript for C# Blazor.pptx
Ed Charbeneau
 
Blazor Stability Testing Tools for Bullet Proof Applications
Blazor Stability Testing Tools for Bullet Proof ApplicationsBlazor Stability Testing Tools for Bullet Proof Applications
Blazor Stability Testing Tools for Bullet Proof Applications
Ed Charbeneau
 
Secrets of a Blazor Component Artisan (v2)
Secrets of a Blazor Component Artisan (v2)Secrets of a Blazor Component Artisan (v2)
Secrets of a Blazor Component Artisan (v2)
Ed Charbeneau
 
Modernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptxModernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptx
Ed Charbeneau
 
Secrets of a Blazor Component Artisan
Secrets of a Blazor Component ArtisanSecrets of a Blazor Component Artisan
Secrets of a Blazor Component Artisan
Ed Charbeneau
 
Writing java script for Csharp's Blazor
Writing java script for Csharp's BlazorWriting java script for Csharp's Blazor
Writing java script for Csharp's Blazor
Ed Charbeneau
 
Razor into the Razor'verse
Razor into the Razor'verseRazor into the Razor'verse
Razor into the Razor'verse
Ed Charbeneau
 
Blazor
BlazorBlazor
Giving Clarity to LINQ Queries by Extending Expressions R2
Giving Clarity to LINQ Queries by Extending Expressions R2Giving Clarity to LINQ Queries by Extending Expressions R2
Giving Clarity to LINQ Queries by Extending Expressions R2
Ed Charbeneau
 
The future of .NET lightning talk
The future of .NET lightning talkThe future of .NET lightning talk
The future of .NET lightning talk
Ed Charbeneau
 
Into the next dimension
Into the next dimensionInto the next dimension
Into the next dimension
Ed Charbeneau
 
Giving Clarity to LINQ Queries by Extending Expressions
Giving Clarity to LINQ Queries by Extending ExpressionsGiving Clarity to LINQ Queries by Extending Expressions
Giving Clarity to LINQ Queries by Extending Expressions
Ed Charbeneau
 
What is new in Q2 2015
What is new in Q2 2015What is new in Q2 2015
What is new in Q2 2015
Ed Charbeneau
 
TelerikNEXT What's new in UI for ASP.NET AJAX
TelerikNEXT What's new in UI for ASP.NET AJAXTelerikNEXT What's new in UI for ASP.NET AJAX
TelerikNEXT What's new in UI for ASP.NET AJAX
Ed Charbeneau
 
Journey to JavaScript (from C#)
Journey to JavaScript (from C#)Journey to JavaScript (from C#)
Journey to JavaScript (from C#)
Ed Charbeneau
 
Refactoring css
Refactoring cssRefactoring css
Refactoring css
Ed Charbeneau
 
Don't be a stereotype: Rapid Prototype
Don't be a stereotype: Rapid PrototypeDon't be a stereotype: Rapid Prototype
Don't be a stereotype: Rapid Prototype
Ed Charbeneau
 
A crash course in responsive design
A crash course in responsive designA crash course in responsive design
A crash course in responsive design
Ed Charbeneau
 

More from Ed Charbeneau (18)

Writing JavaScript for C# Blazor.pptx
Writing JavaScript for C# Blazor.pptxWriting JavaScript for C# Blazor.pptx
Writing JavaScript for C# Blazor.pptx
 
Blazor Stability Testing Tools for Bullet Proof Applications
Blazor Stability Testing Tools for Bullet Proof ApplicationsBlazor Stability Testing Tools for Bullet Proof Applications
Blazor Stability Testing Tools for Bullet Proof Applications
 
Secrets of a Blazor Component Artisan (v2)
Secrets of a Blazor Component Artisan (v2)Secrets of a Blazor Component Artisan (v2)
Secrets of a Blazor Component Artisan (v2)
 
Modernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptxModernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptx
 
Secrets of a Blazor Component Artisan
Secrets of a Blazor Component ArtisanSecrets of a Blazor Component Artisan
Secrets of a Blazor Component Artisan
 
Writing java script for Csharp's Blazor
Writing java script for Csharp's BlazorWriting java script for Csharp's Blazor
Writing java script for Csharp's Blazor
 
Razor into the Razor'verse
Razor into the Razor'verseRazor into the Razor'verse
Razor into the Razor'verse
 
Blazor
BlazorBlazor
Blazor
 
Giving Clarity to LINQ Queries by Extending Expressions R2
Giving Clarity to LINQ Queries by Extending Expressions R2Giving Clarity to LINQ Queries by Extending Expressions R2
Giving Clarity to LINQ Queries by Extending Expressions R2
 
The future of .NET lightning talk
The future of .NET lightning talkThe future of .NET lightning talk
The future of .NET lightning talk
 
Into the next dimension
Into the next dimensionInto the next dimension
Into the next dimension
 
Giving Clarity to LINQ Queries by Extending Expressions
Giving Clarity to LINQ Queries by Extending ExpressionsGiving Clarity to LINQ Queries by Extending Expressions
Giving Clarity to LINQ Queries by Extending Expressions
 
What is new in Q2 2015
What is new in Q2 2015What is new in Q2 2015
What is new in Q2 2015
 
TelerikNEXT What's new in UI for ASP.NET AJAX
TelerikNEXT What's new in UI for ASP.NET AJAXTelerikNEXT What's new in UI for ASP.NET AJAX
TelerikNEXT What's new in UI for ASP.NET AJAX
 
Journey to JavaScript (from C#)
Journey to JavaScript (from C#)Journey to JavaScript (from C#)
Journey to JavaScript (from C#)
 
Refactoring css
Refactoring cssRefactoring css
Refactoring css
 
Don't be a stereotype: Rapid Prototype
Don't be a stereotype: Rapid PrototypeDon't be a stereotype: Rapid Prototype
Don't be a stereotype: Rapid Prototype
 
A crash course in responsive design
A crash course in responsive designA crash course in responsive design
A crash course in responsive design
 

Recently uploaded

A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 

Recently uploaded (20)

A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 

Modernizing Web Apps with .NET 6.pptx

  • 2. 2 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. ASP.NET vs. ASP.NET Core Full-Framework ASP.NET Core • Windows only • Matured • Supported .NET v. 4.6.2 – 4.8+ • Cross Platform & OSS • Performant • Dependency Injection built-in • Configuration improvements • Improved Middleware Pipeline • Modern Front-End Frameworks • Rapid Release Cycle
  • 3. 3 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. ASP.NET Core benefits: • A unified story for building web UI and web APIs. • Architected for testability. • Razor Pages makes coding page- focused scenarios easier and more productive. • Blazor lets you use C# in the browser alongside JavaScript. Share server- side and client-side app logic all written with .NET.
  • 4. 4 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. ASP.NET Core benefits: (cont.) • Ability to develop and run on Windows, macOS, and Linux. • Open-source and community- focused. • Integration of modern, client-side frameworks and development workflows. • Support for hosting Remote Procedure Call (RPC) services using gRPC.
  • 5. 5 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. ASP.NET MVC -> ASP.NET Core MVC • .NET Upgrade Assistant ⚠️ • Expect Breaking Changes ⚠️ • App Startup ⚠️ • App Settings ⚠️ • Static File hosting ⚠️ • Dependency Injection ⚠️ • Routing ⚠️
  • 6. 6 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. ASP.NET MVC -> ASP.NET Core MVC • HtmlHelpers are generally unchanged ✅ • HTML ✅ • CSS ✅ • JavaScript ✅
  • 7. 7 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. ASP.NET vs. ASP.NET Core: UI Full-Framework ASP.NET Core • WebForms • MVC 5.2 • MVC • Razor Pages • Blazor
  • 8. 8 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. MVC (Model-View-Controller) • Clear separation of responsibilities • Testable • Flexible • Server Rendered views, JavaScript for interactivity
  • 9. 9 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. MVC (Model-View-Controller) • Razor lets you render a page/component using C# • @ syntax • Rendered on the server • Client-side logic is JavaScript (typically jQuery) • Html Helpers / TagHelpers / Razor Components
  • 10. 10 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Razor Pages • ASP.NET without the fuss of MVC • Feature focused • MVVM like • Server Rendered views, JavaScript for interactivity
  • 11. 11 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Razor Pages • Razor lets you render a page/component using C# • @ syntax • Rendered on the server • Client-side logic is JavaScript (typically jQuery) • Html Helpers / TagHelpers / Razor Components
  • 12. 12 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Blazor Wasm (WebAssembly) • .NET in the Browser • Web Standards • Rendered Client-Side • Single Page Application (SPA) • Much like Angular/React but using C# • Low Learning Curve for .NET Developers • Great transition from WebForms or Silverlight
  • 13. 13 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Blazor Server • Same framework as Blazor Wasm ( minus WebAssembly ) • Rendered Server-Side, instead of Client • .NET on the server, thin client on the browser • Great for LOB apps
  • 14. 14 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Blazor • Razor Components / RenderTree • @ syntax • Rendered on the client • UI logic is C# instead of JS
  • 15. 15 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. ASP.NET in .NET Core: Component Models Framework Component Models MVC HtmlHelpers, TagHelpers, Razor Components* Razor Pages HtmlHelpers, TagHelpers, Razor Components* Blazor Razor Components *Requires Blazor dependencies
  • 17. 17 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Blazor is a new .NET web framework using C# and HTML that runs in the browser. What is Blazor Browser + Razor = Blazor
  • 18. 18 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Just the FAQs What it IS What it is NOT • Client-side C# • Web Standard Technologies • WebAssembly • .NET Standard • A Plugin • ASP.NET WebForms • Trans-piled JavaScript
  • 19. PUBLISHING COMPONENT MODEL FORMS & VALIDATION DEPENDENCY INJECTION AUTO REBUILD UNIT TESTING JAVASCRIPT INTEROP SERVER-SIDE RENDERING DEBUGGING INTELLISENSE & TOOLING LAYOUTS ASSEMBLY TRIMMING COMPONENT PACKAGES ROUTING Blazor
  • 20. 20 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. blazorREPL.Telerik.com • Write / Run / Share / Embed • Live in the browser • No install • No account required • Completely FREE
  • 21. 21 © 2020 ProgressSoftware Corporation and/or its subsidiaries or affiliates. All rights reserved. Blazor:Client& Server https://... DOM Razor Components .NET WebAssembly https... DOM ASP.NET Core SignalR Razor Components .NET
  • 22. 22 © 2020 ProgressSoftware Corporation and/or its subsidiaries or affiliates. All rights reserved. HowClient-SideWorks https://... Engine Compiler Byte Code DOM Parser Foo.js
  • 23. 23 © 2020 ProgressSoftware Corporation and/or its subsidiaries or affiliates. All rights reserved. HowClient-SideWorks https://... DOM Engine Parser Compiler Byte Code Foo.wasm Parser Compiler
  • 24. 24 © 2020 ProgressSoftware Corporation and/or its subsidiaries or affiliates. All rights reserved. HowClient-SideWorks https://... DOM Engine mono.wasm .NET Runtime
  • 25. 25 © 2020 ProgressSoftware Corporation and/or its subsidiaries or affiliates. All rights reserved. HowClient-SideWorks https://... DOM .NET Runtime .NET Application App.dll
  • 26. 26 © 2020 ProgressSoftware Corporation and/or its subsidiaries or affiliates. All rights reserved. https... HowServer-SideWorks ASP.NET Core .NET Runtime SignalR Blazor.server.js DOM
  • 27. 27 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Let’s Compare Client-Side Server-Side • Low-no server overhead • RESTful • Offline & PWA capable • Larger payload size • Disconnected Environment • Performance • Tiny Payload Size • Less Abstraction • Pre-Rendering • Connection Required • Server Resources
  • 29. 29 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Hybrid apps with .NET & Blazor Native desktop app Web view Native mobile app Web view .NET .NET Blazor Blazor
  • 30. 30 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Hybrid app benefits • Reuse existing web development skills and code • Access to all the native capabilities of the device • Mix native & web UI • Reduce app development time
  • 31. 31 © 2022 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Reuse UI components across native & web Mix & match web and native UI Directly access native device functionality Cross-platform mobile & desktop apps (primary focus on desktop for .NET 7+) Blazor hybrid apps with .NET Multi-platform App UI .NET Multi-platform App UI WinUI Mac Catalyst Android iOS iOS macOS github.com/dotnet/maui Blazor

Editor's Notes

  1. This delineation of responsibilities helps you scale the application in terms of complexity because it's easier to code, debug, and test something (model, view, or controller) that has a single job.
  2. Blazor is a fully featured single page application framework by Microsoft It has a huge ecosystem of .NET packages on NuGet because it’s compatible with .NET standard
  3. Blazor is independent of it’s hosting model This means we have options when hosting host Blazor applications. The most common options are Client-Side, and Server-Side hosting. Let’s discuss the two options starting with Client-Side Blazor.
  4. In a typical application JavaScript is downloaded by the browser It is then parsed, compiled, and turned into byte code before it can execute.
  5. A more modern approach is to use WebAssembly, which is a standard byte code browsers can execute. What makes WebAssembly different, is that it is parsed and compiled before it is delivered to the browser. Languages other than JavaScript, such as C++ can compile directly to WebAssembly byte code.
  6. Microsoft has taken the .NET runtime and compiled as web assembly. This makes it possible to run .NET code directly in the browser.
  7. This is how Blazor enables developers to write .NET code in a client-side web application. Because the .NET runtime is available on the client, we can utilize virtually any .NET Standard assembly.
  8. If we choose to host Blazor on the server