SlideShare a Scribd company logo
Azure Community Conference 2021
India’s largest Azure Conference
#AzConfDev
#AzConfDev
Maurice de Beijer
The Problem Solver
Freelance lead/developer/instructor
#AzConfDev
Building Reliable Applications Using React,
.NET & Azure
Maurice de Beijer - @mauricedb
#AzConfDev
Topics
• JavaScript versus TypeScript
• Hosting
• Test-driven development
• API types and updates
• Git Workflow
• Feature Flags
• Runtime errors
#AzConfDev
Opinions Ahead 
#AzConfDev
Cheese
#AzConfDev
Swiss Cheese Model
#AzConfDev
JavaScript versus TypeScript
#AzConfDev
TypeScript
#AzConfDev
Language features
• Type Unions
• Tuples
• Optional Chaining
• Nullish Coalescing operator
#AzConfDev
JS Doc
• Annotate your JavaScript with JS Doc types
• If you made the mistake of not starting with TypeScript 
#AzConfDev
Mapped Types
#AzConfDev
Opaque Types
#AzConfDev
ES Modules
Named imports instead of import default
Better with tooling and discoverability
#AzConfDev
React and import default
#AzConfDev
ESBuild
#AzConfDev
Hosting the front-end
#AzConfDev
Vite - During development
Next Generation Frontend Tooling
#AzConfDev
Azure Blob Storage – At runtime
#AzConfDev
Azure CDN
#AzConfDev
Routing Rules
#AzConfDev
Deploy From GitHub
#AzConfDev
Test-Driven Development
#AzConfDev
The traditional testing pyramid
Manual
End to End
Integration testing
Unit testing
#AzConfDev
Both windows are fine
#AzConfDev
A sturdy latch
#AzConfDev
A better testing pyramid for the web
Manual
End to End
Integration testing
Unit testing
#AzConfDev
Cypress.io
#AzConfDev
Cypress.io course 
#AzConfDev
Testing Front & Back End
#AzConfDev
Intercepting AJAX Requests
#AzConfDev
API Types and Updates
#AzConfDev
Open API
#AzConfDev
Swashbuckle for Azure Function
#AzConfDev
Nswag Generates TypeScript/C# Interfaces
#AzConfDev
API Version
#AzConfDev
Required ValueTypes
#AzConfDev
Validate API
Validate all data that crosses an external boundary
User input
Data from an API
#AzConfDev
Type Mapping
#AzConfDev
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
#AzConfDev
Checking the version
#AzConfDev
AJAX requests
The public internet is unreliable
Some requests will fail for random reasons
Use a retry policy to handle network errors
#AzConfDev
Retry Policy
#AzConfDev
Workflow
#AzConfDev
Workflow
Use short-lived Git feature branches
A few hours at most
Hide new or risky code behind a feature flag
Initially only available for developers/testers
#AzConfDev
Release Strategy
Release new features to a subset of users first
Fast Ring with user opt in
Percentage of users
One or more companies
One or more regions/countries
#AzConfDev
Feature Flags
#AzConfDev
Feature Flags
A simple feature flag system is not hard
But can become quite elaborate
Consider using a service like Azure App Configuration
Or a service like LaunchDarkly
#AzConfDev
Azure Configuration Function
#AzConfDev
React Configuration Provider
#AzConfDev
Conditional Rendering
#AzConfDev
Runtime errors
#AzConfDev
Runtime errors
Runtime errors need to be tracked
There is no code without bugs
Features like LocalStorage will be disabled for some users
Azure Application Insights works well
Tracks unhandled exceptions
Add an Error Boundary and track component errors
#AzConfDev
Runtime errors
#AzConfDev
Application Insights
#AzConfDev
Application Insights
#AzConfDev
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
Workflow
Use small and very short lived branches
Use feature flags to hide new code in production
Runtime errors will happen
Make sure you track them
#AzConfDev
Title Sponsors
Community Partner
#AzConfDev
Learning Partners
Security Partner
#AzConfDev
Communities
#AzConfDev
Q & A
#AzConfDev
Feedback
#AzConfDev
THANK YOU!
Building Reliable Applications Using React, .NET & Azure
Maurice de Beijer
@mauricedb

More Related Content

PPTX
Testing of React JS app
PPTX
Why I am hooked on the future of React
PDF
The complete-beginners-guide-to-react dyrr
PPTX
Web Performance & Latest in React
PPTX
Concurrent Rendering Adventures in React 18
PDF
Meetup React Sanca - 29/11/18 - React Testing
PPTX
Migration from AngularJS to Angular
PPTX
End to end test automation with cypress
Testing of React JS app
Why I am hooked on the future of React
The complete-beginners-guide-to-react dyrr
Web Performance & Latest in React
Concurrent Rendering Adventures in React 18
Meetup React Sanca - 29/11/18 - React Testing
Migration from AngularJS to Angular
End to end test automation with cypress

What's hot (20)

PPTX
Cypress for Testing
PPTX
Progressive Web App Testing With Cypress.io
PPTX
Introduction to Integration Testing With Cypress
PDF
Viktor Turskyi "Effective NodeJS Application Development"
PPTX
Cypress first impressions
PPTX
Fullstack workshop
PPTX
Memaksimalkan Non-Blocking IO pada Node.js
PDF
Getting Started with React Native (and should I use it at all?)
PDF
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
PPTX
Introduction to cypress in Angular (Chinese)
PDF
Stripe con 2021 UI stack
PDF
Using JHipster for generating Angular/Spring Boot apps
PDF
Intro To React Native
PDF
A Closer Look At React Native
PPTX
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
PPTX
Angular 2 Migration - JHipster Meetup 6
PPTX
PDF
Alexey Kupriyanenko "Release Early, Often, Stable"
PDF
Node, express & sails
Cypress for Testing
Progressive Web App Testing With Cypress.io
Introduction to Integration Testing With Cypress
Viktor Turskyi "Effective NodeJS Application Development"
Cypress first impressions
Fullstack workshop
Memaksimalkan Non-Blocking IO pada Node.js
Getting Started with React Native (and should I use it at all?)
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
Introduction to cypress in Angular (Chinese)
Stripe con 2021 UI stack
Using JHipster for generating Angular/Spring Boot apps
Intro To React Native
A Closer Look At React Native
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
Angular 2 Migration - JHipster Meetup 6
Alexey Kupriyanenko "Release Early, Often, Stable"
Node, express & sails
Ad

Similar to Building Reliable Applications Using React, .NET & Azure (20)

PPTX
Real Life Azure Functions Architecture
PPTX
Building Reliable Applications Using React, .NET & Azure
PPTX
The future for Software developers by 2040
PPTX
Building large and scalable mission critical applications with React
PPTX
Lessons learned on the Azure API Stewardship Journey.pptx
PDF
Microsoft Azure Developer Associate Singapore.pdf
PPTX
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
PDF
BlueHat v18 || Go build a tool - best practices for building a robust & e...
PDF
"Impact of front-end architecture on development cost", Viktor Turskyi
PPTX
NDC London 2020 - Challenges of Managing CoreFx Repo -- Karel Zikmund
PDF
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
PDF
Develop Azure compute solutions Part - 2
PPTX
DevDays 2011- Let’s get ready for the cloud: Building your applications so th...
PDF
Developing windows azure and web services brochure exam code 70-487
PDF
AZ-400: Define and implement continuous integration – Part 2
PPTX
Building large scalable mission critical business applications on the web
PDF
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
PDF
AZ-400 Session 1: Facilitate communication and collaboration
PDF
Let's banish "it works on my machine"
PPTX
Azure DevOps Training In Hyderabad | Azure DevOps Training In Ameerpet.pptx
Real Life Azure Functions Architecture
Building Reliable Applications Using React, .NET & Azure
The future for Software developers by 2040
Building large and scalable mission critical applications with React
Lessons learned on the Azure API Stewardship Journey.pptx
Microsoft Azure Developer Associate Singapore.pdf
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
BlueHat v18 || Go build a tool - best practices for building a robust & e...
"Impact of front-end architecture on development cost", Viktor Turskyi
NDC London 2020 - Challenges of Managing CoreFx Repo -- Karel Zikmund
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
Develop Azure compute solutions Part - 2
DevDays 2011- Let’s get ready for the cloud: Building your applications so th...
Developing windows azure and web services brochure exam code 70-487
AZ-400: Define and implement continuous integration – Part 2
Building large scalable mission critical business applications on the web
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
AZ-400 Session 1: Facilitate communication and collaboration
Let's banish "it works on my machine"
Azure DevOps Training In Hyderabad | Azure DevOps Training In Ameerpet.pptx
Ad

More from Maurice De Beijer [MVP] (20)

PPTX
Full-stack App in half a Day: Next.js 15 Development Bootcamp
PPTX
Production-ready Next.js App with Cursor AI
PPTX
Building Robust Web Applications with Test-Driven Development and Playwright:...
PDF
Mastering React Server Components and Server Actions in React 19
PPTX
Practice TypeScript Techniques Building React Server Components App
PPTX
A foolproof Way to Estimate a Software Project
PPTX
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
PPTX
Build reliable Svelte applications using Cypress
PPTX
Building reliable applications with React, C#, and Azure
PPTX
Building reliable web applications using Cypress
PPTX
Getting started with React Suspense and concurrent rendering
PPTX
React suspense, not just for Alfred Hitchcock
PPTX
From zero to hero with the Reactive extensions for JavaScript
PPTX
Why I am hooked on the future of React
PPTX
The new React
PPTX
From zero to hero with the reactive extensions for JavaScript
PPTX
Why I am hooked on the future of React
PPTX
I am hooked on React
PPTX
Create flexible React applications using GraphQL apis
PPTX
Create flexible react applications using GraphQL API's
Full-stack App in half a Day: Next.js 15 Development Bootcamp
Production-ready Next.js App with Cursor AI
Building Robust Web Applications with Test-Driven Development and Playwright:...
Mastering React Server Components and Server Actions in React 19
Practice TypeScript Techniques Building React Server Components App
A foolproof Way to Estimate a Software Project
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Build reliable Svelte applications using Cypress
Building reliable applications with React, C#, and Azure
Building reliable web applications using Cypress
Getting started with React Suspense and concurrent rendering
React suspense, not just for Alfred Hitchcock
From zero to hero with the Reactive extensions for JavaScript
Why I am hooked on the future of React
The new React
From zero to hero with the reactive extensions for JavaScript
Why I am hooked on the future of React
I am hooked on React
Create flexible React applications using GraphQL apis
Create flexible react applications using GraphQL API's

Recently uploaded (20)

PPT
Introduction Database Management System for Course Database
PPTX
ai tools demonstartion for schools and inter college
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
L1 - Introduction to python Backend.pptx
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Digital Systems & Binary Numbers (comprehensive )
PPTX
Transform Your Business with a Software ERP System
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
medical staffing services at VALiNTRY
PPTX
Introduction to Artificial Intelligence
PDF
Digital Strategies for Manufacturing Companies
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Introduction Database Management System for Course Database
ai tools demonstartion for schools and inter college
Odoo Companies in India – Driving Business Transformation.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
wealthsignaloriginal-com-DS-text-... (1).pdf
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
L1 - Introduction to python Backend.pptx
Softaken Excel to vCard Converter Software.pdf
Digital Systems & Binary Numbers (comprehensive )
Transform Your Business with a Software ERP System
Reimagine Home Health with the Power of Agentic AI​
Internet Downloader Manager (IDM) Crack 6.42 Build 41
medical staffing services at VALiNTRY
Introduction to Artificial Intelligence
Digital Strategies for Manufacturing Companies
VVF-Customer-Presentation2025-Ver1.9.pptx
Navsoft: AI-Powered Business Solutions & Custom Software Development
PTS Company Brochure 2025 (1).pdf.......
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free

Building Reliable Applications Using React, .NET & Azure