C’est quoi
ASP.NET : Est une plate-forme de développement open
source multiplateforme (.NET 5) et multi-langage gratuite
pour la création de nombreux types d’application, web,
bureau, mobile, des jeux et l’IoT, Applications cloud.
.
C# application
• Est un des langage supporter par Asp.net.
• C# est un langage orienté objet qui vous permet de créer de
nombreux types d’applications, par exemple :
• Applications métier pour capturer, analyser et traiter les données
• Applications web dynamiques accessibles à partir d’un navigateur web
• Jeux 2D et 3D
• Applications financières et scientifiques
• Applications mobiles
ASP . Net Forms
ASP . Net MVC
ASP . NET Evolution
ASP.NET
Asp.net Asp.net Asp.net
Forms MVC Core
Core+ Entity Core Core +React
+ MVC +Angular …..etc
Visual Studio
Avec .NET, vous pouvez utiliser plusieurs langages,
éditeurs et bibliothèques afin de créer vos application.
• Il inclus : C#, VB.net, F#, PowerShell, C++…
• Se compose de Common language runtime (CLR)
Architecture ASP.Net
C# F# VB
Code Code Code
Les deux principaux composants C# F# VB
du .NET Framework sont: Compiler Compiler Compiler
CLR
BCL: bibliothèque standard Common Intermediate
Language (CIL)
utilisée par tous les langages
Common Language
Runtime (CLR)
Machine Code
0000111000110101
A quoi sert (CLR)
common language runtime ?
Le CLR est à .NET ce que la JVM est à Java, c’est-à-dire
une machine virtuelle, sans laquelle l'exécution de code .NET ne
serait pas possible.
Le CLR est nécessaire pour exécuter le code intermédiaire. Il
apporte de nombreuses fonctionnalités comme le ramasse-
miettes en anglais : Garbage Collector (la mémoire utilisée par
l'application lors de l'exécution est optimisée).
Une fois le code présent dans le CLR, il va enfin pouvoir être
compilé par le JIT Compiler (Just in Time) en langage natif de la
machine.
BIBLIOTHÈQUE
• Pour étendue la BCL un écosystème de package base sur .NET
standard est maintenu sur NuGet.
• NuGet est un Gestionnaire de packages spécialement conçue pour
.net qui contient plus de 90 000 packages
•2 -ème partie
Client/Serveur
architecture
Vue General
Architecture
Clients/Serveurs
• L’architecture client serveur s’appuie sur un poste central, le
serveur, qui envoi des données aux machines clientes.
• Des programmes qui accèdent au serveur sont appelés
programmes clients (client FTP, client mail, navigateur).
HTML
PDF
Video
Clients/Serveurs
Example
oLa consultation de pages sur un site web : Un internaute connecté via
son navigateur web est le client, le serveur est composé du/des
ordinateurs contenant les applications qui servent les pages demandées.
Le protocole de communication HTTP est utilisé.
o Les courriels sont envoyés et reçus par des clients et gérés par un
serveur de messagerie. Les protocoles utilisés sont : SMTP POP IMAP.
oune base de données centralisée sur un serveur peut être interpeler à
partir de plusieurs postes clients qui permettent de visualiser et saisir
des données.
Clients/Serveurs Fonctionnement
Fonctionnement d’un réseau client /serveur :
• Le client pour recevoir des informations du serveur lui émet une requête
passant par un port du PC (exemple : port 25 pour les mails, port 80 pour le
web et 21 pour le FTP).
• Le serveur lui envoi ensuite les informations grâce à l’adresse IP de la machine
cliente.
• Le client traite et affiche les information en provenance du serveur
Clients/Serveurs Caractéristiques
Serveur
• initialement passif en attente d’une requête
• à l’écoute, prêt à répondre aux requêtes clients
• quand une requête lui parvient il la traite et envoie la réponse
• peut répondre à plusieurs clients en simultané
Client
• actif en premier I
• envoie des requête au serveur
• attend et reçoit les réponse du serveur
le clients et le serveur
• doivent utiliser le même protocole un serveur
Clients/Serveurs
Qu’est-ce qu’un client ?
• Un logiciel client est un programme qui utilise le service offert par un
serveur.
• Le client envoie une requête et reçoit la réponse.
• Il peut-être raccordé par une liaison temporaire.
Clients/Serveurs
Qu’est-ce qu’un serveur?
• Un serveur est un programme qui offre un service sur le réseau. Le serveur accepte des
requêtes, les traite et renvoie le résultat au demandeur.
• Une requête est un appel de fonction, la réponse éventuelle pouvant être synchrone ou
asynchrone (le client peut émettre d’autres requêtes sans attendre)
• Les arguments et les réponses sont énoncés dans un protocole
• Le terme serveur s’applique à la machine sur lequel s’exécute le logiciel serveur.
• Pour pouvoir offrir ces services en permanence, le serveur doit être sur un site avec
accès permanent
• il doit s’exécuter en permanence (daemon - suffixe d pour le nom du logiciel ex. ftpd).
Clients/Serveurs Avantages/Inconvénients
Avantages
• Unicité de l’information : toutes les données sont stockées sur un même serveur
• Meilleure sécurité : simplification des contrôles de sécurité item mise à jours : mise à jour
centralisé aussi bien des données et logiciels
• Meilleure fiabilité : En cas de panne, seul le serveur fait l’objet d’une réparation
• Architecture plus mature que les autres
• Facilité d’évolution : architecture évolutive, il est très facile de rajouter ou d’enlever des clients ou
des serveurs.
Inconvénients
• Un coût d’exploitation élevé (bande passante, câbles, ordinateurs surpuissants)
• En cas de panne du serveur, plus aucun client n’a accès aux informations
• Si trop de clients veulent communiquer avec le serveur ce dernier risque de ne pas supporter la
charge
Clients/Serveurs Autre type d’architecture
• Réseau pair à pair ou (peer-to-peer - P2P).
• Chaque ordinateur est à la fois client et serveur
• Le P2P est régulièrement associé au téléchargement illégal,
• Le partage illégal d’oeuvres culturelles se fait généralement par l’intermédiaire de clients
P2P.
• Ces logiciels se nomment Limewire, Kazaa, Emule, uTorrent ou encore BitTorrent.
Le filtrage des ports P2P sur votre hotspot WiFi
• Entre le WiFi public et le P2P, ce n’est pas vraiment une histoire
d’amour.
• En effet, n’importe quel visiteur de votre établissement pourrait
utiliser votre WiFi gratuit pour télécharger illégalement un film ou un
album de musique.
• le P2P consomme énormément de bande passante.
• Les hotspots WiFi de Noodo possèdent une option de filtrage des
ports afin de bloquer les ports de connexion utilisés par le Peer-to-
Peer et empêcher les utilisateurs de votre WiFi public d’effectuer des
téléchargements illégaux.
Architecture 3-Tiers
HTTP
C’EST QUOI?
Protocol d’échange :
• Parler
• Ecrire
• HyperText Markup Language
• HyperText Transfer Protocol
HTTP
C’EST QUOI?
Hypertext Transfer Protocol (HTTP) (ou protocole de transfert hypertexte en
français) est un protocole de la couche application servant à transmettre des documents
hypermédias, comme HTML.
Il a été conçu pour la communication entre les navigateurs web et les serveurs web mais
peut également être utilisé à d'autres fins.
C’est un protocole sans état, ce qui signifie que le serveur ne conserve aucune donnée
(on parle d'état) entre deux requêtes.
• 3 -ème partie
• Quel type d'application Web C# dois-je utiliser ?
MVC ? Blazor ? Razor Pages ,API…?
API. ASP web application
• Ce n’est pas Graphical User Interface GUI Mais just UI.
• En Général, retourne Jason Data or XML Data
• App to App communication.
• Angular or react or view or blazor front end and Mobile front end
peux consommer du API
RaZor.
• pages à faible coût d'exploitation
• En gros des simple page web statique
MVC
Le plus gros et le répondu au marché parce que:
• WebForms extension
• Rassemble et GUI et du API
Blazor server/BlAZOR Assambly
• Blazor server
• Gere et le cote serveur et client d’une manière optimal
• Envoi des page HTML, CSS, JavaScript
• A l'inverse de Angular, React and VUE qui téléchargent le code javascript du
cote du client et le client s’en occupe du traitement.
• BlAZOR Assambly
• Le seul qui transmet du C#
• Utiliserdans des cas qui ne nécessitent pas trop de sécurité
Prérequis
Histoire du ASP . NET
ASP.NET
Asp.net Asp.net Asp.net
Forms MVC Core
Core+ Entity Core Core +React
+ MVC +Angular …..etc
Visual Studio
The domain
AsP. Net core components
Lets go through the application and talk about each component
• 1ER Travaux pratique
• USE ENTITY FRAMEWORK CORE TO CREAT THE DATABASE
Tp sTEPS
1) Creat the Model add the dataAnnotation
2) Creat DbConnection with the web asp.Net
Use Appsetting.json
2) Creat DataBase connection with entity framwork
creat New folder Data->ApplicationDBcontext.CS For the DbContext
Setup dataSet in the same folder
add EntityFrameworkCore packages
3) Tell our application we are going to use Dbconnection and the DbContext
In Program.cs
Build the services (setup the connection with the DbContext and pass SQLServer as DB)
Add sqlserver EntityFramwork packages
4) Add Migration to keep track of our DataBase
nugget consol : add migration
add entityFramework.tools
Update the database
Write the Model
Establish DB Connection
Appsetting.json
"ConnectionStrings": {
"DefaultConnection": "server=DESKTOP7HFPRLO;database=FirstTP;Trusted_connection=True"
}
Database Connection
Creat a DbContext to establish
connection with Entity framwork core
Creat a DB Context to establish connection with
Entity framwork core
• Install Entity Framework Core
Install Entity Framework Core
using Microsoft.EntityFrameworkCore;
namespace EntityFramwork.Data
{
public class ApplicationDBContext:DbContext
{
public
ApplicationDBContext(DbContextOptions<ApplicationDBContext>options):base(options)
{
}
}
}
In the same folder set the model to the DB
Db context and set model in the Dbcontext
public class ApplicationDBcontext : DbContext
{
// we will pass database options in this parametter
// this is a general setup to do
public ApplicationDBcontext(DbContextOptions<ApplicationDBcontext>
options) : base(options)
{
}
// set the model in the DBContext
public DbSet<Category> categories { get; set; }
}
Add the service builder
Program.cs
builder.Services.AddDbContext<ApplicationDBcontext>(options => options.UseSqlServer(
builder.Configuration.GetConnectionString("DefaultConnection")
));
Install SQlServer framwork
Add migration:
to send any modification from the model to the DB
ADD-MIGRATION AND update-database
add-migration AddCategoryToDatabase
update-database
Add Entity Framwork tool
Microsoft.EntityFrameworkCore.Tools
Database Migration Successful