ASP.NET 5 - DevLab.Alsace

Transcription

ASP.NET 5 - DevLab.Alsace
MVC
C# / .Net / ASP.NET Core 1.0
Hervé PHILIPPE
Promotion 2015-2016
http://DevLab.Alsace
Plan
 Rappels
 Introduction
 Technologies intégrées
 Fichiers d’un projet
 Fichier Startup.cs
 Pattern MVC
http://DevLab.Alsace
Rappels - Historique
Microsoft : ASP / ASP.NET
•
•
•
•
1996
2002
2009
2011
: ASP 1.0 (Active Server Page)
: ASP.NET 1.0
: MVC 1.0 (Model View Controler)
: Razor (+ MVC 3.0)
• Web Pages = Fichiers .cshtml / .vbhtml
• Syntaxe plus intuitive
• 2016 : ASP.NET Core 1.0
Changement de nom :
• ASP.NET 5 -> ASP.NET Core 1.0
• MVC 6 -> ASP.NET Core MVC
• EF 7 -> Entity Framework Core (EF Core)
http://DevLab.Alsace
Rappels – ASP.NET
http://DevLab.Alsace
Rappels – ASP.NET
http://DevLab.Alsace
ASP.NET Core
Introduction
• Convention plutôt que Configuration
• Conventions à respecter pour :
Noms des dossiers
Noms des classes
Noms des fichiers
Noms des méthodes
• Les « attributs » du C# sont beaucoup utilisés
• Les attributs (= annotations = décorateurs) servent à ajouter des métadonnées
à toutes sortes de déclarations
• Exemple d’attributs pour une propriété : [Required]
[EmailAddress]
[Display(Name = "Email")]
public string Email { get; set; }
• Documentation officielle
http://www.asp.net/vnext/overview/aspnet-vnext
http://DevLab.Alsace
ASP.NET Core
Technologies intégrées
• MVC 6 (Model-View-Controller)
Architecture logicielle d’une application ASP.NET
(avant : possibilité de choisir une autre logique : « WebForms » basée sur les événements)
• Web Pages 4
Pages HTML contenant du code .NET (C# ou VB.NET)
• Entity Framework 6
Permettre d’accéder aux données
• ASP.NET Identity 3
Gérer les authentifications des utilisateurs
• WebAPI
Faciliter la création des Web Services
• SignalR 3
Simplifier la façon de créer des fonctionnalités temps-réel à un site web
http://DevLab.Alsace
ASP.NET Core
Fichiers d’un projet
Fichier basé sur C#
Fichier basé sur VisualBasic.NET
.cs -> fichier source
.vb -> fichier source
.cshtml -> fichier source « Web Pages »
.vbhtml -> fichier source « Web Pages »
Autres types de fichiers
.json, .ini, .xml : fichiers de données (notamment pour la configuration)
.aspx : fichier source « WebForms » (HTML avec code C# ou VB.NET)
• Fichiers importants :
• project.json : fichier de configuration générale du projet
• appsettings.json : fichier de configuration optionnel
• Startup.cs : point d’entrée de l’application
http://DevLab.Alsace
ASP.NET Core
Fichier Startup.cs
• Fichier « Startup.cs » : point d’entrée de l’application web
Classe « Startup » utilisée à l’exécution
• Constructeur (optionnel) par exemple pour lire les configurations
• Méthode « Main » :
public static void Main(string[] args)
{ WebApplication.Run<Startup>(args); }
• Méthode « ConfigureServices » :
• Configuration des services pouvant être utilisés par l’application web
• Configuration des conteneurs pour des services (« Dependency Injection »)
• Méthode « Configure » :
Etapes de construction de la réponse à la requête HTTP
http://DevLab.Alsace
ASP.NET Core
Fichier Startup.cs / Configure
Etapes de construction de la réponse à la requête HTTP
• L’ordre des instructions est très important
• Principales instructions :
• « app.UseStaticFiles(); » :
Pour utiliser des fichiers statiques (HTML/CSS/JS)
• « app.UseIdentity(); »
Pour utiliser l’authentification des utilisateurs
• « app.UseMvc » :
Pour définir la « route »
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
http://DevLab.Alsace
Utilisation par défaut de la classe « Home »
Utilisation par défaut de la méthode « Index »
Paramètre optionnel : « id »
ASP.NET Core
Pattern MVC
• Pattern MVC = modèle d’architecture logicielle
Plan de construction à suivre pour le développement (création et organisation
des classes, des méthodes, des propriétés…)
• Model
Données et gestion des données de l’application
• View
Afficher les données
• Controller
• Gérer l’interaction avec l’utilisateur (requête/réponse du navigateur)
• Donner à la vue, les données venant du modèle
http://DevLab.Alsace