Vous êtes sur la page 1sur 63

La couche prsentation

ASP.NET
Syrine Khiari-Sami Ayari ESPRIT
2011-2012

Limitations des clients lourds

Difficult de dploiement Difficult de maintenance

Quest ce quASP.net ?

ASP.net est une technologie .NET. Il permet la programmation dapplications Web dynamiques, du ct du serveur. Les navigateurs Web, laide de pages au format html, servent donc dinterface entre lapplication .NET et lutilisateur.

ASP.NET cest quoi ?


HTML IE

Contrles Serveur

HTML FireFox

.NET
HTML Netscape

ASPX

HTML Opra

ASP.net
Version .NET dASP. : utilis pour la cration de site Web dynamique 3 types de pages : ASPX, ASMX pour les Web services, ASCX pour les contrles utilisateurs. ASP.net fait partie intgrante du FrameWork et bnficie de toutes ses fonctionnalits (classes de base). Les Pages ASP.net sont compils et excut par la CLR : code manag, possibilit debugging . Le code peut-tre spar totalement de la partie prsentation. Apparition des contrles serveurs. Sappuie toujours sur IIS.

Les contrles serveurs


Plusieurs contrles disponibles (Listbox, treeview, calendar, adrotator, ) Excuts sur le serveur. Renvoie du code HMTL au client en fonction du navigateur utilis. Masque au dveloppeur la communication client / serveur. Peut agir sans rechargement de la page. Chaque contrle est une classe du Framework.

Fonctionnement

Structure gnrale dune page asp.NET


Une page asp.NET possde une extension .aspx Cette page a la forme gnrale suivante :

ASP.NET Page/Web Form

Page Directive Server side code Form Normal HTML Structure Server Controls

Script de traitements
Les scripts doivent se trouver entre la balise html ouvrante <head> <script language= "c# " runat= "server "> </script>

<script language= "VB.NET " runat= "server "> </script>


10

Excution et appel de fonctions dans une page Web

<body> <form runat="server "> <h2> Date du jour : <% =DateTime.Now.ToString() %> </h2> </form> </body>

11

Excution et appel de fonctions dans une page Web


<head> <script language= "c#" runat= "server"> string Demain() { DateTime Jour=DateTime.Now ; Jour=Jour.AddDays(1) ; return Jour.ToString() ; } </script> </head> <body> <form runat="server"> Date du jour : <% =DateTime.Now.ToString() %><br> Date de demain : <% =Demain() %> </form> </body>
12

ASP.NET et la sparation de code


L'ide du codeBehind est d'une simplicit vanglique : sparer ce qui n'a pas tre mlang, partie HTML et partie "code". Consquence : on peut laisser un dveloppeur faire son code C# ou VB.NET et faire faire une belle interface web par quelqu'un de comptent.

13

Vue sur le code


Notamment, en regardant la page aspx on lit ceci en premire ligne :<%@ Page Language="C#" Inherits="AlanZero.ZeroPage" %> <% et %> : ce sont des chevrons ASP (ce qui est entre doit tre trait par IIS avant envoi au client) @ Page : chevron ASP.NET (signifie juste que c'est une PAGE en ASP.NET) Language="C#" : le code de script dans la page Inherits="AlanZero.ZeroPage" : cette page hrite (en tant qu'objet) de la classe ZeroPage du namespaceAlanZero (codeBehind)
14

Vue sur le code

Le code behind hrite de System.Web.UI.Page et qui appartiendra au namespace du nom de votre projet. Autre modification, votre page aspx n'hritera plus de System.Web.UI.Page mais de votre classe.

15

La compilation
Votre code compil est stock dans une assembly (sous la forme d'une DLL) dans le sous rpertoire bin/ de votre site. C'est partir de cette librairie que le runtime ASP.NET va instancier les diffrents objets de vos pages.

16

Quelques contrles ASP.net

17

Proprits communes importantes


Id : Tout composant peut porter un nom, ce nom est lId. Cest partir de ce nom que nous pourrons modifier ses attributs dans du code c# . OnClick : est lvnement lorsque lon clique sur un composant, par exemple un bouton. Runat : Cet attribut permet de spcifier o le traitement du composant doit tre fait. Text : est la valeur affiche par le composant. OnTextChanged : est lvnement lorsque le texte change. AutoPostBack : Si sa valeur est true, la page est automatiquement renvoye au serveur pour quil puisse faire son traitement. Dans le cas contraire, la 18 page ne sera envoye que lors dun clic sur un bouton.

HandsHands-on Lab.

Ouvrez vos IDE

ASP.NET Configuration

20

Web.Config

Similaire app.config dans Windows Form application. Fichier de configuration. Fournir des paramtres d'application. En XML, il est donc facile changer et de le parser.

Web.Config

HandsHands-on Lab.

Ouvrez vos IDE

Master pages

Master Pages: les bases


Masters dfinit des contenus communs (<asp:ContentPlaceHolder>) Les Content pages reference les masters pages et remplit placeholders avec un contenu (<asp:Content>)
Site.master
<%@ Master %>

default.aspx
<%@ Page MasterPageFile="Site.master" %> <asp:Content ContentPlaceHolderID= "Main" RunAt="server" />

http://.../default.aspx

<asp:ContentPlaceHolder ID="Main" RunAt="server" />

</asp:Content>

ASP.NET : Master Pages

26

Comment on dfinit les Master pages

Au niveau de la page (dans la page) <%@ Page Language="C# MasterPageFile="MySite.Master"

%>

Au niveau de l'application (dans web.config) <pages masterPageFile="MySite.Master" />

27

Master Pages

Dans la master page <asp:Label ID="Title" RunAt="server" />

Dans la content page Master.FindControl ("Title").Text = "Orders"

HandsHands-on Lab.

Ouvrez vos IDE

Skins et Themes

Theme
Qu'est-ce qu'un thme? Un thme est une collection de paramtres de proprit qui vous permettent de dfinir l'apparence des pages et des contrles Un theme contient: skins, cascading style sheets (CSS), images, Et autres resources

skin

Qu'est-ce qu'un fichier skin? Un fichier skin a l'extension de nom de fichier.skin Appartient un certain thme Contient les paramtres de proprit pour des contrles individuels

Skins et Themes
Pour une page

<%@ Page Theme="BasicBlue">


Pour un Site

<configuration> <system.web> <pages theme="BasicBlue" /> </system.web> </configuration>


En passant par le code

Page.Theme = "BasicBlue"

Skins et Themes
Site ASP.NET

Nom de Theme

App_Themes

SKIN

BasicBlue

SKIN

SKIN

SmokeAndGlass

SKIN

Skins et Themes
Skins sans SkinID sont des default skins Skins avec SkinID sont des named skins
SkinID doit tre unique par type de contrle

On utilise les proprits des contrles SkinID appliquer les skins noms.

default skins
Mais avec Skins, vous laissez le fichier skin faire le travail de design. Dans la page:
<asp:button ID=btnNew runat="server" />

Dans le fichier skin:


<asp:button runat="server BackColor="lightblue ForeColor="black" />

named skins
Dans le fichier skin:
<!-- Default look for DropDownList controls --> <asp:DropDownList runat="server" BackColor="blue" ForeColor="white" SkinID="Blue" />

Dans la page:
<asp:DropDownList ID="Countries" SkinID="Blue" RunAt="server" />

Navigation

38

Navigation
Response.Redirect(url) Elle permet de rediriger le Browser vers ladresse url Le browser gnre donc une requte http

Navigation

Response.Redirect(url) Avantage : facile utiliser Inconvnient : QueryString a une longueur maximale QueryString est visible

40

Navigation
Server.Transfer() Affiche la page de destination Pas de requte http gnre

41

Navigation
Server.Transfer() Avantage : Allge les requtes sur le serveur web Lurl ne s affiche pas dans le browser Inconvnient : Pas de redirection vers des sites hors serveur web Difficile dbuguer
42

La gestion dEtat

Evnements dans le processus de gnration des pages Web


Evnements dans le processus de gnration de page Web
Page_Init Page_Load Server control events Page_Unload

Des vnements du contrle serveur ASP.NET sont traites lorsque la page Web est renvoye sur le serveur Utilisez la proprit Page.IsPostback pour dterminer si la page Web est gnr pour la premire fois private void Page_Load(object sender, System.EventArgs e) { if (!Page.IsPostBack) { // executes only on initial page load } //this code executes on every request }

Gestion des tats


La gestion des tats est la sauvegarde de donnes, pour personnaliser laffichage par exemple. Deux types de variables : Cot Serveur : ce sont des variables stockes dans le serveur : Session, Cache, Application Cot client : ce sont les variables qui sont stockes chez le client (browser) : ViewState, ControlState, Hidden Fields, Cookies, QueryString
45

Session State
Session : Cest un programme excut par un utilisateur pendant une priode donne Variables de session : Ce sont des variables utilises par chaque session ASP .Net : Les variables session sont enregistrs dans une collection dobjets qui porte le mme nom
46

Session State
Enregistrement de donnes

Rcupration de donnes

47

Application State
Cest une variable qui est partag par toutes les pages et tous les utilisateurs. On y place gnralement des donnes non spcifiques aux utilisateurs. Pour initialiser les variables on utilise souvent la classe globale (Global.asax : voir plus loin).
48

Application State
Exemple : cration

49

Application State

Exemple : dapplication

rcupration

de

donnes

50

Classe Globale
Cest une classe globale lApplication (comme une variable globale dapplication) Se trouve dans le fichier Global.asax Cest un fichier (optionnel pour le bon fonctionnement des applications .Net) qui contient du code pour rpondre aux vnements de niveau application ou session dclenchs par ASP.NET.

51

Classe Globale

52

Cache State

Le cache est un contexte de donnes situ ct serveur et qui est partag par tous les utilisateurs Leurs gestion est donc difficile et dlicate Parmi les proprits diffrentes de lapplication state La dure de vie

53

View State
Le ViewState est donc une variable qui se loge cot client! Il permet de conserver ltat de certains contrles serveur aprs un PostBack Transform en <input type="hidden" />

54

Hidden fields
Une manire pour cacher des informations dans la page web

55

Cookies
Un Cookie est une petite quantit de donnes stocke soit dans un fichier texte dans le systme de fichier client (si le Cookie est persistant) soit en mmoire dans les sessions du navigateur client (si le Cookie est temporaire) Les Cookies sont le moyen le plus flexible et le plus fiable pour stocker des informations sur le poste client.
56

Cookies
Exemple : ~ 20 cookies par site 4 Ko par cookie

57

Cookies
Plusieurs sous cls par cookie Si vous stockez cinq sous-cls la place de cinq cookies distincts, vous conomisez la charge mmoire de ces cookies.

58

HandsHands-on Lab.

Ouvrez vos IDE

Dploiement

60

IIS 7.0

IIS7 est la dernire version du serveur web de Microsoft, ce dernier est rattach, dans une version allge, Windows Vista et dans sa version intgrale Windows Server 2008. Une version de Windows Server 2008 lui est entirement ddie avec Windows Web Server 2008.

61

Comment dployer un Site ASP.net sur IIS 7.0

tape 1: A partir de Visual Studio, publiez votre application Web. tape 2: Copiez le dossier de l'application publie dans "C: \ intepub \ wwwroot" dossier [par dfaut]. tape 3: Du RUN -> inetmgr -> OK

62

HandsHands-on Lab.

Ouvrez vos IDE

Vous aimerez peut-être aussi