SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Services RESTful et SPA
Speaker
http://blog.cellenza.com/author/rboyer
Rémy Boyer
Consultant .NET
ASP.NET Web API
Un petit historique
Historique
• Créé en 2012, 3 ans après ASP.NET MVC
• Remplace WCF Data Services (ou ADO.NET Data Services)
• Introduit des concepts fondamentaux proches d’ASP.NET MVC
Couche HTTP
moderne
Routage
Négociation de
contenu
Filtres
IoC Self-Hosting System.Web.dll
Middlewares &
Owin
Limitations
• Des dépendances distinctes de MVC
• Impossible de mixer du MVC et du Web API dans un même
contrôleur
• Du code utilitaire dupliqué
• Mvc :
• Web Api :
• Self-host, un vœu pieux
• Microsoft.AspNet.WebApi.WebHost héberge Web API sur IIS avec
System.Web.dll
this.Request.Headers["User-Agent"]
this.Request.Headers.TryGetValues(
"User-Agent", out userAgentValues)
Le futur !
Web API et SignalR posent les bases de l’asp.net de
demain
Web API est maintenant intégré à ASP.NET MVC Core !
Services RESTful
Routes, requêtes et réponses
Démo
Routage
Démo
Réponses et
contenu
ASP.NET Javascript Services
ASP.NET et les SPA
Les SPA
Les SPA ont gagné en popularité ces dernières années
• De nouveaux frameworks apparaissent constamment
• Elles intéressent de nombreux développeurs
Elles exploitent davantage les capacités des navigateurs
• Elles sont très interactives
• Elles allègent le travail du serveur
• Elles diminuent les appels réseaux
• Il y a beaucoup plus de code client, front : du Javascript
Outillage
De l’outillage adapté s’est développé
• Runtime Javascript autonome (NodeJs)
• Repository de packages (npm)
• Task runners (Grunt, Gulp, Webpack)
• De nouveaux langages (Typescript, …)
• Transpileurs et compilateurs (tsc, Babel)
Outillage
Visual Studio 2015 intègre partiellement ces technologies
Javascript Services vise à combler ces manques
Contenu ASP.NET Javascript Services
Une collection de packages Nuget et npm
• Invocation de code Javascript dans Node.js depuis .NET Core
• Middleware Webpack pendant le développement
• Hot Module Replacement
• Rendu côté serveur du code Javascript
• Routing & Validation, côté client et côté serveur
Un modèle Yeoman pour démarrer les applications
Démo
Intérop
.NET Core
Node.JS
Webpack dev middleware
Webpack peut en faire beaucoup
• Compilation
• Bundling (concaténation, minification, uglification)
• Module Loader
• …
Le Hot Module Reload permet de remplacer le rafraichissement
automatique en rechargement incrémental à la volée
• Nécessite webpack-dev-server et l’utilisation de l’hôte NodeJS
Webpack dev middleware
Javascript Services peut intercepter les requêtes de fichiers JS et les
compiler à la volée
Browser
<script src="file.js">
ASP.NET Core
Webpack dev
Middleware
Node.JS
Compilation
Webpack
Démo
Webpack dev
Middleware

Weitere ähnliche Inhalte

Was ist angesagt?

Asp.net core 3
Asp.net core 3Asp.net core 3
Asp.net core 3MSDEVMTL
 
Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Quentin Frémeaux
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6Microsoft
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ ekino
 
Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Quentin Frémeaux
 
Intro grpc.net
Intro  grpc.netIntro  grpc.net
Intro grpc.netMSDEVMTL
 
Soirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSoirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSOAT
 
Angular + JHipster @ Paris JUG
Angular + JHipster @ Paris JUGAngular + JHipster @ Paris JUG
Angular + JHipster @ Paris JUGWilliam Marques
 
NodeJS for Mobile App
NodeJS for Mobile AppNodeJS for Mobile App
NodeJS for Mobile AppHabib MAALEM
 
Faire une app en JS moderne
Faire une app en JS moderneFaire une app en JS moderne
Faire une app en JS moderneRaphaël Boucher
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.jsTelecomValley
 
NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introductionToxicode
 
ASP.NET MVC 5 et Web API 2
ASP.NET MVC 5 et Web API 2ASP.NET MVC 5 et Web API 2
ASP.NET MVC 5 et Web API 2Microsoft
 
Déploiement dans Azure depuis Visual Studio Team Services
Déploiement dans Azure depuis Visual Studio Team ServicesDéploiement dans Azure depuis Visual Studio Team Services
Déploiement dans Azure depuis Visual Studio Team ServicesAdrien Siffermann
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+ekino
 

Was ist angesagt? (20)

Asp.net core 3
Asp.net core 3Asp.net core 3
Asp.net core 3
 
Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+
 
Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)
 
Intro grpc.net
Intro  grpc.netIntro  grpc.net
Intro grpc.net
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Soirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSoirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVC
 
Angular + JHipster @ Paris JUG
Angular + JHipster @ Paris JUGAngular + JHipster @ Paris JUG
Angular + JHipster @ Paris JUG
 
Ansible et Jenkins
Ansible et JenkinsAnsible et Jenkins
Ansible et Jenkins
 
Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
 
NodeJS for Mobile App
NodeJS for Mobile AppNodeJS for Mobile App
NodeJS for Mobile App
 
Introduction à Node.js
Introduction à Node.js Introduction à Node.js
Introduction à Node.js
 
Faire une app en JS moderne
Faire une app en JS moderneFaire une app en JS moderne
Faire une app en JS moderne
 
vNext
vNextvNext
vNext
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js
 
NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introduction
 
ASP.NET MVC 5 et Web API 2
ASP.NET MVC 5 et Web API 2ASP.NET MVC 5 et Web API 2
ASP.NET MVC 5 et Web API 2
 
Déploiement dans Azure depuis Visual Studio Team Services
Déploiement dans Azure depuis Visual Studio Team ServicesDéploiement dans Azure depuis Visual Studio Team Services
Déploiement dans Azure depuis Visual Studio Team Services
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+
 

Andere mochten auch

Athlon – UX trends for Fintech
Athlon – UX trends for FintechAthlon – UX trends for Fintech
Athlon – UX trends for FintechRanzieAnthony
 
Dial M for ECommerce (if you aren't, think Mobile for omni-channel. NOW)
Dial M for ECommerce (if you aren't, think Mobile for omni-channel. NOW)Dial M for ECommerce (if you aren't, think Mobile for omni-channel. NOW)
Dial M for ECommerce (if you aren't, think Mobile for omni-channel. NOW)Suhas Dutta
 
Integration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid IntegrationIntegration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid IntegrationCellenza
 
Step-by-step into the world of Hybrid integration with Azure
Step-by-step into the world of Hybrid integration with AzureStep-by-step into the world of Hybrid integration with Azure
Step-by-step into the world of Hybrid integration with Azuredelaware BeLux
 
Silver Bullet: The One Trick Most Companies Looking to go Digital are Missing
Silver Bullet: The One Trick Most Companies Looking to go Digital are MissingSilver Bullet: The One Trick Most Companies Looking to go Digital are Missing
Silver Bullet: The One Trick Most Companies Looking to go Digital are MissingThoughtworks
 
Integration summit 2016
Integration summit 2016Integration summit 2016
Integration summit 2016Adam Wahlund
 
Integration summit 2016 keynote
Integration summit 2016  keynoteIntegration summit 2016  keynote
Integration summit 2016 keynoteMichel HUBERT
 
[XamarinDay] Développez en XAML avec Xamarin Forms
[XamarinDay] Développez en XAML avec Xamarin Forms[XamarinDay] Développez en XAML avec Xamarin Forms
[XamarinDay] Développez en XAML avec Xamarin FormsCellenza
 
Integration Summit 16 - Keynote Integration Trends
Integration Summit 16 - Keynote Integration TrendsIntegration Summit 16 - Keynote Integration Trends
Integration Summit 16 - Keynote Integration TrendsCellenza
 
The Evolution of Integration
The Evolution of IntegrationThe Evolution of Integration
The Evolution of IntegrationSoftware AG
 
The Future of Application integration
The Future of Application integrationThe Future of Application integration
The Future of Application integrationRichard Seroter
 
The Past, Present and Future of Enterprise Integration
The Past, Present and Future of  Enterprise IntegrationThe Past, Present and Future of  Enterprise Integration
The Past, Present and Future of Enterprise IntegrationKasun Indrasiri
 
Digital Workplace Roadmap
Digital Workplace RoadmapDigital Workplace Roadmap
Digital Workplace RoadmapSam Marshall
 
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, LinuxCellenza
 
Gartner TOP 10 Strategic Technology Trends 2017
Gartner TOP 10 Strategic Technology Trends 2017Gartner TOP 10 Strategic Technology Trends 2017
Gartner TOP 10 Strategic Technology Trends 2017Den Reymer
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerLuminary Labs
 

Andere mochten auch (18)

Athlon – UX trends for Fintech
Athlon – UX trends for FintechAthlon – UX trends for Fintech
Athlon – UX trends for Fintech
 
Dial M for ECommerce (if you aren't, think Mobile for omni-channel. NOW)
Dial M for ECommerce (if you aren't, think Mobile for omni-channel. NOW)Dial M for ECommerce (if you aren't, think Mobile for omni-channel. NOW)
Dial M for ECommerce (if you aren't, think Mobile for omni-channel. NOW)
 
Integration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid IntegrationIntegration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid Integration
 
Step-by-step into the world of Hybrid integration with Azure
Step-by-step into the world of Hybrid integration with AzureStep-by-step into the world of Hybrid integration with Azure
Step-by-step into the world of Hybrid integration with Azure
 
Silver Bullet: The One Trick Most Companies Looking to go Digital are Missing
Silver Bullet: The One Trick Most Companies Looking to go Digital are MissingSilver Bullet: The One Trick Most Companies Looking to go Digital are Missing
Silver Bullet: The One Trick Most Companies Looking to go Digital are Missing
 
Integration summit 2016
Integration summit 2016Integration summit 2016
Integration summit 2016
 
Integration summit 2016 keynote
Integration summit 2016  keynoteIntegration summit 2016  keynote
Integration summit 2016 keynote
 
[XamarinDay] Développez en XAML avec Xamarin Forms
[XamarinDay] Développez en XAML avec Xamarin Forms[XamarinDay] Développez en XAML avec Xamarin Forms
[XamarinDay] Développez en XAML avec Xamarin Forms
 
Integration Summit 16 - Keynote Integration Trends
Integration Summit 16 - Keynote Integration TrendsIntegration Summit 16 - Keynote Integration Trends
Integration Summit 16 - Keynote Integration Trends
 
The Evolution of Integration
The Evolution of IntegrationThe Evolution of Integration
The Evolution of Integration
 
The Future of Application integration
The Future of Application integrationThe Future of Application integration
The Future of Application integration
 
The Past, Present and Future of Enterprise Integration
The Past, Present and Future of  Enterprise IntegrationThe Past, Present and Future of  Enterprise Integration
The Past, Present and Future of Enterprise Integration
 
Digital Workplace Roadmap
Digital Workplace RoadmapDigital Workplace Roadmap
Digital Workplace Roadmap
 
Future Trends in the Digital Workplace
Future Trends in the Digital WorkplaceFuture Trends in the Digital Workplace
Future Trends in the Digital Workplace
 
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
 
Gartner TOP 10 Strategic Technology Trends 2017
Gartner TOP 10 Strategic Technology Trends 2017Gartner TOP 10 Strategic Technology Trends 2017
Gartner TOP 10 Strategic Technology Trends 2017
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 

Ähnlich wie 03 - [ASP.NET Core] Services RESTful et SPA

Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?Quentin Adam
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptKhalid Jebbari
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsNeil Armstrong
 
Node.js dans Azure
Node.js dans AzureNode.js dans Azure
Node.js dans AzureMicrosoft
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Nazih Heni
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?Microsoft
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebFrédéric Harper
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloudstefounet
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?benjguin
 
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursHoracio Gonzalez
 
Aws beanstalk - Pastis Tech 21/11/2019
Aws beanstalk - Pastis Tech 21/11/2019Aws beanstalk - Pastis Tech 21/11/2019
Aws beanstalk - Pastis Tech 21/11/2019Frederic Leger
 
Développer et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoftDévelopper et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoftLeTesteur
 
Node.js dans Windows Azure mobile services et web sites
Node.js dans Windows Azure mobile services et web sitesNode.js dans Windows Azure mobile services et web sites
Node.js dans Windows Azure mobile services et web sitesMicrosoft
 
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...Alphorm
 
Gwt oxiane-novae-lr
Gwt oxiane-novae-lrGwt oxiane-novae-lr
Gwt oxiane-novae-lroxmed
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...Jasmine Conseil
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Cellenza
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent Biret
 

Ähnlich wie 03 - [ASP.NET Core] Services RESTful et SPA (20)

Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server Internals
 
Retour d'experience projet AngularJS
Retour d'experience projet AngularJSRetour d'experience projet AngularJS
Retour d'experience projet AngularJS
 
Node.js dans Azure
Node.js dans AzureNode.js dans Azure
Node.js dans Azure
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
 
Aws beanstalk - Pastis Tech 21/11/2019
Aws beanstalk - Pastis Tech 21/11/2019Aws beanstalk - Pastis Tech 21/11/2019
Aws beanstalk - Pastis Tech 21/11/2019
 
Développer et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoftDévelopper et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoft
 
Node.js dans Windows Azure mobile services et web sites
Node.js dans Windows Azure mobile services et web sitesNode.js dans Windows Azure mobile services et web sites
Node.js dans Windows Azure mobile services et web sites
 
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...
 
ASP_NET_complet.pdf
ASP_NET_complet.pdfASP_NET_complet.pdf
ASP_NET_complet.pdf
 
Gwt oxiane-novae-lr
Gwt oxiane-novae-lrGwt oxiane-novae-lr
Gwt oxiane-novae-lr
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)
 

Mehr von Cellenza

The PostBuildEvent : Retour sur la //Build 2017
The PostBuildEvent : Retour sur la //Build 2017The PostBuildEvent : Retour sur la //Build 2017
The PostBuildEvent : Retour sur la //Build 2017Cellenza
 
DevCon 3 : Containérisation d’applications
DevCon 3 : Containérisation d’applicationsDevCon 3 : Containérisation d’applications
DevCon 3 : Containérisation d’applicationsCellenza
 
DevCon 3 : BOT Framework & Luis
DevCon 3 : BOT Framework & LuisDevCon 3 : BOT Framework & Luis
DevCon 3 : BOT Framework & LuisCellenza
 
DevCon 3 : Azure API Management
DevCon 3 : Azure API ManagementDevCon 3 : Azure API Management
DevCon 3 : Azure API ManagementCellenza
 
Integration Summit 16 - Tour d'horizon d'Azure Logic Apps
Integration Summit 16 - Tour d'horizon d'Azure Logic AppsIntegration Summit 16 - Tour d'horizon d'Azure Logic Apps
Integration Summit 16 - Tour d'horizon d'Azure Logic AppsCellenza
 
Integration Summit 16 - Les nouveautés BizTalk Server 2016
Integration Summit 16 - Les nouveautés BizTalk Server 2016Integration Summit 16 - Les nouveautés BizTalk Server 2016
Integration Summit 16 - Les nouveautés BizTalk Server 2016Cellenza
 
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...Cellenza
 
Integration Summit 16 : IoT, Service Fabric et Logic App
Integration Summit 16 : IoT, Service Fabric et Logic AppIntegration Summit 16 : IoT, Service Fabric et Logic App
Integration Summit 16 : IoT, Service Fabric et Logic AppCellenza
 
Integration Summit 16 : Azure API Management
Integration Summit 16 : Azure API Management Integration Summit 16 : Azure API Management
Integration Summit 16 : Azure API Management Cellenza
 
Integration Summit 16 - Citizen Integrator / Flow - Power apps
Integration Summit 16 - Citizen Integrator / Flow - Power appsIntegration Summit 16 - Citizen Integrator / Flow - Power apps
Integration Summit 16 - Citizen Integrator / Flow - Power appsCellenza
 
[XamarinDay] Xamarin History - From 0 to microsoft acquisition !
[XamarinDay] Xamarin History - From 0 to microsoft acquisition ![XamarinDay] Xamarin History - From 0 to microsoft acquisition !
[XamarinDay] Xamarin History - From 0 to microsoft acquisition !Cellenza
 
[XamarinDay] Deep dive des produits Xamarin part 1
[XamarinDay] Deep dive des produits Xamarin part 1[XamarinDay] Deep dive des produits Xamarin part 1
[XamarinDay] Deep dive des produits Xamarin part 1Cellenza
 
[XamarinDay] Deep dive des produits Xamarin part 2
[XamarinDay] Deep dive des produits Xamarin part 2[XamarinDay] Deep dive des produits Xamarin part 2
[XamarinDay] Deep dive des produits Xamarin part 2Cellenza
 
[XamarinDay] Xamarin pour votre entreprise
[XamarinDay] Xamarin pour votre entreprise [XamarinDay] Xamarin pour votre entreprise
[XamarinDay] Xamarin pour votre entreprise Cellenza
 
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin ![XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !Cellenza
 
[XamarinDay] Retours sur Evolve 2016
[XamarinDay] Retours sur Evolve 2016[XamarinDay] Retours sur Evolve 2016
[XamarinDay] Retours sur Evolve 2016Cellenza
 
[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec Xamarin[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec XamarinCellenza
 
[XamarinDay] Xamarin et le Cloud, better together !
[XamarinDay] Xamarin et le Cloud, better together ! [XamarinDay] Xamarin et le Cloud, better together !
[XamarinDay] Xamarin et le Cloud, better together ! Cellenza
 
[XamarinDay] Pipeline DevOps sur un projet Xamarin
[XamarinDay] Pipeline DevOps sur un projet Xamarin[XamarinDay] Pipeline DevOps sur un projet Xamarin
[XamarinDay] Pipeline DevOps sur un projet XamarinCellenza
 
[29/06] Paris Container Day - Microservices avec Azure
[29/06] Paris Container Day - Microservices avec Azure[29/06] Paris Container Day - Microservices avec Azure
[29/06] Paris Container Day - Microservices avec AzureCellenza
 

Mehr von Cellenza (20)

The PostBuildEvent : Retour sur la //Build 2017
The PostBuildEvent : Retour sur la //Build 2017The PostBuildEvent : Retour sur la //Build 2017
The PostBuildEvent : Retour sur la //Build 2017
 
DevCon 3 : Containérisation d’applications
DevCon 3 : Containérisation d’applicationsDevCon 3 : Containérisation d’applications
DevCon 3 : Containérisation d’applications
 
DevCon 3 : BOT Framework & Luis
DevCon 3 : BOT Framework & LuisDevCon 3 : BOT Framework & Luis
DevCon 3 : BOT Framework & Luis
 
DevCon 3 : Azure API Management
DevCon 3 : Azure API ManagementDevCon 3 : Azure API Management
DevCon 3 : Azure API Management
 
Integration Summit 16 - Tour d'horizon d'Azure Logic Apps
Integration Summit 16 - Tour d'horizon d'Azure Logic AppsIntegration Summit 16 - Tour d'horizon d'Azure Logic Apps
Integration Summit 16 - Tour d'horizon d'Azure Logic Apps
 
Integration Summit 16 - Les nouveautés BizTalk Server 2016
Integration Summit 16 - Les nouveautés BizTalk Server 2016Integration Summit 16 - Les nouveautés BizTalk Server 2016
Integration Summit 16 - Les nouveautés BizTalk Server 2016
 
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
 
Integration Summit 16 : IoT, Service Fabric et Logic App
Integration Summit 16 : IoT, Service Fabric et Logic AppIntegration Summit 16 : IoT, Service Fabric et Logic App
Integration Summit 16 : IoT, Service Fabric et Logic App
 
Integration Summit 16 : Azure API Management
Integration Summit 16 : Azure API Management Integration Summit 16 : Azure API Management
Integration Summit 16 : Azure API Management
 
Integration Summit 16 - Citizen Integrator / Flow - Power apps
Integration Summit 16 - Citizen Integrator / Flow - Power appsIntegration Summit 16 - Citizen Integrator / Flow - Power apps
Integration Summit 16 - Citizen Integrator / Flow - Power apps
 
[XamarinDay] Xamarin History - From 0 to microsoft acquisition !
[XamarinDay] Xamarin History - From 0 to microsoft acquisition ![XamarinDay] Xamarin History - From 0 to microsoft acquisition !
[XamarinDay] Xamarin History - From 0 to microsoft acquisition !
 
[XamarinDay] Deep dive des produits Xamarin part 1
[XamarinDay] Deep dive des produits Xamarin part 1[XamarinDay] Deep dive des produits Xamarin part 1
[XamarinDay] Deep dive des produits Xamarin part 1
 
[XamarinDay] Deep dive des produits Xamarin part 2
[XamarinDay] Deep dive des produits Xamarin part 2[XamarinDay] Deep dive des produits Xamarin part 2
[XamarinDay] Deep dive des produits Xamarin part 2
 
[XamarinDay] Xamarin pour votre entreprise
[XamarinDay] Xamarin pour votre entreprise [XamarinDay] Xamarin pour votre entreprise
[XamarinDay] Xamarin pour votre entreprise
 
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin ![XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
 
[XamarinDay] Retours sur Evolve 2016
[XamarinDay] Retours sur Evolve 2016[XamarinDay] Retours sur Evolve 2016
[XamarinDay] Retours sur Evolve 2016
 
[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec Xamarin[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec Xamarin
 
[XamarinDay] Xamarin et le Cloud, better together !
[XamarinDay] Xamarin et le Cloud, better together ! [XamarinDay] Xamarin et le Cloud, better together !
[XamarinDay] Xamarin et le Cloud, better together !
 
[XamarinDay] Pipeline DevOps sur un projet Xamarin
[XamarinDay] Pipeline DevOps sur un projet Xamarin[XamarinDay] Pipeline DevOps sur un projet Xamarin
[XamarinDay] Pipeline DevOps sur un projet Xamarin
 
[29/06] Paris Container Day - Microservices avec Azure
[29/06] Paris Container Day - Microservices avec Azure[29/06] Paris Container Day - Microservices avec Azure
[29/06] Paris Container Day - Microservices avec Azure
 

03 - [ASP.NET Core] Services RESTful et SPA

  • 3. ASP.NET Web API Un petit historique
  • 4. Historique • Créé en 2012, 3 ans après ASP.NET MVC • Remplace WCF Data Services (ou ADO.NET Data Services) • Introduit des concepts fondamentaux proches d’ASP.NET MVC Couche HTTP moderne Routage Négociation de contenu Filtres IoC Self-Hosting System.Web.dll Middlewares & Owin
  • 5. Limitations • Des dépendances distinctes de MVC • Impossible de mixer du MVC et du Web API dans un même contrôleur • Du code utilitaire dupliqué • Mvc : • Web Api : • Self-host, un vœu pieux • Microsoft.AspNet.WebApi.WebHost héberge Web API sur IIS avec System.Web.dll this.Request.Headers["User-Agent"] this.Request.Headers.TryGetValues( "User-Agent", out userAgentValues)
  • 6. Le futur ! Web API et SignalR posent les bases de l’asp.net de demain Web API est maintenant intégré à ASP.NET MVC Core !
  • 11. Les SPA Les SPA ont gagné en popularité ces dernières années • De nouveaux frameworks apparaissent constamment • Elles intéressent de nombreux développeurs Elles exploitent davantage les capacités des navigateurs • Elles sont très interactives • Elles allègent le travail du serveur • Elles diminuent les appels réseaux • Il y a beaucoup plus de code client, front : du Javascript
  • 12. Outillage De l’outillage adapté s’est développé • Runtime Javascript autonome (NodeJs) • Repository de packages (npm) • Task runners (Grunt, Gulp, Webpack) • De nouveaux langages (Typescript, …) • Transpileurs et compilateurs (tsc, Babel)
  • 13. Outillage Visual Studio 2015 intègre partiellement ces technologies Javascript Services vise à combler ces manques
  • 14. Contenu ASP.NET Javascript Services Une collection de packages Nuget et npm • Invocation de code Javascript dans Node.js depuis .NET Core • Middleware Webpack pendant le développement • Hot Module Replacement • Rendu côté serveur du code Javascript • Routing & Validation, côté client et côté serveur Un modèle Yeoman pour démarrer les applications
  • 16. Webpack dev middleware Webpack peut en faire beaucoup • Compilation • Bundling (concaténation, minification, uglification) • Module Loader • … Le Hot Module Reload permet de remplacer le rafraichissement automatique en rechargement incrémental à la volée • Nécessite webpack-dev-server et l’utilisation de l’hôte NodeJS
  • 17. Webpack dev middleware Javascript Services peut intercepter les requêtes de fichiers JS et les compiler à la volée Browser <script src="file.js"> ASP.NET Core Webpack dev Middleware Node.JS Compilation Webpack

Hinweis der Redaktion

  1. Différents noms de classes, de méthodes Noms de classe différents
  2. Création d’un nouveau projet dans VS 2017 .NET Core, services REST Parcours des différentes méthodes et routes du contrôleur par défaut Ajout d’une nouvelle signature : [HttpPost("do-something/{arg}")] public void DoSomething(string arg) { }
  3. CamlCase par défaut ! // GET api/values/5 [HttpGet("{id}")] public IActionResult Get(int id) { if (Get() == null) return NotFound(); if (id < 0) return BadRequest(); return Content("value"); return new ObjectResult("value"); }
  4. Créer un nouveau projet avec yo aspnetcore-spa Choisir React + Redux, VS 2017 Montrer comment le middleware est configuré Montrer les packages nuget et les packages npm, la config webpack Lancer l’appli Faire une modif à chaud du compteur et voir les résultats