ASP.NET est un ensemble de technologies de programmation Web créé par Microsoft. Ce langage est utilisé pour créer des sites Webs dynamiques, des applications web ou des web services XML.
Le développement Web avec ASP.NET est plus facile: les applications Web sont développées comme des applications Windows en utilisant le modèle ASP.net ==> il s'agit d'une insertion du code (codebehind) C# ou VB.net dans des pages HTML (ajouter du JavaScript) est envoyé au client. On dit On dit que le C# et/ou VB.NET sont utilisés pour modifier le HTML
L'objectif de cette introduction est de :
- Comprendre le fonctionnement du Framework .Net
- Comprendre les principes de base de ASP.NET
- Faire la différence entre Page web Classiques et pages ASPX crées avec ASP.NET
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Introduction à ASP.NET
1. INTRODUCTION À
PRÉPARATION À LA CERTIFICATION MCPD 70-562
2012/2013
Abdelouahed sabri
abdelouahed.sabri@gmail.com
2. OBJECTIFS
Comprendre
Le fonctionnement du Framework .Net
Les principes de base de ASP.NET
Faire la différence entre Page web Classiques et
pages ASPX crées avec ASP.NET
2
3. FRAMEWORK .NET
Framework .Net
Le Framework .NET consiste en une collection de librairies
DLL (Dynamic Link Library) librement distribuable et un
environnement d’exécution (un Run-time)
Les programmes s’exécutant sous contrôle de l’environnement .NET.
Ceci est appelé Mode Géré ou Managé (managed code).
Il Comprend un ensemble de classes qui peuvent être
utilisées par tous les langages prenant en charge
l’architecture .NET
NB: cette couche Windows est directement incorporée dans
le noyau des nouvelles versions de Windows
3
4. FRAMEWORK .NET
Spécifications:
Managed Code (code managé):
C’est un code source qui s'exécute sous la gestion de la machine
virtuelle framework .NET et qui est appelée CLR (Common
Language Runtime)
Tous les compilateurs de langages .Net génèrent un code
intermédiaire appelé IL (Intermediate Language).
Contrairement au Unmanaged code (code non géré ou bien code
natif) qui est un code source exécuté directement par le
processeur (comme pour le cas de C)
4
5. FRAMEWORK .NET
Spécifications:
CLR (Common Language Runtime):
Fournit des services aux programmes qui s’exécutent sous son contrôle.
Ces services assurent:
Le chargement (load) et l’exécution contrôlée des programmes
Les vérifications de type lors des appels de fonctions
La conversion de code intermédiaire en code natif lors de l’exécution
des programmes, opération appelée JIT (Just In Time Compiler)
La gestion automatique de la mémoire avec ramasse-miettes
(garbage collector)
L’adaptation automatique des programmes aux caractéristiques
nationales (langue, représentation des nombres et des symboles, etc.)
La compatibilité avec les DLL et les modules COM actuels qui
s’exécutent en code natif non contrôlé par .NET en utilisant le
P/invoke
5
6. FRAMEWORK .NET
Spécifications:
Compilation en MSIL (Microsoft Intermediate Language):
Lors d'une compilation destinée à produire un code managé, le
compilateur convertit le code source en langage intermédiaire,
appelé MSIL
MSIL: Un jeu d'instructions indépendant du processeur qui est
converti (par la suite) efficacement en code natif
6
7. FRAMEWORK .NET
Spécifications:
La compilation JIT (Just-In-Time compiler):
La JIT convertit à la demande le code en langage MSIL (juste le
code appelé) en code natif au moment de l'exécution de
l'application.
Elle tient compte du fait qu'une partie du code ne sera peut-être
jamais appelée au moment de l'exécution. Alors, au lieu de
consacrer du temps et des ressources mémoire à la conversion de
toutes les instructions MSIL d'un fichier exécutable portable (PE)
en code natif, elle les convertit au fur et à mesure des besoins au
moment de l'exécution et stocke le code natif obtenu en mémoire
afin qu'il soit accessible pour les appels ultérieurs dans le contexte
de ce processus.
7
8. FRAMEWORK .NET
Spécifications
P/Invoke:
P/Invoke (Platform Invocation Services) de Microsoft est une
spécification de l'implémentation de CLI (Common Language
Infrastructure ) qui permet au managed code d'appeler du code natif
dans les DLL
Quand P/Invoke est utilisé, le CLR gère le chargement des DLL et la
conversion des types en types CTS (Common Type System). Pour
réaliser cela, le CLR effectue les étapes suivantes :
Localiser l'emplacement de la DLL qui contient la fonction
recherchée
Charger la DLL en mémoire
Trouver l'adresse en mémoire de la fonction et ajouter ses arguments
dans la Pile d'appel
Convertir les types de données de .NET en un autre type
8
9. FRAMEWORK .NET
Spécifications
L’infrastructure CLI (Common Language Infrastructure ):
Une spécification ouverte développée par Microsoft pour sa plate-
forme .NET qui décrit l'environnement d'exécution de la machine
virtuelle
L'implémentation de la CLI inclut des fonctions pour gérer les
erreurs, le ramasse-miettes, la sécurité et l'interopérabilité avec
le système d'exploitation (les objets COM pour Microsoft window,
gtk pour Mono de novell)
9
10. FRAMEWORK .NET
Spécifications:
CTS (Common Type System):
Est un standard (norme) qui spécifie comment les
définitions de Type et les valeurs spécifiques des Types sont
représentés dans la mémoire de l'ordinateur.
Il est destiné à permettre à des programmes écrits dans des
langages de programmation différents (dans la famille des
langages .Net) pour échanger facilement des informations.
Il est utilisé dans les langages de programmation;
Un type CTS peut être décrit comme la définition d'un
ensemble de valeurs (par exemple, « tous les entiers
compris entre 0 et 10 »), et les opérations permises sur
ces valeurs (par exemple, l'addition et la soustraction).
10
11. MICROSOFT .NET
Les langages:
La puissance de l’architecture .NET réside dans le fait que
l’utilisateur peut changer librement d’un langage de
développement à un autre sans à réécrire le code.
On peut bien développer une partie dans un langage et une autre
partie dans un langage différent.
les langages .NET doivent présenter des caractéristiques
communes:
Le type de données est définit par le CTS (Common Type
System),
L’utilisation des classes, et ainsi des objets, doit être de la
même manière,
les langages .NET produisent un code managé 11
12. MICROSOFT .NET
Les langages:
Dans sa première version, Microsoft a présenté, d'entrée,
quatre langages compatibles .Net :
C# (C sharp): le langage .NET vedette de Microsoft. Il a été proposé
pour faire face au succès de Java.
VB.Net: la version orientée objet pour les développeurs VB6
J# (version .Net de J++, le clone avéré de Java)
délaissé
C++/CLI pour les développeurs C++.
Au fil des années, ils se sont ajoutés, par Microsoft, les langages
JScript.Net et Windows PowerShell et ASP.Net qui ouvre aux
langages .Net le monde du développement Web.
12
13. MICROSOFT .NET
Les langages:
Les langages .Net crées des programmes:
Pour le mode console (non graphique),
Des applications pour interface graphique Windows,
Des application pour des « Smart Devices »,
Des application pour le Web
Coté serveur avec ASP.NET,
Coté client avec Silverlight ou JavaScript.NET
Des applications Windows avec effets d’animation (WPF, Windows
Presentation Foundation),
13
14. MICROSOFT .NET
Les langages:
Non Microsoft
La publication par Microsoft de toute la documentation nécessaire
pour permettre à d’autre fournisseurs de compilateurs de livrer des
versions .NET de leur produit a ouvert la voie à plusieurs
implémentations tierces d'autres langages en .NET.
on peut citer :
Python : IronPython project,
Pascal : Turbo Delphi for .NET,
Smalltalk: #Smalltalk
Perl: PerlNET
…
14
Un programmeur qui utilise un langage supportant le .NET peut a
tout moment utiliser un autre langage .NET qui lui parait
approprier à certaines parties de son application.
15. Code C#
Code
VB.NET
Compilateur
Common Language Infrastructure
Common
Intermediate
Language
Common
Language
Runtime
0101010101110001100
1100011011000101111
Compilateur
Langages compatibles
.NET sont compilés en un
deuxième langage neutre
appelé CIL
Le CLR compile le code
CIL en code-machine qui
peut être exécuté sur la
plateforme courante
15
16. MICROSOFT .NET
ASP.NET
Le développement Web est plus facile: les applications Web
sont développées comme des applications Windows en
utilisant le modèle ASP.net: insertion du code (codebehind)
C# ou VB.net dans des pages HTML (ajouter du JavaScript)
est envoyé au client
On dit que le C# et/ou VB.NET sont utilisés pour
modifier le HTML
16
17. DÉVELOPPEMENT WEB
Les échanges Web se font en mode client-serveur
A.Les clients envoient des requêtes
Un client désigne un ordinateur personnel ou un appareil
individuel ( téléphone, tablette) sur lequel est exécuté le
logiciel client (navigateur)
B.Les serveurs attendent les requêtes des clients et y
répondent
Le serveur désigne un ordinateur (de grande capacité) sur
lequel est exécuté le logiciel serveur
17
18. DÉVELOPPEMENT WEB
Architectures dans l’environnement client-serveur
Architecture centralisée:
Client et serveur sur la même machine
Architecture client-serveur, notée 2-tiers:
Serveur sur une machine distante et les clients peuvent y accéder
utilisant un programme client
Exemple: un serveur Web qui contient plusieurs logiciels qui
fonctionnent en parallèle: IIS (serveur HTTP), SQL Server(serveur
de base de données) et ASP.NET
Architecture 3-tiers:
Un client ( l'ordinateur demandeur de services) équipé d'une interface
utilisateur (généralement un navigateur web) chargé de la
présentation
Un serveur d'application ( appelé middleware) qui fournit la ressource,
mais en faisant appel à un autre serveur
Sur le serveur: serveur HTTP et ASP.NET
Un serveur de données qui fournit au serveur d'application les données
requises pour répondre au client
Sur le serveur: SQL Server
18
19. DÉVELOPPEMENT WEB
Eléments intervenants dans une applications Web:
Serveur:
Ordinateur contenant des informations (des pages) consultables à
distance.
Identifié par une adresse IP et/ou un nom de domaine (URL)
Serveur HTTP,
IIS (Internet Information Server), Apache, …
Navigateur Web,
Mozilla Firefox, Google Chrome, Internet Explorer, Netscape, …
Protocole de communication
HTTP: Protocole régissant la communication entre les clients et
serveurs Web
Il fonctionne en mode client/serveur
Port :80 (en général)
HTTPS: HTTP sécurisé. Utilise le port 443
19
20. DÉVELOPPEMENT WEB
Comment naviguer sur le
Web?
I. Utiliser un navigateur
II. Spécifier une adresse URL
URL: adresse (IP ou nom) d’un
serveur (site) Web (HTTP)
+ adresse d’un ressource sur le
site
Exemple:
http://msdn.microsoft.com/fr-
fr/asp.net/centrum-asp-net.aspx
III. Le navigateur :
Télécharge le document
correspondant à l’URL
Interprète et affiche le contenu
20
21. DÉVELOPPEMENT WEB
Pages statiques
Pages dont le contenu ne change pas
Elles peuvent contenir du texte, des animations flash,
de la musique, des vidéo ….
Page dynamique
Des pages Web dont le contenu change suite à une
action du visiteur
Les pages sont construites « à la volée » à la demande.
21
22. DÉVELOPPEMENT WEB
Pages Web dynamiques
Fonctionnement:
Lors de la consultation d'une page Web dynamique,
un serveur HTTP transmet la requête au logiciel
correspondant, et ce logiciel se charge de générer et envoyer
le contenu de la page
On peut faire appel au CGI (Common Gateway Interface)
Les logiciels générant des pages Web dynamiques sont
souvent écrits avec les langages
Coté serveur: ASP.NET, PHP, JSP (Java Server
Pages), ASP (Active Server Pages)
Coté client: Silverlight, JavaScript
22
23. DÉVELOPPEMENT WEB
CGI (Common Gateway Interface)
Une interface utilisée par un serveur HTTP pour exécuter
un programme résidant sur le serveur
Ce programme génère des pages HTML à la volée à partir du
résultat des exécutions
Ce programme permet de:
Récupérer des données à partir d’un formulaire
Effectuer des traitements sur le serveur
Lecture/écriture dans une base de données
Stockage d’informations: compteurs, identifiants, IP, …
Un programme CGI s’exécutant sur la machine hébergeur
peut être un fichier binaire (exe, en langage compilé: C,
Perl, Python, VB), un script (code interprété: PHP, ASP) ou
semi interprété (ASP.NET, JSP) 23
24. PROGRAMMATION WEB AVEC ASP.NET
Outils:
Serveur: IIS (Internet Information Server),
On peut utiliser Apache Projet Mono
IDE: « Visual Web Developer Express Edition» ou bien
«Microsoft Visual Studio »
Il y a d’autres IDE :
QuickSharp , Webmatrix, …
Navigateur: Google chrome, Internet Explorer, Mozilla
FireFox
Pré-Requis:
Une bonne connaissance de HTML
Des connaissances de base en C# 24
26. ASP.NET:
VUE D'ENSEMBLE ET CARACTÉRISTIQUES
ASP.NET fournit des services pour permettre la création, le
déploiement et l'exécution des Applications Web et des services
Web
Les applications Web sont construites en utilisant les Web Forms
Web Forms sont conçus pour rendre la création d’applications
Web aussi facile que la création des applications Visual Basic
Applications sont basées sur le Framework .NET tout langage
de programmation NET peut être utilisé (C #, Visual Basic)
Modèle objet complet
Séparation entre le code et l'interface utilisateur
La gestion des sessions
La mise en cache, débogage, Extensibilité
26
27. ASP.NET
1ére application
Lancer MS Visual Studio (ou bien MS Visual Web Developer)
Menu fichier Nouveau site Web
Choisir Visual C# Web Application ASP.NET
Configurer les informations: Nom, Emplacement (Local,
HTTP ou FTP)
27
Dans l’explorateur de solution on aura:
– Default.aspx: la page web. Disponible en deux modes
d’affichage: « Concepteur de vues » et « Balisage »
– Bouton droit sur « Default.aspx » et « Afficher le
balisage » ou « Concepteur de vues »
– Default.aspx.cs: le code behind (code C# exécuté sur
le serveur)
– Web.config: fichier de configuration de l’application
28. ASP.NET
1ÉRE APPLICATION
Default.aspx:
La directive Page précisant les
informations nécessaires à ASP.NET
pour traiter ce fichier
Les directive ASPX sont entre
<%@ et %>
La directive DOCTYPE qui précise
l'URI pour la DTD, qui définit le
vocabulaire XHTML.
L'attribut xmlns qui spécifie
l'espace de noms XML pour le
document.
runat="server" indique que ASP.NET traite l'élément et ses
éléments imbriqués et génère le code XHTML correspondant
28
29. ASP.NET
1ÉRE APPLICATION
Default.aspx
Si on travaille avec VB.net, la directive Page sera la
suivante:
<%@ Page Language="vb" AutoEventWireup="true"
CodeFile="Default.aspx.vb" Inherits="_Default" %>
Quand AutoEventWireup est en TRUE, ASP.NET traite
automatiquement toute méthode dont le nom est
Page_eventName comment un événement
29
30. ASP.NET
1ÉRE APPLICATION
Modification:
On peut modifier les propriétés de la page Web de
deux manières:
<head runat="server">
<title>Ma premiére page ASPX</title>
</head>
1. Directement dans le mode
balisage
2. Utilisant les propriétés du
DOCUMENT
30
31. ASP.NET
1ÉRE APPLICATION
Modification (suite):
Différence entre contrôles ASP.NET et HTML
Ajouter un titre <h2>
Ajouter une étiquette « label » directement dans le code HTML
Ajouter une étiquette à partir de la boite à outils
31
<body>
<form id="form1" runat="server">
<div>
<h2> le frameWork .net</h2>
<label id="LblHTM"> Lable HTML</label>
<p>
<asp:Label ID="Label1" runat="server" Text="Label ASP" ></asp:Label>
</p>
</div>
</form>
</body>
– La balise asp indique que l’étiquette est un contrôle ASP.NET et pas un
élément XHTML
32. ASP.NET
1ÉRE APPLICATION
Modification
La modification du contrôle ASP.NET est plus simple:
fenêtre Propriétés
<body>
<form id="form1" runat="server">
<div>
<h2> le frameWork .net</h2>
<label id="LblHTM"> Lable HTML</label>
<p>
<asp:Label ID="Label1" runat="server" Text="Label ASP"
BorderColor="#FF3300"
BorderStyle="Dashed" Font-Size="Large"
ForeColor="#3366CC"></asp:Label>
</p>
</div>
</form>
</body>
</html>
32
34. <html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
Ma premiére page ASPX
</title></head>
<body>
<form name="form1" method="post" action="Default.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
value="/wEPDwUJODExMDE5NzY5ZGQcf4hA8Ern83MUMx+7p/3Vl5XGMg=="
/>
</div>
<div>
<h2> le frameWork .net</h2>
<label id="LblHTM"> Lable HTML</label>
<p>
<span id="Label1" style="display:inline-block;color:#3366CC;border-
color:#FF3300;border-style:Dashed;font-size:Large;">Label ASP</span>
</p>
</div>
</form>
</body>
</html>
Seuls les éléments marqués dans le fichier ASPX avec runat="server"
sont modifiés et remplacés dans le XHTML généré
Le formulaire contient une balise span pour représenter le texte de
l'étiquette ASP.NET «Label1». Les Propriétés de formatage du
l’étiquette sont convertis dans l'attribut style de l'élément span.
Des composantes Non visuelles sont ajoutées au formulaire , appelées hidden
inputs, enregistre les données invisible à l’utilisateur
34
35. ASP.NET
1ÉRE APPLICATION
Code Behind
C’est le code dans lequel on écrira les instructions qui seront
exécutées sur le serveur comme, par exemple, récupérer une
valeur, changer un attribut dynamiquement, créer un objet ….
Dans la page Defalut.aspx.cs
using System;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
} 35
36. ASP.NET
1ÉRE APPLICATION
Relation entre un fichier ASPX et le fichier code
behind
Le fichier code-behind hérite de Page, qui définit la
fonctionnalité générale d'une page web.
public partial class _Default : System.Web.UI.Page
Le fichier code-behind contient une classe partielle
La première fois que la page web est demandée, cette classe
est compilé et une instance est créée
Cette instance représente notre page – le code XHTML est
généré XHTML est envoyé au client
Une fois une instance de la page Web a été créé, plusieurs
clients peuvent l'utiliser pour accéder à la page – aucune
recompilation est nécessaire. 36
38. ASP.NET
1ÉRE APPLICATION
Code Behind:
using System;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToString();
}
}
Extrait la date courante et l’affecte à
la propriété texte du label ASP.NET
38
39. ASP.NET
1ÉRE APPLICATION
À Faire
Créer une application Web qui simule une
calculatrice: somme, soustraction, multiplication et
division.
39