02 - [asp.net core] asp.net core mvc

Post on 21-Feb-2017

172 Views

Category:

Technology

10 Downloads

Preview:

Click to see full reader

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