ASP.NET Core MVC
Les nouveautés Microsoft ASP.NET core MVC
Speakers
 Georges DAMIEN
 Consultant .NET/Web @
Cellenza
 Microsoft MVP, MCSD, MCP
 Emilien Bassez
 Consultant .NET/Web @
Cellenza
 Jean Dumas de Rauly
 Consultant .NET @ Cellenza
Prérequis
 Visual Studio 2015 Update 3
 Visual Studio Code avec l’extension C#
1- Introduction
ASP.NET Core MVC
Historique – Pour rappel
• Pages asp
Asp Classic
• Page aspx
• viewState
Asp.net Web
Forms • Mvc version 1-2-
3-4-5
• Projets mvc et
web API séparés
Asp.net MVC
• Mvc et web API
et SignalR unifiés.
Asp.net core
Le model MVC
 MVC c’est avant tout un patron de conception qu’on retrouve
essentiellement dans les couches de présentation applicative.
 Il a été conçu pour la première fois dans les années 78-79.
 Il aide à mieux structurer le code en séparant les notions de
présentation pure à la notion de traitement de données.
 MVC pour Model-View-Controller.
Asp.Net Core ?
 C’est un nouveau framework refait de 0 avec pour maîtres mots :
 Cross-platform (Windows, Mac, Linux)
 IoT apps & Mobile backends
 Orienté Cloud (mais également On-Premise)
 Applications moderns (Web Apps)
 Open source (le code est sur GitHub)
 https://github.com/aspnet/home
Asp.Net Core : avantages
 Web UI et Web APIs unifiés
 Intégration simplifiée des frameworks Front
 Cloud ready configuration
 Injection de dépendance intégrée en natif
 Pipeline Http leger et modulaire
 Hébergement sous IIS ou “selfHost”
 Gestion avancée du versioning applicative
 Cross plateforme
 Open source
Asp.Net Core : Incovénients à date
 Framework Core pas complètement prêt
 Packages pas à jour
 Tooling incomplet
ASP.NET Core – vue macro
ASP.NET Core 1
Framework unifié pour MVC, Web API et SignalR
.NET Framework 4.6
Framework .net compatible
avec les anciennes librairies
.NET Core
Runtime allégé et optimisé
pour les serveurs et le cloud
ASP.NET MVC Core
Nouveau template ASP.NET MVC Core
Fondamentaux
Ce qui est (vraiment) nouveau
Séparation complète avec IIS
Prise en charge des requêtes entrantes plus clair
Démos
Application Console
Kestrel
 Léger
 Performant
 Multiplateforme
 Manque de fonctionnalité
WebListener
 Plus de fonctionnalités que Kestrel
 Moins performant
 Uniquement sur Windows
Et IIS ???
 N’est plus qu’un reverse proxy … mais bien intégré
Pipeline & Middelware
Pipeline simple
Arbre du pipeline
 Map : branche par chemin
 MapWhen : branche par predicat
 Run : feuille
Exemple de branches
Quand l’utiliser ?
 Logging
 Authentification
 Gestion d’erreur
 Compression des réponses http
 …
Démos
Custome Middelware
Injection de dépendances
 AddTransient : 1 instance par besoin
 AddSingleton : 1 instance pour l’application
 AddScoped : 1 instance par requête
Pas besoin de réinventer la roue
UseMvc
UseClaimsTransformation
UseRewriter
UseMvc
UseClaimsTransformation
UseRewriter
ASP.NET Core MVC : Front End
Nouveautés Front MVC
Web Root (wwwroot)
 Il s’agit d’un repertoire dédié par convention aux fichiers statiques de
l’application web.
 Le nom du repertoire est communement nommé : webroot
 On y trouve par exemple
 Les fichiers JS
 Les fichiers CSS
 Les images utilisées par le sites
 Les fonts Web
Bundling & minifying
bundleconfig.json
Bundling & minifying : commandes
 Commandes
dotnet bundle
dotnet bundle clean
dotnet bundle watch
Bower
_ViewImports.cshtml
• Référence les namespaces dans les vues
• Injecte des services dans les vues
• Ajouter des TagHelpers dans les vues
Tag Helpers
 Génération d’html coté serveur comme on le faisait avec les HtmlHelpers.
 Ne pas dénaturer le html de vos vues en introduisant moins de C# dans vos
fichier cshtml.
@Html.ActionLink("Register", "Register", "Account")
<a asp-controller="Account" asp-action="Register">Register</a>
<modal id="modalSearchEngine" title="Moteur de recherche">
<modal-body>
<h4>Coming soon</h4>
</modal-body>
<modal-footer>
<input type="button" value="Valider" />
</modal-footer>
</modal>
Tag Helpers
<div class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body">
<h4>Coming soon</h4>
</div>
<div class="modal-footer">
<input type="button" value="Valider" />
</div>
</div>
</div>
</div>
ViewComponents
 Remplace ChildAction
 A mis chemin entre le Controller / PartialView
Liens
 https://www.asp.net/core
 https://docs.microsoft.com/fr-fr/aspnet/core/
 https://docs.microsoft.com/en-us/aspnet/core/
 https://docs.microsoft.com/en-
us/aspnet/core/fundamentals/dependency-injection

02 - [ASP.NET Core] ASP.NET Core MVC

  • 1.
    ASP.NET Core MVC Lesnouveautés Microsoft ASP.NET core MVC
  • 2.
    Speakers  Georges DAMIEN Consultant .NET/Web @ Cellenza  Microsoft MVP, MCSD, MCP  Emilien Bassez  Consultant .NET/Web @ Cellenza  Jean Dumas de Rauly  Consultant .NET @ Cellenza
  • 3.
    Prérequis  Visual Studio2015 Update 3  Visual Studio Code avec l’extension C#
  • 4.
  • 5.
    Historique – Pourrappel • Pages asp Asp Classic • Page aspx • viewState Asp.net Web Forms • Mvc version 1-2- 3-4-5 • Projets mvc et web API séparés Asp.net MVC • Mvc et web API et SignalR unifiés. Asp.net core
  • 6.
    Le model MVC MVC c’est avant tout un patron de conception qu’on retrouve essentiellement dans les couches de présentation applicative.  Il a été conçu pour la première fois dans les années 78-79.  Il aide à mieux structurer le code en séparant les notions de présentation pure à la notion de traitement de données.  MVC pour Model-View-Controller.
  • 7.
    Asp.Net Core ? C’est un nouveau framework refait de 0 avec pour maîtres mots :  Cross-platform (Windows, Mac, Linux)  IoT apps & Mobile backends  Orienté Cloud (mais également On-Premise)  Applications moderns (Web Apps)  Open source (le code est sur GitHub)  https://github.com/aspnet/home
  • 8.
    Asp.Net Core :avantages  Web UI et Web APIs unifiés  Intégration simplifiée des frameworks Front  Cloud ready configuration  Injection de dépendance intégrée en natif  Pipeline Http leger et modulaire  Hébergement sous IIS ou “selfHost”  Gestion avancée du versioning applicative  Cross plateforme  Open source
  • 9.
    Asp.Net Core :Incovénients à date  Framework Core pas complètement prêt  Packages pas à jour  Tooling incomplet
  • 10.
    ASP.NET Core –vue macro ASP.NET Core 1 Framework unifié pour MVC, Web API et SignalR .NET Framework 4.6 Framework .net compatible avec les anciennes librairies .NET Core Runtime allégé et optimisé pour les serveurs et le cloud
  • 11.
  • 12.
  • 13.
  • 14.
    Ce qui est(vraiment) nouveau Séparation complète avec IIS Prise en charge des requêtes entrantes plus clair
  • 15.
  • 16.
    Kestrel  Léger  Performant Multiplateforme  Manque de fonctionnalité
  • 17.
    WebListener  Plus defonctionnalités que Kestrel  Moins performant  Uniquement sur Windows
  • 18.
    Et IIS ??? N’est plus qu’un reverse proxy … mais bien intégré
  • 19.
  • 20.
  • 21.
    Arbre du pipeline Map : branche par chemin  MapWhen : branche par predicat  Run : feuille
  • 22.
  • 23.
    Quand l’utiliser ? Logging  Authentification  Gestion d’erreur  Compression des réponses http  …
  • 24.
  • 25.
    Injection de dépendances AddTransient : 1 instance par besoin  AddSingleton : 1 instance pour l’application  AddScoped : 1 instance par requête
  • 26.
    Pas besoin deréinventer la roue UseMvc UseClaimsTransformation UseRewriter UseMvc UseClaimsTransformation UseRewriter
  • 27.
    ASP.NET Core MVC: Front End Nouveautés Front MVC
  • 28.
    Web Root (wwwroot) Il s’agit d’un repertoire dédié par convention aux fichiers statiques de l’application web.  Le nom du repertoire est communement nommé : webroot  On y trouve par exemple  Les fichiers JS  Les fichiers CSS  Les images utilisées par le sites  Les fonts Web
  • 29.
  • 30.
    Bundling & minifying: commandes  Commandes dotnet bundle dotnet bundle clean dotnet bundle watch
  • 31.
  • 32.
    _ViewImports.cshtml • Référence lesnamespaces dans les vues • Injecte des services dans les vues • Ajouter des TagHelpers dans les vues
  • 33.
    Tag Helpers  Générationd’html coté serveur comme on le faisait avec les HtmlHelpers.  Ne pas dénaturer le html de vos vues en introduisant moins de C# dans vos fichier cshtml. @Html.ActionLink("Register", "Register", "Account") <a asp-controller="Account" asp-action="Register">Register</a>
  • 34.
    <modal id="modalSearchEngine" title="Moteurde recherche"> <modal-body> <h4>Coming soon</h4> </modal-body> <modal-footer> <input type="button" value="Valider" /> </modal-footer> </modal> Tag Helpers <div class="modal fade" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-body"> <h4>Coming soon</h4> </div> <div class="modal-footer"> <input type="button" value="Valider" /> </div> </div> </div> </div>
  • 35.
    ViewComponents  Remplace ChildAction A mis chemin entre le Controller / PartialView
  • 36.
    Liens  https://www.asp.net/core  https://docs.microsoft.com/fr-fr/aspnet/core/ https://docs.microsoft.com/en-us/aspnet/core/  https://docs.microsoft.com/en- us/aspnet/core/fundamentals/dependency-injection

Notes de l'éditeur

  • #31 Outil simple, seulement 3 commandes