ASP.NET MVC 6 est la prochaine version du Framework MVC de .NET. Il a pour vocation de tirer partie de la puissance de .NET tout en mettant de côté l'historique parfois pesant d'ASP.NET. Venez découvrir en quoi ASP.NET MVC 6 est un framework MVC moderne et les principales nouveautés de cette nouvelle version majeure.
3. tech.days 2015#mstechdaysASP.NET MVC6 @rhwy & @paulcociuba
.Net Escalation Engineer pour Microsoft France
- développeur web ( ASP.Net et IIS ) depuis 10 ans
- interface entre le groupe produit ASP.net, le support et les clients Microsoft
- blog: http://blogs.msdn.com/friis
- site de gestion des favoris en ligne: http://linqto.me
-packge Nuget Azure Black IP
-passionné de l’aviation civile et gestion du trafic aérien
Paul Cociuba
Cloud Favorites
4. tech.days 2015#mstechdaysASP.NET MVC6 @rhwy & @paulcociuba
Artisan Logiciel indépendant
Rui Carvalho
Développement .net web, Conseil, coaching, formation
Conférence internationnale de développeurs .Net à ParisTalks mensuels, coding dojos, open spaces
http://www.meetup.com/altnetfr http://ncrafts.io
C#, F#, Architecture, DDD, Cqrs, sofrware craftsmanship,+
9. tech.days 2015#mstechdaysASP.NET MVC6 @rhwy & @paulcociuba
1996
ASP
2002
ASP.NET
2008
ASP.NET MVC
2010 2012
2014
K
(webforms)
Web pages
SignalR
Web API
10. tech.days 2015#mstechdaysASP.NET MVC6 @rhwy & @paulcociuba
1996
ASP
2002
ASP.NET
2008
ASP.NET MVC
2010 2012
2014
K
(webforms)
Web pages
SignalR
Web API
6 ans 6 ans 6 ans
22. tech.days 2015#mstechdaysASP.NET MVC6 @rhwy & @paulcociuba
Visual Studio 2015 preview
K runtime
http://www.asp.net/vnext
Windows / Mac / Linux
https://github.com/aspnet/home
1. install the runtime manager (KVM)
2. install last runtime (KRE) : kvm upgrade
3. Install nuget packages (KPM) : kpm restore
4. Run project command (K) : k {command}
23. tech.days 2015#mstechdaysASP.NET MVC6 @rhwy & @paulcociuba
Un nouveau répertoire
Un Project.json
Un fichier de code : Startup.cs
Puis kpm restore && K web
Plus besoin de csproj xml, de msbuild, de
declarer les fichiers sources …
(ceux que vous verrez ne sont utilisés que par Visual Studio)
27. tech.days 2015#mstechdaysASP.NET MVC6 @rhwy & @paulcociuba
(Même principes que pour Web API2+Owin)
Ajout de MVC au pipeline owin:
Configuration des routes:
DI / Services (obligatoire):
Le point d’entrée
28. tech.days 2015#mstechdaysASP.NET MVC6 @rhwy & @paulcociuba
Pas de classe de base obligatoire : convention
Sinon héritage de Controller
Même controller pour Web UI et Web API
What’s new
29. tech.days 2015#mstechdaysASP.NET MVC6 @rhwy & @paulcociuba
Les tâches de base peuvent se faire dans le
template
Extensible
Attribute routing (web api mode) directement sur le
verbe
Less ceremony
31. tech.days 2015#mstechdaysASP.NET MVC6 @rhwy & @paulcociuba
Plus de dependency resolvers pour mvc et webapi
séparés !
Tout peut se faire via la configuration de services
Un implémentation de DI de base livré par défaut !
Des Adapters pour toutes les libs de DI
Anti-patterns land
Note: DI est juste un outil, parfois utile pour aider à l’inversion de controle …
33. tech.days 2015#mstechdaysASP.NET MVC6 @rhwy & @paulcociuba
Un outil de configuration simple a été ajouté
On peu chainer les configs (les + récentes prévalent sur les +
anciennes):
On peu persister des changements!
modern
35. tech.days 2015#mstechdaysASP.NET MVC6 @rhwy & @paulcociuba
Html Helpers v2
Injectables
Sortes de web controles passifs
Sortes de Mini-Controllers
Traitement C#
Avant: @Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })
Version TagHelper: <label asp-for="UserName" class="col-md-2 control-label"></label>
36. tech.days 2015#mstechdaysASP.NET MVC6 @rhwy & @paulcociuba
• Pas encore très sec!
• Mais OSS !
• Toutes les sources
• Toutes les issues (et fix)
• Builds quotidiens sur les feeds nuget
• Fun!
37. tech.days 2015#mstechdaysASP.NET MVC6 @rhwy & @paulcociuba
Actuellement il n’y a que xUnit avec un runtime dédié pour KRE
Utilisez kmon pour avoir un file watchter et relancer automatiquement vos
tests (valable aussi pour le serveur web)
Tests
40. tech.days 2015#mstechdaysASP.NET MVC6 @rhwy & @paulcociuba
Ajoutez un fichier NuGet.config dans votre projet
pour overrider les sources par défaut du système
41. tech.days 2015#mstechdaysASP.NET MVC6 @rhwy & @paulcociuba
Ajoutez simplement un log de requêtes dans la
console:
Vous pouvez tout faire simplement dans le pipeline
de la requête (n’utilisez des libs/frameworks que si vraiment
nécessaire )