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
Différents noms de classes, de méthodes
Noms de classe différents
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)
{
}
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");
}
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