[Techdays 2014] ASP.NET MVC 5 et Web API 2

Techdays2014Ceci est un retour sur la session « ASP.NET MVC 5 et Web API 2» des TechDays 2014. Pour voir le pitch de la session, c’est par ici . Cette session a été animée par Simon Ferquel et Julien Corioland, tous deux de chez Infinite Square.

Cette session a tourné autour de deux sujets : ASP.NET MVC / Web API et Owin.

Tout a commencé par quelques rappels sur l’actuelle version d’ASP.NET MVC et de WebAPI. Puis nous avons abordé les nouveautés/évolutions de MVC 5 et Web API.

ASP.NET MVC et WebAPI

Les templates sous visual studio 2013 ont changés : Microsoft a adopté une politique « One ASP.net ». Il n’y a plus qu’un projet Asp.net qui est maintenant configurable au travers d’un wizard qui va vous permettre de choisir les modules à préparer : MVC, WebAPI, … Vous avez donc la possibilité de créer votre projet à la carte :

OneAspNet

ASP.NET Identity

Parmi les choix que vous aurez lors de la création de votre template, il y a le mode d’authentification de votre application. Ceci vient mettre le doigt sur un des gros changements : l’arrivée d’ASP.NET Identity.

Il s’agit d’un nouveau système de membership basé sur des claims, des revendications. Une revendication peut aussi bien être le nom de l’utilisateur qu’une de ses adresses email. ASP.NET Identity est également basé sur un middleware OWIN ce qui le rend utilisable sur toute couche respectant cette abstraction. Il permet le multi login et est totalement personnalisable. A tester !

Plus d’informations ici : http://www.asp.net/identity/overview/getting-started/introduction-to-aspnet-identity

Attribute Routing

Vous allez pouvoir gérer vos routes depuis vos contrôleurs MVC ou WebAPI. Vous avez maintenant à votre disposition différents class et method attribute de routing :

AttributeRouting

Pour plus d’info, c’est par ici :

http://aspnetwebstack.codeplex.com/wikipage?title=Attribute%20routing%20in%20Web%20API

WebAPI Batching

WebApi permet de combiner plusieurs opérations en une seule requête http. Le but étant une réduction du trafic réseau aussi bien qu’une accélération de l’application cliente. Cette récupération de donnée est de fait plus adaptée aux applications mobiles.

La mise en place du batching, se base sur la création d’un verbe d’api spécifique a celui-ci. Pour avoir plus de détails, je vous recommande d’aller lire ceci :

http://aspnetwebstack.codeplex.com/wikipage?title=Web+API+Request+Batching

WebAPI et OData

Il était déjà possible d’exposer une api via OData en utilisant l’attribut Queryable. Seulement maintenant de nouveaux opérateurs sont disponibles.

Parmi ces nouveaux arrivants, nous retrouvons $select, pour sélectionner les propriétés à retourner ou bien $expand, qui permettra d’inclure des sous entités.

Pour connaitre la totalité des options prises en charges, je vous recommande d’aller lire ceci :

http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/supporting-odata-query-options

OWIN, le futur

Le second gros sujet de cette session était OWIN (Open Web INterface). Il s’agit d’un niveau d’abstraction coté serveur. Le but étant de fournir des middlewares se reposant sur cette abstraction, qui pourront donc être utilisés sur toute techno en respectant les principes.

Coté composants, il en existe déjà pour des sujets comme les logs, l’authentification, la compression ou le rewriting d’url.

Pour aller plus loin, il est donc simple de monter son propre serveur OAuth2, ou cookieAuth, gérant l’authentification Facebook ou Google.

La première démo de nos speakers a été la création d’un middleware de log. Il est finalement extrêmement simple d’en faire un puisqu’une ligne de création et une méthode de 3 lignes ont été requises pour logger le début et la fin du traitement des requêtes sur le serveur.

La seconde démo a été de faire un genre de SSO entre une web api authentifiée et une webview. Cette démo était intéressante car très parlante aux personnes ayant déjà eu ce genre de problématiques.

Aujourd’hui, Microsoft propose trois interfaces permettant de créer son host OWIN :

  • IIS
  • HttpListener
  • Owin Test Server

Ce dernier point est très intéressant car il permet de tester une web api sans prendre en compte les problématiques de réseau. Il est ainsi possible de jouer ses tests dans un environnement complètement isolé et non dépendant du réseau.

Un article intéressant écrit sur le sujet peut être trouvé ici : http://blogs.msdn.com/b/webdev/archive/2013/11/26/unit-testing-owin-applications-using-testserver.aspx

Conclusion

Cette session fut très intéressante.  Il n’y a pas forcément de nouveautés fonctionnelles mais énormément de nouveautés transverses avec OWIN, ASP.NET Identity et bien sûr la politique “One ASP.NET”.

Vous pourrez retrouver l’intégralité du code mis à disposition par les speakers ici : https://github.com/simonferquel/techdays-paris-2014-mvc-webapi

Si vous voulez aller plus loin, allez voir ces liens :

Bonne lecture !

Nombre de vue : 300

AJOUTER UN COMMENTAIRE