SlideShare a Scribd company logo
© ABL - The Problem Solver 1
Topics
 JavaScript versusTypeScript
 Hosting
 Test-driven development
 API types and updates
 Runtime errors
© ABL - The Problem Solver 2
Opinions
Ahead 
© ABL - The Problem Solver 3
Swiss
Cheese
Model
© ABL - The Problem Solver 4
 Maurice de Beijer
 The Problem Solver
 Microsoft MVP
 Freelance lead/developer/instructor
 Twitter: @mauricedb
 Web: http://www.TheProblemSolver.nl
 E-mail: maurice.de.beijer@gmail.com
5
© ABL - The Problem Solver
The React
Newsletter
© ABL - The Problem Solver 6
JavaScript versusTypeScript
© ABL - The Problem Solver 7
TypeScript
© ABL - The Problem Solver 8
Language
features
 Type Unions
 Tuples
 OptionalChaining
 Nullish Coalescing operator
© ABL - The Problem Solver 9
JS Doc  Annotate your JavaScript with JS Doc types
 If you made the mistake of not starting withTypeScript 
© ABL - The Problem Solver 10
MappedTypes
 type RT = Readonly<T>
 type PT = Partial<T>
 type MyProps = React.ComponentProps<typeof MyComponent>
 type Returns = ReturnType<typeof someFunction>;
 type Args = Parameters<typeof someFunction>
© ABL - The Problem Solver 11
ES Modules  Named imports instead of import default
 Better with tooling and discoverability
© ABL - The Problem Solver 12
React and
import default
© ABL - The Problem Solver 13
ESBuild
© ABL - The Problem Solver 14
Hosting the front-end
During development
© ABL - The Problem Solver 15
Vite
© ABL - The Problem Solver 16
Hosting the front-end
In production
© ABL - The Problem Solver 17
Azure Blob
Storage
© ABL - The Problem Solver 18
AzureCDN
© ABL - The Problem Solver 19
Routing Rules
© ABL - The Problem Solver 20
Deploy
From
GitHub
© ABL - The Problem Solver 21
Test-Driven Development
© ABL - The Problem Solver 22
The traditional
testing
pyramid
Manual
End to End
Integration testing
Unit testing
Both windows
are fine
Source
A sturdy latch
Source
A better
testing
pyramid for
the web
Manual
End to End
Integration testing
Unit testing
Cypress
© ABL - The Problem Solver 27
Testing
Front & Back
End
© ABL - The Problem Solver 28
Intercepting
AJAX
Requests
© ABL - The Problem Solver 29
APITypes andUpdates
© ABL - The Problem Solver 30
OpenAPI
© ABL - The Problem Solver 31
Swashbuckle
for the
Azure Function
© ABL - The Problem Solver 32
NSwag
Generates
TypeScript
Interfaces
© ABL - The Problem Solver 33
APIVersion
© ABL - The Problem Solver 34
Required
ValueTypes
© ABL - The Problem Solver 35
ValidateAPI
 Validate all data that crosses an external boundary
 User input
 Data from an API
© ABL - The Problem Solver 36
Type Mapping
© ABL - The Problem Solver 37
Long living
clients
 Some users never close their browser
 The same old version of the SPA can remain active
 Even when a newer version is available on the server
 Send the client version the server with each AJAX request
© ABL - The Problem Solver 38
Checking the
version
© ABL - The Problem Solver 39
AJAX requests
 The public internet is unreliable
 Some requests will fail for random reasons
 Use a retry policy to handle network errors
© ABL - The Problem Solver 40
Retry Policy
© ABL - The Problem Solver 41
Runtime errors
© ABL - The Problem Solver 42
Runtime errors
 Runtime errors need to be tracked
 There is no code without bugs 
 Features like LocalStorage will be disabled for some users
 Services like Azure Application Insights works well
 Tracks unhandled exceptions
 Add an Error Boundary and track component errors
© ABL - The Problem Solver 43
Runtime errors
© ABL - The Problem Solver 44
Application
Insights
© ABL - The Problem Solver 45
Application
Insights
© ABL - The Problem Solver 46
Conclusion
 TypeScript is a must have
 For any serious development
 Use BLOB storage & CDN
 Easy, fast and cheap hosting
 Test-driven development prevents bugs
 Use an End to End tool like Cypress
 API types and updates
 Automate the client types
 Always validate the incoming data
 Runtime errors will happen
 Make sure you track them
© ABL - The Problem Solver 47
Maurice de Beijer
@mauricedb
maurice.de.beijer
@gmail.com
© ABL - The Problem Solver 48

More Related Content

PPTX
Building large and scalable mission critical applications with React
Maurice De Beijer [MVP]
 
PPTX
I am hooked on React
Maurice De Beijer [MVP]
 
PPTX
Building Reliable Applications Using React, .NET & Azure
Maurice De Beijer [MVP]
 
PPTX
Jenkins as the Test Reporting Framework
Nitin Sharma
 
PDF
Testing lightning components feb 15th 2018
Richard Clark
 
PPTX
Story Testing Approach for Enterprise Applications using Selenium Framework
Oleksiy Rezchykov
 
PPTX
Modern software testing and processes 2019
Karim Fanadka
 
PDF
Virtual Dreamin Salesforce DevOps Top 10
Richard Clark
 
Building large and scalable mission critical applications with React
Maurice De Beijer [MVP]
 
I am hooked on React
Maurice De Beijer [MVP]
 
Building Reliable Applications Using React, .NET & Azure
Maurice De Beijer [MVP]
 
Jenkins as the Test Reporting Framework
Nitin Sharma
 
Testing lightning components feb 15th 2018
Richard Clark
 
Story Testing Approach for Enterprise Applications using Selenium Framework
Oleksiy Rezchykov
 
Modern software testing and processes 2019
Karim Fanadka
 
Virtual Dreamin Salesforce DevOps Top 10
Richard Clark
 

What's hot (20)

PDF
Adventures with Microservices
Anand Agrawal
 
PPTX
Unit Testing Asp.net and Asp.net MVC
Gil Zilberfeld
 
PDF
Alexey Kupriyanenko "Release Early, Often, Stable"
Fwdays
 
PDF
How to Build Single Page HTML5 Apps that Scale
Phil Leggetter
 
PDF
140 releases per month
Manuel Vacelet
 
PDF
Tests for Every Branch Using CircleCI and Sauce Labs to Continuously Test CS ...
Sauce Labs
 
PDF
Angular2 Upgrade
WealthBar Financial Services
 
PDF
Canadian Cloud Summit 2022 - SharePoint Framework Tests Introduction
Laurent Sittler
 
PDF
Rspec and Capybara Intro Tutorial at RailsConf 2013
Brian Sam-Bodden
 
PDF
Test & Dynamics CRM - extremeCRM Berlin 2012
Wael Hamze
 
PPTX
How to write better tests with Test Driven Development
Alex Hoffman
 
PPTX
Using REST with VSTS and TFS
Jeff Bramwell
 
PPTX
Building Extensions in VSTS and TFS
Jeff Bramwell
 
PDF
Continuous Delivery for Dynamics 365/CRM
Wael Hamze
 
PPT
Qtp testing
Ramu Palanki
 
PDF
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)
Alvaro Sanchez-Mariscal
 
PPTX
Feature toggles
Anand Agrawal
 
PDF
TRAX technical highlights
ESUG
 
PDF
Automated Testing in DevOps
Haufe-Lexware GmbH & Co KG
 
PDF
Testing CRM from a 360 View - extremeCRM Rome 2013
Wael Hamze
 
Adventures with Microservices
Anand Agrawal
 
Unit Testing Asp.net and Asp.net MVC
Gil Zilberfeld
 
Alexey Kupriyanenko "Release Early, Often, Stable"
Fwdays
 
How to Build Single Page HTML5 Apps that Scale
Phil Leggetter
 
140 releases per month
Manuel Vacelet
 
Tests for Every Branch Using CircleCI and Sauce Labs to Continuously Test CS ...
Sauce Labs
 
Canadian Cloud Summit 2022 - SharePoint Framework Tests Introduction
Laurent Sittler
 
Rspec and Capybara Intro Tutorial at RailsConf 2013
Brian Sam-Bodden
 
Test & Dynamics CRM - extremeCRM Berlin 2012
Wael Hamze
 
How to write better tests with Test Driven Development
Alex Hoffman
 
Using REST with VSTS and TFS
Jeff Bramwell
 
Building Extensions in VSTS and TFS
Jeff Bramwell
 
Continuous Delivery for Dynamics 365/CRM
Wael Hamze
 
Qtp testing
Ramu Palanki
 
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)
Alvaro Sanchez-Mariscal
 
Feature toggles
Anand Agrawal
 
TRAX technical highlights
ESUG
 
Automated Testing in DevOps
Haufe-Lexware GmbH & Co KG
 
Testing CRM from a 360 View - extremeCRM Rome 2013
Wael Hamze
 
Ad

Similar to Building reliable applications with React, C#, and Azure (20)

PPTX
Production-ready Next.js App with Cursor AI
Maurice De Beijer [MVP]
 
PPTX
Practice TypeScript Techniques Building React Server Components App
Maurice De Beijer [MVP]
 
PPTX
Building high-performance web applications with Preact
Maurice De Beijer [MVP]
 
PPTX
Why I am hooked on the future of React
Maurice De Beijer [MVP]
 
PDF
Continuous Deployment of your Application @SpringOne
ciberkleid
 
PDF
Continuous Deployment of your Application @JUGtoberfest
Marcin Grzejszczak
 
PDF
Continuous Deployment To The Cloud @DevoxxPL 2017
Marcin Grzejszczak
 
PPTX
Continuous Deployment to the cloud
VMware Tanzu
 
PPTX
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Maurice De Beijer [MVP]
 
PPTX
The new React
Maurice De Beijer [MVP]
 
PPTX
Better React state management with Redux
Maurice De Beijer [MVP]
 
PDF
Increasing velocity via serless semantics
Kfir Bloch
 
PPTX
Full-stack App in half a Day: Next.js 15 Development Bootcamp
Maurice De Beijer [MVP]
 
PPTX
Why I am hooked on the future of React
Maurice De Beijer [MVP]
 
PPTX
Improving the Quality of Existing Software
Steven Smith
 
PPTX
Legacy On Premise Apps Got You Down? No Problem - DevOps for All
Muly Gottlieb
 
PDF
Continuous Deployment of your Application @jSession#5
Marcin Grzejszczak
 
PPTX
Modernizing Web Apps with .NET 6.pptx
Ed Charbeneau
 
PPTX
Modernizing Web Apps with .NET 6.pptx
Ed Charbeneau
 
PPTX
Improving the Quality of Existing Software - DevIntersection April 2016
Steven Smith
 
Production-ready Next.js App with Cursor AI
Maurice De Beijer [MVP]
 
Practice TypeScript Techniques Building React Server Components App
Maurice De Beijer [MVP]
 
Building high-performance web applications with Preact
Maurice De Beijer [MVP]
 
Why I am hooked on the future of React
Maurice De Beijer [MVP]
 
Continuous Deployment of your Application @SpringOne
ciberkleid
 
Continuous Deployment of your Application @JUGtoberfest
Marcin Grzejszczak
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Marcin Grzejszczak
 
Continuous Deployment to the cloud
VMware Tanzu
 
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Maurice De Beijer [MVP]
 
The new React
Maurice De Beijer [MVP]
 
Better React state management with Redux
Maurice De Beijer [MVP]
 
Increasing velocity via serless semantics
Kfir Bloch
 
Full-stack App in half a Day: Next.js 15 Development Bootcamp
Maurice De Beijer [MVP]
 
Why I am hooked on the future of React
Maurice De Beijer [MVP]
 
Improving the Quality of Existing Software
Steven Smith
 
Legacy On Premise Apps Got You Down? No Problem - DevOps for All
Muly Gottlieb
 
Continuous Deployment of your Application @jSession#5
Marcin Grzejszczak
 
Modernizing Web Apps with .NET 6.pptx
Ed Charbeneau
 
Modernizing Web Apps with .NET 6.pptx
Ed Charbeneau
 
Improving the Quality of Existing Software - DevIntersection April 2016
Steven Smith
 
Ad

More from Maurice De Beijer [MVP] (19)

PPTX
Building Robust Web Applications with Test-Driven Development and Playwright:...
Maurice De Beijer [MVP]
 
PDF
Mastering React Server Components and Server Actions in React 19
Maurice De Beijer [MVP]
 
PPTX
A foolproof Way to Estimate a Software Project
Maurice De Beijer [MVP]
 
PPTX
Build reliable Svelte applications using Cypress
Maurice De Beijer [MVP]
 
PPTX
Building Reliable Applications Using React, .NET & Azure
Maurice De Beijer [MVP]
 
PPTX
Concurrent Rendering Adventures in React 18
Maurice De Beijer [MVP]
 
PPTX
Why I am hooked on the future of React
Maurice De Beijer [MVP]
 
PPTX
Building reliable web applications using Cypress
Maurice De Beijer [MVP]
 
PPTX
Getting started with React Suspense and concurrent rendering
Maurice De Beijer [MVP]
 
PPTX
React suspense, not just for Alfred Hitchcock
Maurice De Beijer [MVP]
 
PPTX
From zero to hero with the Reactive extensions for JavaScript
Maurice De Beijer [MVP]
 
PPTX
From zero to hero with the reactive extensions for JavaScript
Maurice De Beijer [MVP]
 
PPTX
Create flexible React applications using GraphQL apis
Maurice De Beijer [MVP]
 
PPTX
Create flexible react applications using GraphQL API's
Maurice De Beijer [MVP]
 
PPTX
Docker for a .NET web developer
Maurice De Beijer [MVP]
 
PPTX
From zero to hero with the reactive extensions for JavaScript
Maurice De Beijer [MVP]
 
PPTX
The productive developer guide to React
Maurice De Beijer [MVP]
 
PPTX
Docker containers on Windows
Maurice De Beijer [MVP]
 
PPTX
From zero to hero with the reactive extensions for java script
Maurice De Beijer [MVP]
 
Building Robust Web Applications with Test-Driven Development and Playwright:...
Maurice De Beijer [MVP]
 
Mastering React Server Components and Server Actions in React 19
Maurice De Beijer [MVP]
 
A foolproof Way to Estimate a Software Project
Maurice De Beijer [MVP]
 
Build reliable Svelte applications using Cypress
Maurice De Beijer [MVP]
 
Building Reliable Applications Using React, .NET & Azure
Maurice De Beijer [MVP]
 
Concurrent Rendering Adventures in React 18
Maurice De Beijer [MVP]
 
Why I am hooked on the future of React
Maurice De Beijer [MVP]
 
Building reliable web applications using Cypress
Maurice De Beijer [MVP]
 
Getting started with React Suspense and concurrent rendering
Maurice De Beijer [MVP]
 
React suspense, not just for Alfred Hitchcock
Maurice De Beijer [MVP]
 
From zero to hero with the Reactive extensions for JavaScript
Maurice De Beijer [MVP]
 
From zero to hero with the reactive extensions for JavaScript
Maurice De Beijer [MVP]
 
Create flexible React applications using GraphQL apis
Maurice De Beijer [MVP]
 
Create flexible react applications using GraphQL API's
Maurice De Beijer [MVP]
 
Docker for a .NET web developer
Maurice De Beijer [MVP]
 
From zero to hero with the reactive extensions for JavaScript
Maurice De Beijer [MVP]
 
The productive developer guide to React
Maurice De Beijer [MVP]
 
Docker containers on Windows
Maurice De Beijer [MVP]
 
From zero to hero with the reactive extensions for java script
Maurice De Beijer [MVP]
 

Recently uploaded (20)

PDF
CIFDAQ's Token Spotlight: SKY - A Forgotten Giant's Comeback?
CIFDAQ
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PPTX
Smart Infrastructure and Automation through IoT Sensors
Rejig Digital
 
PDF
Software Development Methodologies in 2025
KodekX
 
PDF
CIFDAQ'S Market Insight: BTC to ETH money in motion
CIFDAQ
 
PDF
Building High-Performance Oracle Teams: Strategic Staffing for Database Manag...
SMACT Works
 
PDF
agentic-ai-and-the-future-of-autonomous-systems.pdf
siddharthnetsavvies
 
PDF
Software Development Company | KodekX
KodekX
 
PPTX
Comunidade Salesforce São Paulo - Desmistificando o Omnistudio (Vlocity)
Francisco Vieira Júnior
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PPTX
How to Build a Scalable Micro-Investing Platform in 2025 - A Founder’s Guide ...
Third Rock Techkno
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
PDF
NewMind AI Monthly Chronicles - July 2025
NewMind AI
 
CIFDAQ's Token Spotlight: SKY - A Forgotten Giant's Comeback?
CIFDAQ
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
Smart Infrastructure and Automation through IoT Sensors
Rejig Digital
 
Software Development Methodologies in 2025
KodekX
 
CIFDAQ'S Market Insight: BTC to ETH money in motion
CIFDAQ
 
Building High-Performance Oracle Teams: Strategic Staffing for Database Manag...
SMACT Works
 
agentic-ai-and-the-future-of-autonomous-systems.pdf
siddharthnetsavvies
 
Software Development Company | KodekX
KodekX
 
Comunidade Salesforce São Paulo - Desmistificando o Omnistudio (Vlocity)
Francisco Vieira Júnior
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
How to Build a Scalable Micro-Investing Platform in 2025 - A Founder’s Guide ...
Third Rock Techkno
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
NewMind AI Monthly Chronicles - July 2025
NewMind AI
 

Building reliable applications with React, C#, and Azure