Vous êtes sur la page 1sur 38

ASP.

NET Core
INTRODUCTION À ASP.NET CORE

1
ASP.NET Core : de quoi parlerons-nous ?

ASP.NET Core

ASP.NET Core MVC

ASP.NET Core Identity

Entity Framework Core

2
ASP.NET Core : qu’est-ce que c’est ?

ASP.NET Core est un framework cross-platform, open-source


de développement d’applications Web et cloud modernes

ASP.NET Core est un « redesign » de ASP.NET 4.x qui était


basé sur le .NET Framework

3
ASP.NET Core : Avantages & Fonctionnalités

Cross Platform
Les applications ASP.NET Core peuvent être développées et
exécutées sur différentes plateformes : Windows, macOS,
Linux

Elles peuvent être hébergées sur les serveurs IIS, Apache,


Docker, …

4
ASP.NET Core : Avantages & Fonctionnalités

Un seul modèle pour le MVC et les API Web


La classe du contrôleur MVC et celle du contrôleur ASP.NET
Web API héritent toutes deux de la même classe Controller et
retournent IActionResult

IActionResult

ViewResult JsonResult

5
ASP.NET Core : Avantages & Fonctionnalités

Injection de dépendances
ASP.NET Core fournit un support pour l’injection de
dépendances en utilisant les packages Nuget

6
ASP.NET Core : Avantages & Fonctionnalités

Testabilité
Les deux précédents avantages (un modèle unique pour les
classes MVC et WebAPI et le support pour l’injection de
dépendances) permettent des tests unitaires faciles

7
ASP.NET Core : Avantages & Fonctionnalités

Modularité
ASP.NET Core assure la modularité avec des composants
middleware
Aussi bien les canaux de requête que de réponses utilisent
les composants middleware
Un ensemble de composants middleware riches sont fournis
Des composants middleware peuvent aussi être créés

8
ASP.NET Core : Avantages & Fonctionnalités

Cross Platform Testabilité

Modèle unique pour


les classes MVC et Open-source
WebAPI

Injection de Modularité
dépendances
9
Comprendre l’architecture MVC

Les modèles sont les classes qui décrivent les données avec
lesquelles nous travaillons. Nous avons :
✔ Domain Model
✔ View Model

Les vues définissent comment l’interface sera présentée


Le contrôleur traite les requêtes qui entrent, effectuent les
opérations sur le modèle et choisit la (les) vue(s) à renvoyer
à l’utilisateur.

10
Comprendre l’architecture MVC

Requête
utilisateur

Persistance
Réponse
Contrôleur Modèle (BD)
Vue Modèle de
présentation

11
Prérequis

Bases de HTML, CSS et C#

Connaissance moyenne de l’architecture MVC

12
Installation de l'IDE
Installation de Visual Studio

13
Installation Visual Studio

Télécharger visual studio community.

Exécutez le fichier téléchargé.

Accepter les termes du contrat de licence Microsoft pour Visual Studio


Community ainsi que la politique de confidentialité.

Personnaliser votre installation en sélectionnant les ensembles de


fonctionnalités (aussi appelées charges de travail) .NET desktop
development (pour créer des clients lourds) et ASP.Net and web
developpement (pour créer des sites internets).

14
BASES DU LANGAGE C#
Introduction au langage C#

15
Qu'est-ce que C#(Sharp)

Langage de programmation orienté objet

Commercialisé par Microsoft depuis 2002

Langage le plus populaire et utilisé dans l'environnement .NET de


Microsoft

Langage fortement typé

Permet de développer aussi bien des applications web (via l'ASP .NET)
que des clients lourds (console, winform,etc), des librairies de fonctions
(DLL)

16
Créer premier projet C#

Cliquer sur Créer un projet

17
Créer premier projet C#
Sélectionner C# dans le
premier champ

Sélectionner Windows
dans le deuxième

Sélectionner "Console"
dans le dernier champ

Choisir dans la liste des


types d'applications
"Application console",

Enfin cliquer sur suivant.

18
Créer premier projet C#
Dans le champ "nom du projet" saisir le nom de votre projet

Choisir l'emplacement du dossier du projet

Renseigner le nom de la solution dans le champ "Nom de la


solution", une solution est un conteneur qui regroupe les
projets.

Enfin cliquer sur "Suivant" pour aller à la fenêtre suivante

Sélectionner le framework cible

Cliquer sur Créer pour créer le projet

19
Blocs de code et Instructions

Blocs définis par les accolades « {} »

Marque de fin d’instruction : « ; »

Commentaires
❑ Sur une ligne « // »
❑ Multilignes : « /* … */ »

20
Les variables
TypeDonnee nomVariable1; // Déclaration de la variable nomVariable1 de type « TypeDonnee »
TypeDonnee nomVariable2 = valeur; // Déclaration et initialisation

Les opérateurs

Opérateurs simples
❑ Opérateurs de comparaison : ==, !=, <, >, <=, >=
❑ Opérateurs logiques : || (ou), && (et), ! (négation)
❑ Opérateurs numériques: +, -, *, /, % (modulo)

Opérateur d’affectation: =

21
Les types de données en C#

Les variables de type valeur : la mémoire contient


directement la valeur de la variable
❑ Les types primitifs (types de base)
❑ les structures

Les variables de type référence : la mémoire contient une


référence vers un objet
❑ Les classes
❑ …

22
Types primitifs de C#

Type de données Type de valeur Taille (octets) Valeurs possibles


bool Booléen 1 true ou false
decimal Nombre réel 16 −7.9×1028 à 7.9×1028
double Nombre réel 8 ±5.0×10−324 à ±1.7×10308
float Nombre réel 4 ±1.5×10−45 à ±3.4×1038
int nombre entier 4 −231 à 231−1
long nombre entier 8 −263 à 263−1
short nombre entier 2 −215 à 215−1
byte nombre entier 1 0 à 255
char Chaine de 2 U+0000 à U+FFFF
caractère (caractères Unicode)

23
Les chaines de caractère

Elles sont désignées par le type String (ou string) qui est de type
référence
Elles sont immutables : on ne peut modifier leur valeur après création,
toutes les opérations entrainent la création d’une nouvelle chaîne de
caractère
Opérateur de concaténation : +
Le backslash \ sert de caractère d’échappement pour obtenir les
caractères spéciaux
Le caractère @ placée devant une chaine de caractères désactive
l’interprétation des caractères spéciaux.

24
Les instructions conditionnelles
if switch
switch (variable)
if (condition) {case val1:
{ //Faire quelque chose
// instructions à réaliser si condition vaut true break;
} else …
{ // instructions à réaliser si condition vaut false default:
} //Faire quelque chose dans tous les autres cas
//Exemple break;
}
int age = 18;
Exemple
if (age >= 18) switch (age)
{ //Si age >= 18 faire quelque chose } { case 5:
else if (version <= 25) case 6:
{ //Si age<= 25 faire autre chose } //Si age égal à 5 ou 6
else break;
{ //Dans tous les autres cas faire autre chose case 18:
} case 25: //Si age égal à 18,25,50
break;
default:
//Autre cas
break;
} 25
Les boucles
for foreach
for (initialisation; condition; iteration) foreach(type nom_variable in variable_tab_list)
{ //Instructions à réaliser tant que condition vraie { // bloc d'instructions
} }
//Exemple //Exemple
int age=43; int[] tabInt1 = { 1, 2, 3 };
for (int i = 0; i <= age; i+2) foreach (int val in tabInt1)
{ {
//faire quelque chose if (val == 3)
} { break; }
}
while
while (condition)
{
// bloc d'instructions à réaliser tant que condition vaut true
}
//Exemple
while (age <= 50)
{
// bloc d'instructions quand age<=50
}
26
Les méthodes
Les fonctions Les procedures (fonction void)
// Déclaration
int nom_fonction(type_param1 nom_param1,..., // Déclaration
type_paramn nom_paramn) // prototype void nom_fonction(type_param1 nom_param1,...,
{ type_paramn nom_paramn) // prototype
// intructions de la fonction {
return val_retour; // intructions de la fonction
} return; //optionnel
//Exemple }
int multiplication(int a, int b) //Exemple
{ void affichage(string nom) // prototype
int total = a * b; {
return total; Console.WriteLine("Hello World! " + nom);
} }

27
Tableaux dans C#
Déclaration et création
❑ Tableau unidimentionnel
TypeElement[] nomVariable; // déclaration d'un tableau
TypeElement[] nomVariable2 = new TypeElement[tailleDuTableau]; // déclaration et création d'un tableau
TypeElement[] nomVariable3 = { valeur1, valeur2, valeur3…}; // déclaration d'un tableau et initialisation
explicite
Exemple: int[] tabInt = new int[7];

❑ Tableau multidimentionnel

TypeElement[,] monTableau1; // déclaration d'un tableau bidimentionnel


TypeElement[,,] monTableau2; // déclaration d'un tableau tridimentionnel
TypeElement[,] monTableau3 = new TypeElement[nombreDeLignes, nombreDeColonnes]; // déclaration
et initialisation d'un tableau
int[,] monTableauInt = { {1, 5, 6}, {2, 9, 7} }; // déclaration d'un tableau 2d et initialisation explicite

28
Tableaux dans C#
Accès et modification
Les cases d’un tableau sont numérotées de 0 à la taille du tableau - 1. Le numéro
d’une case est appelé son indice et permet d’accéder à cette case.

int[] tabInt1 = { 1, 2, 3 };
tabInt1[1] = 4; //modification de la valeur de la case d'indice 0: monTableau1 = {1, 4, 3}
int a = tabInt1[2]; // lecture de la valeur de la dernière case du tableau: a = 3
int[,] tabInt2 = { { 1, 2, 3 }, { 4, 5, 6 } };
tabInt2[1, 0] = 7; // monTableau2 = { {1, 2, 3}, {7, 5, 6}}
int b = tabInt2[1, 2]; // b = 6

Taille d’un tableau


//Tableau unidimentionnel : Utilisation de la propriété Length
int[] monTableau1 = { 1, 2, 3,4,5,6,7 };
int taille = monTableau1.Length; // taille = 7
//Tableau multidimentionnel on utilise la méthode GetLength(dimension)
int[,] monTableau2 = { {1, 2, 3, 11, 12, 13}, {4, 5, 6, 7, 8, 9} };
int lignes = monTableau1.GetLength(0); // 2
int colonnes = monTableau1.GetLength(1); // 6
29
Tableaux dans C#
Parcours d’un tableau
Avec une boucle for ou une boucle foreach
TypeDonnee[] monTableau = { val1, val2, val3 };
//Boucle for
for (int i = 0; i < monTableau.Length; i++)
{ //Traitement }
//Boucle foreach
foreach (TypeDonnee valeur in monTableau) //se lit: pour toute valeur de type TypeDonnee dans monTableau
{//Traitement }

30
Les listes dans C# (List<T>)

ensemble d’éléments fortement typé

Sa taille augmente en fonction du contenu

on peut ajouter, enlever , modifier… supprimer des éléments dans une liste

les éléments peuvent être ajoutés avec les fonctions Add(), AddRange(),
Insert(index, element)

List<TypeDonnee> maListe = new List<TypeDonnee> (); //Déclaration et création


//Déclaration et initialisation
List<TypeDonnee> = new List<TypeDonnee> () {
element1, …, element n
};

31
Les objets et les classes
Les niveaux d'accessibilités (visibilité)

public (l’accès n’est pas limité).

protected (l'accès est limité à la classe, où aux classes dérivées/hérités de l'objet).

internal (l'accès est limité au bloc de construction réutilisable actuel).

protected internal (l’accès est limité au bloc de construction réutilisable actuel, ou aux
classes dérivées/hérités de l'objet).

private (l’accès est limité en interne de la classe).

private protected (l’accès est limité à la classe ou à ses types dérivés, mais
uniquement dans le bloc de construction réutilisable actuel).

32
Les objets et les classes
Déclaration d’une classe
// Déclaration
class NomClasse
{
// corps de la classe
}

Les attributs et les méthodes de classe


class NomClasse
{
// déclaration des champs d'instances
public TypeChamp1 nomChamp1;
public TypeChamp2 nomChamp2;
...
// déclaration des méthodes d'instances
public TypeDeRetour1 NomMethode1(TypeParametre11 identificateurParametre11, ...) { ...}
public TypeDeRetour2 NomMethode2(TypeParametre21 identificateurParametre21, ...) { ...}
...
}
33
Les objets et les classes
Les constructeurs
// Déclaration
public NomClasse(TypeParam1 nomParametre1, TypeParam2 nomParametre2, ...)
{ ...}

❑ Chaînage de constructeur
// Déclaration
public NomClasse(TypeParam1 nomParametre1, TypeParam2 nomParametre2, ...) : this(parametre1,
parametre2,)
{ ...}

Instanciation d’une classe


// Déclaration
NomClasse nom_objet = new NomClasse(parametre1, parametre2, ...);

34
Les objets et les classes
Les opérateurs d’accès
❑ Opérateur d’accès aux members d’instance: “.”
nom_objet.propriete1; // Accès propriété
nom_objet.methode1(param1…) ; // Accès méthode de classe

❑ Instance courante : “this“ (utilisé à l’intérieur de la classe)


this.méthode1 (param1…) // Utilisation pour accéder à une méthode de classe

Les propriétés (getters et les setters)


//Notation normale //Exemple
Visibilité TypeDonnee Nom_champ1 private int age;
{ public int Age
get { //... return nom_champ1; } {
set { ... = value; } get { return age; }
} set
//Notation simplifiée : propriété auto-implémentée {
Visibilité TypeDonnee Nom_champ1 { get; if (age > 0) age = value;
Visibilite set; } }
} 35
Les propriétés et les méthodes de la classe Console
Les propriétés
Propriété Description
Title Titre de la console dapplication
BackgroundColor Couleur de fond de la console
ForegroundColor Couleur du texte dans la console
CursorSize Hauteur du curseur dans la console : de “1 à 100”

36
Les propriétés et les méthodes de la classe Console
Les méthodes
Méthode Description
Clear() Pour effacer l'écran
Bip() Jouer un bip à l'aide d'un haut-parleur PC au moment de l'exécution
ResetColor() Réinitialiser les couleurs (arrière-plan et texte) à leur état par défaut
Write("chaîne") Afficher le message spécifié sur la fenêtre de la console
WriteLine("chaîne"
Déplace automatiquement le curseur sur la ligne suivante après l’affichage du message.
)
Write(variable) Affiche la valeur de la variable donnée
WriteLine(variable)
Affiche la valeur de la variable donnée et déplace le curseur sur la ligne suivante
Lit un seul caractère du clavier et renvoie sa valeur ASCII. Le type de données doit est
Read()
entier car il renvoie la valeur ASCII.
ReadLine() Lit une valeur de chaîne à partir du clavier et renvoie la valeur entrée. Le type de donnée
sera donc une chaîne.

ReadKey() Lit un seul caractère au clavier et renvoie ce caractère. Le type de données doit être un
entier car il renvoie la valeur ASCII. 37
38

Vous aimerez peut-être aussi