Professional Documents
Culture Documents
ASP.NET
1. Dveloppement
2. Contrles
2.1 Contrles lmentaires
2.2 Prsentation de donnes
2.3 Gestion des utilisateurs
2.4 Pagelet
Lionel Seinturier
Universit des Sciences et Technologies de Lille
Lionel.Seinturier@lifl.fr
26/11/07
ASP.NET
Lionel Seinturier
ASP.NET
ASP.NET
Lionel Seinturier
ASP.NET
ASP vs ASP.NET
les fichiers .aspx sont stocks sur le serveur (comme des docs)
ils sont dsigns par une URL
http://www.lifl.fr/prog.aspx
le chargement de l'URL provoque l'excution de l'ASP ct serveur
ASP.NET vs JSP
1
Client
Serveur
4
IE
Firefox
...
ASP.NET
2
prog.aspx
3
CLR
ASP.NET vs servlet
.NET
ASP.NET
Lionel Seinturier
1. Dveloppement
1. Dveloppement
Illustration du fonctionnement
Principe de fonctionnement
du code C#
{
rsultat = HTML
gnr via l'objet
prdfini Response
invocation
ce qui est
renvoy
au client
excution
ct serveur
ASP.NET
Lionel Seinturier
ASP.NET
1. Dveloppement
<HTML> <BODY>
1. Dveloppement
Principe de fonctionnement
plusieurs zones <% ... %> possibles dans une mme ASP.NET
excutes dans leur ordre de dfinition
Lionel Seinturier
runat="server">
et </script>
ASP.NET
Lionel Seinturier
ASP.NET
1. Dveloppement
Lionel Seinturier
1. Dveloppement
Balise <script>
Exemple
2me invocation
%> </H1>
Directive Import
<%@ Import Namespace = "...">
ASP.NET
Lionel Seinturier
1. Dveloppement
us i ng
ASP.NET
10
1. Dveloppement
Request
Response
Session
Cache
Server
Trace
Application
Lionel Seinturier
object value )
<HTML> <BODY>
<FORM ACTION="http://..."
METHOD=POST>
Nom <INPUT NAME="nom"> <P>
Prnom <INPUT NAME="prenom"> <P>
<INPUT TYPE=SUBMIT VALUE="Envoi">
<INPUT TYPE=RESET
VALUE="Remise zro">
</FORM>
</BODY> </HTML>
ASP.NET
11
Lionel Seinturier
ASP.NET
12
1. Dveloppement
Lionel Seinturier
1. Dveloppement
ASP.NET 4
Inclusion de pages
ASP.NET 1
ASP.NET 5
ASP.NET ____ ASP.NET 2
ASP.NET 3
Mthode Server.Execute
Fichier inc.aspx
clic
URL
ASP.NET
13
Lionel Seinturier
ASP.NET
14
1. Dveloppement
1. Dveloppement
Dlgation de page
Mthode Server.Transfer
Tout ce qui est aprs Transfer est ignor
2 possibilits
<%@ Page Language="c#" %>
<HTML> <BODY>
<H1>ASP.NET principale</H1>
<%
Server.Transfer(" transf.aspx ");
%>
</BODY> </HTML>
URL
Lionel Seinturier
ASP.NET
15
Lionel Seinturier
ASP.NET
16
1. Dveloppement
Lionel Seinturier
1. Dveloppement
Exemple de gestion d'erreur
=0
par dfaut
</BODY> </HTML>
%> </H1>
<HTML> <BODY>
<h1>Le 0 est sorti
!!</h1>
Si hasard = 0
d'erreur
page
ASP.NET
17
Lionel Seinturier
err.aspx
ASP.NET
1. Dveloppement
Gestion des traces
System.Web.TraceContext
Trace.Write(string message)
Trace.Write(string categorie, string message)
Trace.Write(string categorie, string message, Exception e)
idem mthode Warn : les messages apparaissent en rouge dans les traces
Lionel Seinturier
1. Dveloppement
Activation des traces
debugger
contrler/inspecter le droulement d'une appli web
la main : Response.Write
: lourd, long enlever pour passer en prod.
18
Exemple factorielle
chaque itration :
Trace.Write( "i=" + i + " / fact=" + fact );
ASP.NET
19
Lionel Seinturier
ASP.NET
20
Plan
Lionel Seinturier
2. Contrles
Philosophie ASP.NET
Sparer
1. D v e l op p e m e nt
rendu graphique
traitement
2. Contrles
2.1 Contrles lmentaires
2.2 Prsentation de donnes
2.3 Autres contrles
2.4 Pagelet
2 fichiers
.aspx
le code de prsentation et celui des contrles
fichier XTHML (HTML 4.0 formul en XML)
Web form
.aspx.cs , .aspx.vb , ...
fichier dit codebehind
classe contenant les traitements
ASP.NET
21
Lionel Seinturier
ASP.NET
2. Contrles
22
Lionel Seinturier
2. Contrles
Les contrles
proprits
: les
affichage
: Label, Image, Panel, Tabel
saisie
: TextBox,
CheckBox, RadioButton, FileUpload, ...
validation
: CompareValidator, RequiredFieldValidator, RangeValidator, ...
divers : Calendar
ASP.NET
23
Lionel Seinturier
ASP.NET
24
Lionel Seinturier
Exemple
Exemple
Fichier WebForm1.aspx
Fichier WebForm1.aspx.cs
public partial class WebForm1
System.Web.UI.Page {
demo >>
ASP.NET
25
Lionel Seinturier
Lionel Seinturier
ID
: identificateur unique (proprit prsente pour tous les contrles)
Text
: le texte affich
MaxLength
: taille max du texte
TextMode
: SingleLine | MultiLine | Password
ReadOnly
: false | true
Columns
: le nombre de colonnes
Rows
: le nombre de lignes (MultiLine)
BackColor, BorderColor, ForeColor
: couleurs
BorderStyle, BorderWidth, Font
: affichage
vnement principal
: le texte change
26
Proprits principales
TextChanged
ASP.NET
ASP.NET
27
Lionel Seinturier
ASP.NET
28
Lionel Seinturier
Contrle GridView
Server, ...)
dition, suppression
pager automatique
tri
...)
Exemple d'utilisation
dition des donnes d'une table SQL
ObjectDataSource
ASP.NET
29
Lionel Seinturier
ASP.NET
30
Lionel Seinturier
Contrle GridView
Exemples
Proprits principales
Exemple de DataSource
ID
AllowPaging, AllowSorting
AutoGenerateColumns
AutoGenerateDeleteButton (idem Edit, Select)
Rows
: les lignes affiches dans le GridView
SelectedIndex : l'indice de la ligne slectionne
ex. utilisation : GridView1.Rows[GridView1.SelectedIndex].Cells[0].Text
EditIndex, PageIndex
Exemple de GridView
<asp:GridView ID='GridView1' runat='server'
DataSourceID="SqlDataSource1" DataKeyNames="nom"
AutoGenerateColumns="True"
vnements principaux
RowUpdating : juste avant de mettre voir une ligne
RowUpdated : aprs avoir mis jour une ligne
idem SelectedIndexChanging/ed, Sorting/ed, RowDeleting/ed, PageIndexChanging/ed
demo >>
</asp:GridView>
ASP.NET
31
Lionel Seinturier
ASP.NET
32
Lionel Seinturier
Contrle DetailsView
Exemple
demo >>
ASP.NET
33
Lionel Seinturier
ASP.NET
34
Lionel Seinturier
Contrle Login
Contrle Login
Login
: se connecter
LoginStatus
: affichage du statut (connect/non connect)
CreateUserWizard : cration dun nouvel utilisateur
ChangePassword
PasswordRecovery
<system.web>
<authentication mode="Windows"/>
<authentication mode="Forms"/>
ASP.NET
35
Lionel Seinturier
ASP.NET
36
Contrle Login
Contrle Login
Par dfaut le contrle Login impose des rgles strictes de scurit sur les mots de passe
<system.web>
<authentication mode="Forms"/>
<membership defaultProvider="MyMembershipProvider"
<providers>
<add
name="MyMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
minRequiredNonalphanumericCharacters="0"
minRequiredPasswordLength="1"
passwordStrengthRegularExpression=""
au moins 7 caractres
au moins 1 caractre non alphanumrique
Lionel Seinturier
>
ASP.NET
37
Lionel Seinturier
ASP.NET
38
Lionel Seinturier
2.4 Pagelet
Contrle Login
rogramme aspnet_regsql.exe
base SQL Server aspnetdb
p
\WINDOWS\Microsoft.NET\Framework\v2.0.xxx
<table><tr>
<td><asp:textbox id="jour" runat="server" /></td><td>/</td>
<td><asp:textbox id="mois" runat="server" /></td><td>/</td>
<td><asp:textbox id="annee" runat="server" /></td>
ASP.NET
39
Lionel Seinturier
ASP.NET
40
2.4 Pagelet
2.4 Pagelet
Utilisation de pagelet
Utilisation de pagelet
<%@ Register
TagPrefix
TagName
Src
Lionel Seinturier
clic
System.EventArgs e) {
41
Lionel Seinturier
ASP.NET
42
Lionel Seinturier
2.4 Pagelet
2.4 Pagelet
Utilisation de pagelet
tendre System.Web.UI.WebControls.WebControl
redfinir CreateChildControls
Alternativement
Avantage
: le contrle peut-etre dfini l'aide d'un DOM HTML
on ne se proccupe pas d'crire le code HTML
LoadControl('Date.ascx')
public class MyWebControl : WebControl {
protected override void CreateChildControls()
Table tbl = new Table();
TableRow row = new tableRow();
<script runat='server'>
void Page_Load() {
Control dt = LoadControl('Date.ascx');
((Date_ascx)dt).Jour = 12;
Frm.Controls.Add(dt);
}
</script>
ASP.NET
43
Lionel Seinturier
}
ASP.NET
Plan
44
Lionel Seinturier
1. D v e l op p e m e nt
Request
2. Contrles
2.1 Contrles lmentaires
2.2 Prsentation de donnes
2.3 Pagelet
.Params
.RawUrl
.FilePath
.PhysicalPath
l'URL complte
le chemin du fichier dans l'URL
le chemin du fichier sur disque
c:\Inetput\wwwroot\foobar\c2\WebForm1.aspx
.PhysicalApplicationPath
45
la racine de l'application
c:\Inetput\wwwroot\foobar\
.Headers
.UserHostName
.UserHostAddress
.UserLanguages
.Cookies
ASP.NET
/foobar/c2/WebForm1.aspx
Lionel Seinturier
ASP.NET
Lionel Seinturier
Session
System.Web.HttpResponse
.ContentType
.Cache
.SetCookie
Session cre lors de la 1re visite d'un client (Session.IsNewSession vaut true)
Session.Timeout
dlai d'inactivit (en minutes) au del duquel la session expire
ASP.NET
47
Lionel Seinturier
ASP.NET
48
Lionel Seinturier
Cache
System.Web.Caching.Cache
Server
System.Web.HttpApplicationState
Application["key"] = object
Application.Count
le #
d'lments dans la session
Application.
GetEnumerator()
un itrateur sur toutes les lments de la session
Application.Remove("key")
Application.RemoveAt(int)
Application.RemoveAll()
3. Complments sur
ASP.NET
50
Lionel Seinturier