ASP.NET MVC 5 et Web
API 2
Simon FERQUEL
Senior Developer
Infinite Square
@sferquel

Julien CORIOLAND
Tech Lead Web & Cloud
Infinite Square
@beedoo

http://www.infinitesquare.com
http://blogs.infinitesquare.com
Infinite Square – stand 19
•

Société de conseil, expertise, réalisation, formation, spécialisée
dans le développement d’applications logicielles innovantes sur
les technologies Microsoft

•

100% des consultants certifiés Microsoft, parmi lesquels 10
MVP et 2 Nokia Champions

•

GOLD Certified Partner sur 5 domaines de compétences

•

Centre de formation agrée

#mstechdays
Agenda
• Quelques rappels rapides
• Quoi de neuf pour ASP.NET MVC 5(.1) et Web
API 2(.1) : plein de démos !
• Le futur est dans OWIN !
• Conclusion / Questions
#mstechdays
QUELQUES RAPPELS
Parce que revoir les bases, ça ne fait jamais de mal !

#mstechdays
ASP.NET MVC
ModelBinders

ViewModels
Annotations

Modèle

Action
Results

Validators

Actions

Contrôleur
HTML
Helpers
Razor / ASPX
jQuery

#mstechdays

Filters
Routes

Vue
ASP.NET Web API
Réception d’une requête HTTP (GET, POST, PUT,
DELETE, HEAD)

Résolution de la route / Invocation de l’action du
contrôleur
Content-Negociation (Accept HTTP Header)

Renvoi de la réponse dans le bon format

#mstechdays
QUOI DE NEUF DANS ASP.NET MVC 5 ET
WEB API 2
A chaque nouveauté sa démo !

#mstechdays
One ASP.NET
MVC

Web
Pages

Web
Forms

SPA

Sites

ASP.NET
#mstechdays

Web
API

SignalR

Services
One ASP.NET dans Visual Studio 2013

#mstechdays
ONE ASP.NET & VISUAL STUDIO
2013

#mstechdays
ASP.NET Identity
• Nouveau système de memberships
d’ASP.NET
• Authentification basée sur des claims
• Utilise des middlewares d’authentification
OWIN
#mstechdays
ASP.NET Identity
• Nouveau schéma de
stockage des
utilisateurs
– Multi-logins
– Microsoft propose une
implémentation EF Code
First

– Totalement personnalisable
#mstechdays
ASP.NET IDENTITY

#mstechdays
Attribute Routing
• Configuration des routes à l’aide
d’attributs
– Directement sur les contrôleurs / actions
– Evalués et mis en cache dans la table de
route au démarrage de l’application

• Pas de limitation par rapport à la
définition des routes
« traditionnelles »
• On peut mixer les deux
• Marche aussi avec Web API 2 !
#mstechdays
ATTRIBUTES ROUTING

#mstechdays
Web API Batching
• Permet de combiner plusieurs opérations dans une
seule requête http POST
– Réduction du trafic réseau
– Récupération de données plus adaptés aux interfaces modernes /
riches

#mstechdays
WEB API BATCHING

#mstechdays
Web API OData
• Permet d’exposer une Web API via OData, à l’aide
d’un simple attribut « Queryable »
• Quelques nouveautés avec Web API 2 :
– $select, $expand, $batch, $value
– Possibilité d’étendre les formatters Odata
– Possibilité d’utiliser un modèle de données déjà existant

#mstechdays
WEB API ODATA

#mstechdays
OWIN : c’est quoi ?
• Open Web INterface
• Abstraction du serveur web ASP.Net

Web API

ASP.Net
MVC

SignalR

...

OWIN

+ middlewares…

IIS

#mstechdays

Http
Listener

Unit test
host

…
OWIN : et les middlewares, c’est quoi ?
• Composants techniques
–
–
–
–

Logs
Authentification
Compression
Rewriting…

• Compatibles avec n’importe quel host (IIS, Self Host, custom…)
• Compatibles avec n’importe quel Framework applicatif
supportant Owin (ASP.Net WebForm, Web API, MVC, NancyFX,
Signalr…)
• Out of the box:
–
–
–
–
#mstechdays

OAuth2
CookieAuth
Facebook
Google…
OWIN : MIDDLEWARE DE LOGS
ET AUTHENTIFICATION WEB API

#mstechdays
OWIN-host alternatifs ?
• OWIN fournit des interfaces pour créer son propre
host
• Microsoft en fournit 3 :
– Host IIS
• Hébergement web classique

– http listener
• Embarqué, agent local, communication inter-processus

– Unit test
• Faciliter les tests unitaires
#mstechdays
OWIN ET TESTS UNITAIRES

#mstechdays
Petit bonus : MVC 5.1 / Web API 2.1
•

Support des énumérations dans les vues
–

Display Name, DropDownListFor

•

Unobtrusive validation pour MaxLength / MinLength

•

Possibilité de passer des html attributs aux EditorFor (enfin! )

•

MediaTypeFormatter pour BSON

#mstechdays
Conclusion / Questions
• Pas forcément énormément de nouveauté en terme de
fonctionnalités dans ASP.NET MVC 5 et Web API 2, mais…
• Enormément de nouveautés « transverses » avec OWIN,
ASP.NET Identity et surtout : « One ASP.NET ».
• Code source & démos : https://github.com/simonferquel/techdaysparis-2014-mvc-webapi
• A vos questions ! 
#mstechdays
Donnez votre avis !
Depuis votre smartphone sur :
http://notes.mstechdays.fr
De nombreux lots à gagner toute les heures !!!
Claviers, souris et jeux Microsoft…
Merci de nous aider à améliorer les Techdays !

#mstechdays
Digital is
business

ASP.NET MVC 5 et Web API 2

  • 2.
    ASP.NET MVC 5et Web API 2 Simon FERQUEL Senior Developer Infinite Square @sferquel Julien CORIOLAND Tech Lead Web & Cloud Infinite Square @beedoo http://www.infinitesquare.com http://blogs.infinitesquare.com
  • 3.
    Infinite Square –stand 19 • Société de conseil, expertise, réalisation, formation, spécialisée dans le développement d’applications logicielles innovantes sur les technologies Microsoft • 100% des consultants certifiés Microsoft, parmi lesquels 10 MVP et 2 Nokia Champions • GOLD Certified Partner sur 5 domaines de compétences • Centre de formation agrée #mstechdays
  • 4.
    Agenda • Quelques rappelsrapides • Quoi de neuf pour ASP.NET MVC 5(.1) et Web API 2(.1) : plein de démos ! • Le futur est dans OWIN ! • Conclusion / Questions #mstechdays
  • 5.
    QUELQUES RAPPELS Parce querevoir les bases, ça ne fait jamais de mal ! #mstechdays
  • 6.
  • 7.
    ASP.NET Web API Réceptiond’une requête HTTP (GET, POST, PUT, DELETE, HEAD) Résolution de la route / Invocation de l’action du contrôleur Content-Negociation (Accept HTTP Header) Renvoi de la réponse dans le bon format #mstechdays
  • 8.
    QUOI DE NEUFDANS ASP.NET MVC 5 ET WEB API 2 A chaque nouveauté sa démo ! #mstechdays
  • 9.
  • 10.
    One ASP.NET dansVisual Studio 2013 #mstechdays
  • 11.
    ONE ASP.NET &VISUAL STUDIO 2013 #mstechdays
  • 12.
    ASP.NET Identity • Nouveausystème de memberships d’ASP.NET • Authentification basée sur des claims • Utilise des middlewares d’authentification OWIN #mstechdays
  • 13.
    ASP.NET Identity • Nouveauschéma de stockage des utilisateurs – Multi-logins – Microsoft propose une implémentation EF Code First – Totalement personnalisable #mstechdays
  • 14.
  • 15.
    Attribute Routing • Configurationdes routes à l’aide d’attributs – Directement sur les contrôleurs / actions – Evalués et mis en cache dans la table de route au démarrage de l’application • Pas de limitation par rapport à la définition des routes « traditionnelles » • On peut mixer les deux • Marche aussi avec Web API 2 ! #mstechdays
  • 16.
  • 17.
    Web API Batching •Permet de combiner plusieurs opérations dans une seule requête http POST – Réduction du trafic réseau – Récupération de données plus adaptés aux interfaces modernes / riches #mstechdays
  • 18.
  • 19.
    Web API OData •Permet d’exposer une Web API via OData, à l’aide d’un simple attribut « Queryable » • Quelques nouveautés avec Web API 2 : – $select, $expand, $batch, $value – Possibilité d’étendre les formatters Odata – Possibilité d’utiliser un modèle de données déjà existant #mstechdays
  • 20.
  • 21.
    OWIN : c’estquoi ? • Open Web INterface • Abstraction du serveur web ASP.Net Web API ASP.Net MVC SignalR ... OWIN + middlewares… IIS #mstechdays Http Listener Unit test host …
  • 22.
    OWIN : etles middlewares, c’est quoi ? • Composants techniques – – – – Logs Authentification Compression Rewriting… • Compatibles avec n’importe quel host (IIS, Self Host, custom…) • Compatibles avec n’importe quel Framework applicatif supportant Owin (ASP.Net WebForm, Web API, MVC, NancyFX, Signalr…) • Out of the box: – – – – #mstechdays OAuth2 CookieAuth Facebook Google…
  • 23.
    OWIN : MIDDLEWAREDE LOGS ET AUTHENTIFICATION WEB API #mstechdays
  • 24.
    OWIN-host alternatifs ? •OWIN fournit des interfaces pour créer son propre host • Microsoft en fournit 3 : – Host IIS • Hébergement web classique – http listener • Embarqué, agent local, communication inter-processus – Unit test • Faciliter les tests unitaires #mstechdays
  • 25.
    OWIN ET TESTSUNITAIRES #mstechdays
  • 26.
    Petit bonus :MVC 5.1 / Web API 2.1 • Support des énumérations dans les vues – Display Name, DropDownListFor • Unobtrusive validation pour MaxLength / MinLength • Possibilité de passer des html attributs aux EditorFor (enfin! ) • MediaTypeFormatter pour BSON #mstechdays
  • 27.
    Conclusion / Questions •Pas forcément énormément de nouveauté en terme de fonctionnalités dans ASP.NET MVC 5 et Web API 2, mais… • Enormément de nouveautés « transverses » avec OWIN, ASP.NET Identity et surtout : « One ASP.NET ». • Code source & démos : https://github.com/simonferquel/techdaysparis-2014-mvc-webapi • A vos questions !  #mstechdays
  • 28.
    Donnez votre avis! Depuis votre smartphone sur : http://notes.mstechdays.fr De nombreux lots à gagner toute les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les Techdays ! #mstechdays
  • 29.

Notes de l'éditeur

  • #5 Julien – 1’
  • #9 Simon
  • #10 Simon – 2’
  • #11 Simon – 1’
  • #12 Simon – 5’Création d’un nouveau projetMontrer le nouvel assistant choix technoMontrer le nouvel assistant choix authentParler de WAADConnexion au waad pour montrer l’appli déclaréeConnexion sur le backoffice ebook manager
  • #13 Julien – 2’
  • #14 Julien – 2’
  • #15 Julien – 5’Montrer l’authentification sur le front officeLe code de l’implémentation IdentityCoreMontrer la conf OWIN pour les providers externes
  • #16 Julien – 2’
  • #17 Julien – 2’
  • #18 Simon – 2’
  • #19 Simon – 2’La configLe client Win 8
  • #20 Julien – 2’
  • #21 Julien – 2’
  • #22 Simon – 2’
  • #23 Simon – 3’
  • #24 Simon – 6’Middleware de logsAuthent Web API du Front OauthDémo web view
  • #25 Julien – 2’
  • #26 Simon – 2’
  • #27 Julien – 1’
  • #28 Simon & Julien