02 - [asp.net core] asp.net core mvc
Post on 21-Feb-2017
172 Views
Preview:
TRANSCRIPT
ASP.NET Core MVCLes 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- IntroductionASP.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 1Framework unifié pour MVC, Web API et SignalR
.NET Framework 4.6Framework .net
compatible avec les anciennes librairies
.NET CoreRuntime 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
UseCor
s
UseMvc
UseExceptionHandler
UseResponseCompression
UseCookieAuthentication
UseStaticFiles
UseGoogleAuthentication
UseDeveloperExceptionPage
UseSignalR
UseWebSockets
UseRouter
UseBrowserLinkUseMicrosoftAccountAuthentication
UseTwitterAuthentication
UseResponseCaching
UseDirectoryBrowserUseForwardedHeaders
UseClaimsTransformation
UsePath
Base
UseRewriter
UseCor
s
UseMvc
UseExceptionHandler
UseResponseCompression
UseCookieAuthentication
UseStaticFiles
UseGoogleAuthentication
UseDeveloperExceptionPage
UseSignalR
UseWebSockets
UseRouter
UseBrowserLinkUseMicrosoftAccountAuthentication
UseTwitterAuthentication
UseResponseCaching
UseDirectoryBrowserUseForwardedHeaders
UseClaimsTransformation
UsePath
Base
UseRewriter
ASP.NET Core MVC : Front EndNouveauté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 bundledotnet bundle cleandotnet 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> devient
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
top related