SlideShare a Scribd company logo
MSK.NET #10
Web Development with ASP.NET
CORE and React.JS
Web Evolution
Yesterday
Environment
• Predicted homogenous consumer environment
• Restricted types of clients (browser, desktop)
As a result this led to:
• Thick server and thin client
• Server is responsible not only for business
logic, but for content rendering as well
• Client is responsible for content presentation
Today
Environment
• Unpredicted heterogeneous consumer
environment
• Unrestricted types of clients
• Different browsers, different devices with different
form factors
• Not only desktops, but mobiles as well
• Not only people, but applications and machines
As a result this lead to:
• Segregation of Duties between server and clients
• Standards in connectivity protocols and data
formats
• Server is responsible only for business logic
• Server is exposed outside only data and services via
API
• Clients are responsible for content rendering and
presentation
High-Level Architecture
Desktop Mobile
API Server API Server API Server
Content Server
Static files & Assets
Node.JS Server
Initial pre-
rendering & SEO
Load Balancer
Browser
ClientSideFront-EndBack-End
Technology StackClientFront-EndBack-End
• IDE: Visual Studio 2015 with Update 3, Visual Studio 2017
• SOLUTION: REST API, ASP.NET CORE
• ORM: EF.CORE
• DATABASE: MS SQL SERVER
• HOSTING: KESTREL
• IDE: Visual Studio Code, IntelliJ IDEA 2017
• VIEW: React.JS
• MODEL: Redux
• TOOLS: WebPack (bundling, minification, cross-compilation with babel)
• HOSTING: Apache, Express, Firebase, Node.JS
• BROWSER: Chrome
• PRESENTATION & LAYOUT: Bootstrap
• TOOLS: React & Redux DevTools for Chrome (debug, monitoring)
Back-End Architecture
FRONT-END
DATABASE
KESTREL WEB SERVER
ASP.NET CORE APPLICATION
REST API CONTROLLERS
ENTITY FRAMEWORK CORE
BUSINESS SERVICES LAYER
VIEW MODEL ENTITIES
DOMAIN MODEL ENTITIES
DB CONTEXT or REPOSITORY & UOW PATTERNS
JSON
RAW DATA
CRUD+JSON
SQL
HTTP
Back-End REST API
Front-End Web Server (index.html, bundle.js, assets)
Single Page Application
Routing Middleware (Public & Protected Routes)
(UI state, Model state,
Router state)
React Framework
Redux Store
Fetching Middleware
Page Layouts (Container Components)
Presentation Components Input Forms
UI Components (Bootstrap, jQWidgets)
Development Tools (Logging, React & Redux DevTools)
Front-End Architecture
React Architecture
• React means what is “V” in MVC pattern.
• React is declarative and component-based. It
mixes JavaScript expressions with standard HTML
markup.
• React uses one-way data flow via “props” which
are down streamed from root element to all
children in component hierarchy. React
components are pure functions with props as
input and rendering as output. Props are
immutable.
• React creates virtual DOM for components tree.
Manipulations are done in virtual DOM, because
interventions with objects in browser DOM are
much more expensive then interventions with
POJO objects in JavaScript runtime. On each
rendering React reconciles changes between
current UI state and next UI state and only
applies necessary updates in browser DOM.
• React has a powerful composition model and
encourages using composition instead of
inheritance. It is possible via children prop and
high-ordered components.
React
Redux Architecture
• Redux attempts to make state mutations more
predictable. With some principles below.
• Single source of truth. The state of your
application is stored within one single store.
• State is read-only. The only way to change the
state is to make an action.
• Changes are made with reducers. Reducers are
pure functions which take the current state, an
action and return the next state. No side effects.
No API calls. No mutations. Just a calculation.
• Components are pure functions. Your React
components are subscribed to necessary slice of
application state in Redux store which is mapped
to components props. Once changes they are
interested in are happened, components are
automatically re-rendered with new props
extracted from the new state.
• Let’s create a simple web application – classic TODO list.
• Develop back-end with Asp.Net Core.
• Develop front-end with Reacj.JS and Redux.
Live Coding
• What else? React Native.
• What is next? React new generation – React Fiber.
• No cross-compilation. No interpretation. Web Assembly.
• No vendors. Try Open Source.
Web Development Tomorrow
• Speaker: Dmitry Tezhelnikov
• Email: dmitry.tezhelnikov@gmail.com
• Back-end demo source code:
https://github.com/DmitryTezh/msk.net-backend-demo.git
• Front-end demo source code:
https://github.com/DmitryTezh/msk.net-frontend-demo.git
• Video: https://www.youtube.com/watch?v=wg6QPyxDDho
Contacts

More Related Content

PDF
Single page applications with backbone js
PDF
Single Page Apps
PPTX
Beyond POLB (Plain Old Load Balancing)
PPTX
Web api using rest based architecture
PPTX
AngularJS 1.x - your first application (problems and solutions)
DOC
PPTX
Writing Scalable React Applications: Introduction
Single page applications with backbone js
Single Page Apps
Beyond POLB (Plain Old Load Balancing)
Web api using rest based architecture
AngularJS 1.x - your first application (problems and solutions)
Writing Scalable React Applications: Introduction

What's hot (20)

PDF
Request-Response Cycle of Ruby on Rails App
PDF
Rails request & middlewares
PPT
PPTX
Flux architecture
PDF
Beyond The Rails Way
PPTX
Rails Request & Middlewares
PPTX
Web : Request-Response Lifecycle (Ruby on Rails)
PPTX
Asp .net folders and web.config
PPTX
A Designer's Intro to Oracle JET
PPTX
Architectural Patterns for Scaling Microservices and APIs - GlueCon 2015
PDF
React + Redux for Web Developers
PDF
Introduce flux & react in practice
PPTX
Introduction to SQLStreamBuilder: Rich Streaming SQL Interface for Creating a...
PPTX
So you think you can scale
PPTX
Developing an aspnet web application
PPTX
Introduction to React
PPTX
Oracle JET and WebSocket
PDF
Introduction to asp.net
PPTX
Rest assured
Request-Response Cycle of Ruby on Rails App
Rails request & middlewares
Flux architecture
Beyond The Rails Way
Rails Request & Middlewares
Web : Request-Response Lifecycle (Ruby on Rails)
Asp .net folders and web.config
A Designer's Intro to Oracle JET
Architectural Patterns for Scaling Microservices and APIs - GlueCon 2015
React + Redux for Web Developers
Introduce flux & react in practice
Introduction to SQLStreamBuilder: Rich Streaming SQL Interface for Creating a...
So you think you can scale
Developing an aspnet web application
Introduction to React
Oracle JET and WebSocket
Introduction to asp.net
Rest assured
Ad

Similar to Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и React.JS» (20)

PPTX
Reactjs notes.pptx for web development- tutorial and theory
PPTX
mern _stack _power _point_ presentation(1)
PPTX
NEXTjs.pptxfggfgfdgfgfdgfdgfdgfdgfdgfdgfg
PDF
Mastering react with redux
PDF
React.js for Rails Developers
PPTX
reacts js with basic details Detailed_ReactJS_Presentation.pptx
PDF
Performance and Scalability Art of Isomorphic React Applications
PDF
React.js vs node.js
PPTX
mearn-stackjdksjdsfjdkofkdokodkojdj.pptx
PPTX
Comparing Angular and React JS for SPAs
PPTX
React js
PPTX
Progressive Web Apps and React
PPTX
React.js at Cortex
PPTX
React js Online Training
PPSX
React-Js-Online-Training-9028522.ppsx
PPTX
Mastering React: Building Modern and Interactive User Interfaces
DOCX
Top 10 Javascript Frameworks For Easy Web Development
PPTX
Introduction to react native with redux
PDF
An Overview of the React Ecosystem
PPSX
Intorduction to struts
Reactjs notes.pptx for web development- tutorial and theory
mern _stack _power _point_ presentation(1)
NEXTjs.pptxfggfgfdgfgfdgfdgfdgfdgfdgfdgfg
Mastering react with redux
React.js for Rails Developers
reacts js with basic details Detailed_ReactJS_Presentation.pptx
Performance and Scalability Art of Isomorphic React Applications
React.js vs node.js
mearn-stackjdksjdsfjdkofkdokodkojdj.pptx
Comparing Angular and React JS for SPAs
React js
Progressive Web Apps and React
React.js at Cortex
React js Online Training
React-Js-Online-Training-9028522.ppsx
Mastering React: Building Modern and Interactive User Interfaces
Top 10 Javascript Frameworks For Easy Web Development
Introduction to react native with redux
An Overview of the React Ecosystem
Intorduction to struts
Ad

More from MskDotNet Community (19)

PPTX
Антон Сысоев «IIoT: на границе HW и .NET»
PPTX
Николай Гусев «Функциональное программирование для C# разработчиков»
PDF
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
PDF
Юлия Ковалёва. Fscheck — альтернативный путь для unit тестов
PPTX
Владимир Кочетков "OWASP TOP 10 для.NET"
PDF
Дмитрий Сошников Искусственный интеллект и нейросети для .NET-разработчиков
PPTX
Викторина MskDotNet Субботник
PDF
Елизавета Голенок Переходим на mono или как это было
PDF
Иван Кочуркин. Теория и практика парсинга формальных языков
PDF
Павел Притчин "Конфигурации в.NET"
PPTX
Андрей Кирпичев "Гибкая модульность инструментами АОП"
PPTX
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
PDF
Андрей Матвеев "Основные принципы микросервисов и их реализации"
PDF
Александр Сурков «Вещи» в «Интернете вещей»
PDF
Петр Тимошевский «Industrial IoT на практике»
PDF
Стас Павлов «Построение безопасной архитектуры IoT решений на примере Azure I...
PDF
Илья Ефимов «IoC/DI на примере Autofac»
PDF
Кирилл Маурин «Проектирование и разработка модульных приложений»
PDF
Владимир Кошелев «Автоматический поиск ошибок»
Антон Сысоев «IIoT: на границе HW и .NET»
Николай Гусев «Функциональное программирование для C# разработчиков»
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Юлия Ковалёва. Fscheck — альтернативный путь для unit тестов
Владимир Кочетков "OWASP TOP 10 для.NET"
Дмитрий Сошников Искусственный интеллект и нейросети для .NET-разработчиков
Викторина MskDotNet Субботник
Елизавета Голенок Переходим на mono или как это было
Иван Кочуркин. Теория и практика парсинга формальных языков
Павел Притчин "Конфигурации в.NET"
Андрей Кирпичев "Гибкая модульность инструментами АОП"
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
Андрей Матвеев "Основные принципы микросервисов и их реализации"
Александр Сурков «Вещи» в «Интернете вещей»
Петр Тимошевский «Industrial IoT на практике»
Стас Павлов «Построение безопасной архитектуры IoT решений на примере Azure I...
Илья Ефимов «IoC/DI на примере Autofac»
Кирилл Маурин «Проектирование и разработка модульных приложений»
Владимир Кошелев «Автоматический поиск ошибок»

Recently uploaded (20)

PPT
Teaching material agriculture food technology
PDF
Electronic commerce courselecture one. Pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Approach and Philosophy of On baking technology
PPTX
Cloud computing and distributed systems.
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
KodekX | Application Modernization Development
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Teaching material agriculture food technology
Electronic commerce courselecture one. Pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Approach and Philosophy of On baking technology
Cloud computing and distributed systems.
Chapter 3 Spatial Domain Image Processing.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
“AI and Expert System Decision Support & Business Intelligence Systems”
Review of recent advances in non-invasive hemoglobin estimation
Mobile App Security Testing_ A Comprehensive Guide.pdf
Machine learning based COVID-19 study performance prediction
KodekX | Application Modernization Development
Advanced methodologies resolving dimensionality complications for autism neur...
Per capita expenditure prediction using model stacking based on satellite ima...
Unlocking AI with Model Context Protocol (MCP)
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
The AUB Centre for AI in Media Proposal.docx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025

Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и React.JS»

  • 1. MSK.NET #10 Web Development with ASP.NET CORE and React.JS
  • 2. Web Evolution Yesterday Environment • Predicted homogenous consumer environment • Restricted types of clients (browser, desktop) As a result this led to: • Thick server and thin client • Server is responsible not only for business logic, but for content rendering as well • Client is responsible for content presentation Today Environment • Unpredicted heterogeneous consumer environment • Unrestricted types of clients • Different browsers, different devices with different form factors • Not only desktops, but mobiles as well • Not only people, but applications and machines As a result this lead to: • Segregation of Duties between server and clients • Standards in connectivity protocols and data formats • Server is responsible only for business logic • Server is exposed outside only data and services via API • Clients are responsible for content rendering and presentation
  • 3. High-Level Architecture Desktop Mobile API Server API Server API Server Content Server Static files & Assets Node.JS Server Initial pre- rendering & SEO Load Balancer Browser ClientSideFront-EndBack-End
  • 4. Technology StackClientFront-EndBack-End • IDE: Visual Studio 2015 with Update 3, Visual Studio 2017 • SOLUTION: REST API, ASP.NET CORE • ORM: EF.CORE • DATABASE: MS SQL SERVER • HOSTING: KESTREL • IDE: Visual Studio Code, IntelliJ IDEA 2017 • VIEW: React.JS • MODEL: Redux • TOOLS: WebPack (bundling, minification, cross-compilation with babel) • HOSTING: Apache, Express, Firebase, Node.JS • BROWSER: Chrome • PRESENTATION & LAYOUT: Bootstrap • TOOLS: React & Redux DevTools for Chrome (debug, monitoring)
  • 5. Back-End Architecture FRONT-END DATABASE KESTREL WEB SERVER ASP.NET CORE APPLICATION REST API CONTROLLERS ENTITY FRAMEWORK CORE BUSINESS SERVICES LAYER VIEW MODEL ENTITIES DOMAIN MODEL ENTITIES DB CONTEXT or REPOSITORY & UOW PATTERNS JSON RAW DATA CRUD+JSON SQL HTTP
  • 6. Back-End REST API Front-End Web Server (index.html, bundle.js, assets) Single Page Application Routing Middleware (Public & Protected Routes) (UI state, Model state, Router state) React Framework Redux Store Fetching Middleware Page Layouts (Container Components) Presentation Components Input Forms UI Components (Bootstrap, jQWidgets) Development Tools (Logging, React & Redux DevTools) Front-End Architecture
  • 7. React Architecture • React means what is “V” in MVC pattern. • React is declarative and component-based. It mixes JavaScript expressions with standard HTML markup. • React uses one-way data flow via “props” which are down streamed from root element to all children in component hierarchy. React components are pure functions with props as input and rendering as output. Props are immutable. • React creates virtual DOM for components tree. Manipulations are done in virtual DOM, because interventions with objects in browser DOM are much more expensive then interventions with POJO objects in JavaScript runtime. On each rendering React reconciles changes between current UI state and next UI state and only applies necessary updates in browser DOM. • React has a powerful composition model and encourages using composition instead of inheritance. It is possible via children prop and high-ordered components. React
  • 8. Redux Architecture • Redux attempts to make state mutations more predictable. With some principles below. • Single source of truth. The state of your application is stored within one single store. • State is read-only. The only way to change the state is to make an action. • Changes are made with reducers. Reducers are pure functions which take the current state, an action and return the next state. No side effects. No API calls. No mutations. Just a calculation. • Components are pure functions. Your React components are subscribed to necessary slice of application state in Redux store which is mapped to components props. Once changes they are interested in are happened, components are automatically re-rendered with new props extracted from the new state.
  • 9. • Let’s create a simple web application – classic TODO list. • Develop back-end with Asp.Net Core. • Develop front-end with Reacj.JS and Redux. Live Coding
  • 10. • What else? React Native. • What is next? React new generation – React Fiber. • No cross-compilation. No interpretation. Web Assembly. • No vendors. Try Open Source. Web Development Tomorrow
  • 11. • Speaker: Dmitry Tezhelnikov • Email: dmitry.tezhelnikov@gmail.com • Back-end demo source code: https://github.com/DmitryTezh/msk.net-backend-demo.git • Front-end demo source code: https://github.com/DmitryTezh/msk.net-frontend-demo.git • Video: https://www.youtube.com/watch?v=wg6QPyxDDho Contacts