90
5/24/2018 ASPNET-Priseenmain-CSharp_ASP63.pdf-slidepdf.com http://slidepdf.com/reader/full/aspnet-prise-en-main-csharpasp63pdf 1/90 SUPPORT DE FORMATION : ASP.NET auteur centre outil type doc millésime version page 1 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc afpa   ©  

ASPNET-Prise en main-CSharp_ASP63.pdf

Embed Size (px)

Citation preview

  • SUPPORT DE FORMATION : ASP.NET

    auteur centre outil type doc millsime version page 1 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Table des matires

    Excution de code sur le serveur..................................................................................... 3 ASP.NET ............................................................................................................................ 7 Projet ASP.NET ................................................................................................................. 10 Pages Web Forms ............................................................................................................. 12

    Exercices de dcouverte dASP.Net

    Objets ASP.Net .................................................................................................................. 25

    Exercices sur les objets ASP

    Contrles graphiques serveurs ....................................................................................... 42 Cycle de vie dune page WebForms ................................................................................ 60

    Exercices sur les contrles graphiques serveurs

    Accs aux bases de donnes : ADO.Net ........................................................................ 64

    Exercices sur laccs aux bases de donnes

    Annexes ............................................................................................................................. 77

    Configuration dapplication Gestion dtat Passage de valeurs entre les pages Web Forms Fonctionnalits ct client dans un contrle serveur

    auteur centre outil type doc millsime version page 2 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Excution de code sur le serveur

    Architecture dapplication Web

    Client Serveur Web Serveur dapplication

    Serveur dentreprise

    Autres ressources : fichiers, messagerie,

    annuaire,

    Autres applications serveurs : mainframe,

    PGI,

    Middlewares connecteurs

    Serveur de composants

    (EJB, ActiveX,)

    Serveur de scripts et de programmes

    serveur (ASP, JSP, PHP,)

    Serveur HTTP

    Navigateur Web

    Code html/css/xml

    Script client

    Moteur de scripts

    Machine Virtuelle Java

    Applet

    Composants clients (ActiveX,...)

    client Windows

    HTTP

    DCOM, .Net Remoting, RMI/IIOP,... (1)

    - Pages Web (avec scripts client et serveur)- Fichiers multimdias

    SGBD

    Fichiers de code serveur (programme CGI/API, servlet, ActiveX serveur,)

    Services middleware (2)

    (1) Cas particulier : des composants clients peuvent communiquer directement avec des applications serveurs au moyen dun

    protocole de type client/serveur (DCOM, .Net Remoting, IIOP, RMI, ...). (2) Services middleware : gestion de sessions, gestion de transactions, scurit, administration, gestion des performances

    (caches, quilibrage des charges entre serveurs,).

    auteur centre outil type doc millsime version page 3 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Fonctionnement :

    n Le client charge la page html

    Serveur de donnes

    Serveur Pages html

    Navigateur client

    Page html

    HTTP

    Appel de prog. serveur

    Moteur HTTP

    CGI, ASP,...

    Prog. serveur

    n

    SQL

    Base de donneso

    p rq

    sPage html gnre en rponse Construction

    ( lintrieur du programme)de la page html envoyer

    Le navigateur interprte le code html. Les scripts inclus dans la page sont interprts par le moteur de scripts du navigateur. Si la page comprend des appels dapplets, celles-ci sont excutes par la machine virtuelle Java du navigateur.

    o Le client envoi une requte au serveur Web (en HTTP) en dsignant le programme serveur par son

    URL.

    p Le moteur HTTP lance le programme ou passe le relai au serveur dapplication.

    q Le programme sexcute sur le serveur Traitement des informations saisies par un utilisateur dans le formulaire de la page Web. Interrogation d'une base de donnes et transmission des rsultats une page html. Redirection d'une demande utilisateur vers une page particulire en fonction d'une condition

    comme la vrification d'un mot de passe par exemple. Si lapplication exige certains traitements intermdiaires (authentification, suivi du

    cheminement,), le serveur dapplication (entre le serveur Web et le serveur de donnes) prend en charge la gestion du contexte utilisateur.

    r Le programme serveur transform s rsultats en page html qui est renvoye au moteur HTTP.

    s Le moteur HTTP renvoie la page html au client, avec les fichiers asso s : multimdias, feuilles de styles, scripts, composants clients (applets, ActiveX),

    auteur centre outil type doc millsime Michel Astre Beaumont Word 2000 supp. form 13/03/06

    afpa cie leversion page 4 1 CSharp_ASP63.doc

  • SUPPORT DE FORMATION ASP.NET

    Historique des techniques de dveloppements destins aux serveurs

    1- Programme CGI (Common Gateway Interface)

    CGI est un protocole utilis par un navigateur pour demander lexcution dune application externe par un serveur Web. Lapplication CGI appele peut tre un programme compil (langage C, L4G,) ou pr-compil (Java), ou bien un script interprt (Perl,). Dans tous les cas, linterface CGI lance toujours un excutable (programme lui-mme, ou interprteur de script) qui cre sur le serveur un processus par requte (processus distincts du processus du serveur Web). Cette technique a donc pour inconvnients de limiter le nombre de transactions simultanes et dtre gourmande en ressources systmes.

    2- Programme crit avec une API propitaire (ISAPI, ) procurant des amliorations de performance.

    Les API propritaires (cest--dire les interfaces natives des serveurs Web) sont apparues en 1996 dans le but damliorer les performances par rapport CGI. Un programme crit avec lAPI est excut dans le contexte de la tche du serveur HTTP et non comme un processus indpendant (la DLL de lAPI nest charge quune fois). Pour le serveur Web de Microsoft (IIS), un programme ISAPI (appel filtre ISAPI) sappuie sur une DLL multi-thread (bibliothque de fonctions statiques sous dautres systmes), restant en mmoire aprs lappel, et qui est rentrante (partageable entre plusieurs clients simultanment). Les pages ASP et ASP.Net sont traites par des filtres ISAPI.

    3- Les scripts serveur (ASP, ) associs des passerelle SGBD-Web permettant un dveloppement plus simple : voir SSS ci-dessous.

    4- Les scripts et programmes serveurs prcompils (servlet, ASP.NET) : voir ASP.NET .

    Scripting Serveur : SSS (Server Side Scripting)

    Il est possible dcrire des scripts serveur sexcutant directement sur le serveur Web avant envoi de la page au client (contrairement aux scripts clients qui sexcutent sur le client, une fois la page tlcharge).

    Les scripts serveur peuvent gnrer tout type de sortie, non seulement des valeurs pour les variables ou les expressions, mais aussi du texte et des balises html ainsi que des scripts client. Une mme page de script serveur peut gnrer diffrentes pages HML en fonctions des valeurs rcupres. Un script est plus simple crire quun programme sappuyant directement sur lAPI du serveur Web.

    auteur centre outil type doc millsime version page 5 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Des scripts client et serveur peuvent cohabiter sur une mme page Web.

    Interprtation au chargement dans le navigateur des scripts clients inline et du HTML

    Excution par le serveur Web de lintgralit du script serveur (avant envoi de la page au client)

    Interprtation la demande des fonctions de script client :

    - dclenches par des vnements - appeles par une autre fonction

    Scripting Editeur Serveur Web Langage

    script serveur

    Communica-tion des

    composants

    Compo-sants

    serveurs

    Accs aux donnes

    (haut niveau)

    Accs aux donnes

    (bas niveau) ASP (Active Server Page)

    Microsoft IIS, PWS, Chili!Soft (Unix), Apache,

    VBScript et JScript interprts

    DCOM ActiveX ADO ODBC OLE-DB

    ASP.Net Microsoft IIS, Cassini diffrents langages (JScript, C#, VB, )

    .Net Remoting

    .Net Objects

    ADO.Net OLE-DB

    Cold Fusion Allaire (Macro-media)

    IIS, Apache CFML (ColdFusion ML)

    JSP (Java Server Page)

    Sun IBM, IIS, Apache

    Java : - script Java - Servlet (*)

    RMI - IIOP EJB (Enterprise JavaBeans)

    JBDC JDO

    PHP (Personal Home Page)

    Open Source

    Apache, PHP Classes PHP

    PEAR DB ODBC API native

    Perl Open Source

    script CGI DBI DBD

    (*) JSP = scripts Java incorpors dans des pages html et interprts sur le serveur (comme ASP) Servlet : programme Java compil.

    SSI (Server Side Include) : voir annexe du cours HTML

    Le code SSI permet dincorporer des i fichier, date, heure, variable denvironnement, ) dans des pages H en html par le serveur http (si ce dernier supporte et autorise les SS igateur.

    auteur centre Michel Astre Beaumont

    afpa nformations dynamiques (autre TML. Le code SSI est transformI) avant lenvoi de la page au navoutil type doc millsime version page 6 Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

  • SUPPORT DE FORMATION ASP.NET

    ASP.Net

    Pr-requis ) Serveur Web install localement ou sur un serveur distant : services IIS (version 5.0 ou ultrieure),

    Cassini (IIS light fourni avec WebMatrix). ) Environnement de dveloppement : Visual Studio .Net, WebMatrix (Igratuit). Il est mme possible

    de dvelopper avec le simple Bloc-notes. ) Extensions serveur FrontPage (mthode d'accs) ) Autorisations Web correctes pour lapplication.

    ASP .NET

    Un application Web a une prsentation base sur HTML et une partie du code sexcutant sur un serveur Web. La construction d'une telle application avec Visual Studio repose sur ASP.NET.

    ASP.NET est une plate-forme servant au dveloppement et l'excution d'applications sur un serveur Web. Avec ASP, le serveur Web se concentre sur les requtes http standards, laissant le traitement des pages excutables un processus spcialis.

    Serveur

    SGBDASP.NET

    Serveur de composants

    ADO .Net

    Framework (classes et CLR)

    Soap .Net Remoting

    OLE-DB

    composants mtier et accs aux donnes

    composants compils

    dynamiquement

    Serveur dapplications .Net

    Base de donnesrponse (gnre dynamiquement)

    serveur Web (moteur http)

    client Web

    requte

    HTTP

    Une page ASP (suffixe .aspx ) est une page html mlangeant du code destin tre excut sur le client (html et scripts client) du script ASP destin tre excut sur le serveur. Ce script serveur est distingu du reste de la page par des balises particulires et peut tre plac dans un fichier spar (suffixe .aspx.cs )

    auteur centre outil type doc millsime version page 7 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Variantes de script Balises Exemples

    Script serveur en ligne

    Affichage dune expression en ligne

    Fonction script serveur

    < script language=c# runat=server > public string GetDate() { }

    Directive de paramtrage de la page

    Uniquement en conception Contrle serveur HTML

    Exemple de contrle HtmlInputText

    Contrles serveur Web

    Exemple de contrle TextBox

    Expression de liaison de donnes

    ASP.NET fait partie du .NET Framework, de sorte qu'il permet d'accder toutes les fonctionnalits de cette infrastructure : utilisation de n'importe quel langage de programmation .NET, accs aux donnes avec ADO.NET, ...

    ASP et ASP .NET

    ASP.NET est une nouvelle version de ASP (Active Server Pages) fortement compatible avec cette dernire.

    ASP ASP.Net Langage VBScript JScript Au choix parmi les langages .Net (mais un seul langage par page) Fonctionna-lits RAD

    Elmentaires (contrles DTC) Nombreux contrles serveurs gnrant du code en fonction du client.

    Traduction Interprtation Le moteur ASP.Net - parse la page, - la transforme en classe, - et la compile la vole

    Architecture Le code et linterface se trouvent souvent dans le mme fichier

    Le code dhabillage de linterface utilisateur et le traitement des donnes sont dsormais bien spars

    Modle objet 5 objets ASP offrant des fonctionnalits serveur de base

    Le modle objet permet une abstraction du contenu physique dune page HTML, ainsi que de l'interaction directe entre le navigateur et le serveur. Les contrles serveur sutilise comme dans une application Windows.

    Gestion vnementielle

    Tout est programm directement en JavaScript client

    La gestion des vnements peut sutiliser comme dans une application Windows. Le dveloppeur peut ne pas grer lui-mme le mcanisme sous-jacent de capture d'un vnement sur le client, de transmission au serveur et d'appel la mthode approprie.

    Gestion des tats

    Gestion manuelle Gestion automatique (et paramttre) de conservation de l'tat du formulaire et de ses contrles.

    Portabilit Gestion manuelle des particularits des navigateurs

    L'infrastructure des pages ASP.NET permet de crer toute la logique de l'application sur le serveur, vitant ainsi de coder explicitement les diffrences des navigateurs. Cependant, il est possible de tirer partie des fonctionnalits dun d'un navigateur ou d'un priphrique client spcifique (tlphones, PDA, ).

    auteur centre outil type doc millsime version page 8 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    ) Dans lancien modle ASP, la page est compose de code de script coexistant avec du HTML statique

    dans le mme fichier. L'analyseur ASP lit la page, l'interprte et n'excute que le code de script pour obtenir des rsultats. ASP fusionne ensuite le rsultat du code de script avec le rsultat du HTML statique obtenu dans la page avant de renvoyer le rsultat au navigateur.

    ) Dans le nouveau modle ASP.NET, l'intgralit de la page Web Forms est, en fait, un programme

    excutable qui gnre un rsultat renvoyer au navigateur ou au priphrique client. Dans ce modle, la page passe par une srie d'tapes de traitement similaires celles d'autres composants initialisation, traitement et suppression deux diffrences prs :

    La classe de page ralise ces tapes chaque fois que la page est appele. La page est initialise,

    traite, puis supprime chaque aller-retour vers le serveur. La classe de page n'a qu'une tape rendu qui se produit vers la fin du cycle de vie de la page,

    lors de la gnration du rsultat.

    Difficults du dveloppement Web

    ASP.NET offre des solutions aux principaux problmes du dveloppement Web :

    Contraintes Consquences

    Les fonctionnalits HTML de base sont limites Une application Web est susceptible dtre destine divers navigateurs et plates-formes priphriques clientes.

    Limplmentation d'une interface utilisateur Web labore est difficile (interactivit, contenu dynamique, ...)

    Le client (navigateur) et le serveur sont des programmes diffrents, excuts sur des ordinateurs diffrents (voire sur des systmes d'exploitation diffrents).

    Les deux moitis de l'application ne partagent que trs peu de donnes ; elles peuvent communiquer, mais n'changent gnralement que de faibles quantits d'informations simples

    Excution sans tat : par dfaut, un serveur Web ne conserve aucune information relative aux pages qu'il a traites.

    Ceci pose un problme si une application doit conserver des informations sur une page. Ce problme doit tre rsolu dans le code de l'application

    Fonctionnalits clientes inconnues. Les applications Web sont souvent accessibles par diffrents utilisateurs utilisant diffrents navigateurs. Les navigateurs disposent de fonctionnalits diffrentes

    Ceci complique la cration d'une application qui doit tre capable d'tre excute aussi efficacement sur chaque client

    Complications relatives l'accs aux donnes La lecture et l'criture peuvent se rvler complexes et gourmandes en ressources

    auteur centre outil type doc millsime version page 9 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Projet ASP.NET

    Application Web ASP.NET

    SGBD

    serveur

    Web

    ) Interface utilisateur

    Pages HTML pour du contenu statique.

    Pages Web Forms pour un contenu dynamique

    Lorsque des utilisateurs demandent une page Web Forms, l'infrastructure Page excute l'objet page Web Forms et les diffrents contrles qu'elle contient. Le rsultat de la classe Page et des contrles est au format HTML.

    ) Composants : classes .Net (C#, ...) ou services Web XML.

    Un service Web XML est un composant qui peut tre appel par d'autres applications via un rseau TCP/IP. Il remplit une fonction spcifique (traitement de commandes complexe, calculs, validation de cartes de crdit, ...) et retourne des valeurs l'application appelante.

    auteur centre outil type doc millsime version page 10 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Projet Web

    Un projet d'application Web est un rfrentiel central de toutes les informations ncessaires la cration, l'excution et la gestion de l'application.

    ) Le modle dapplication Web de Visual Studio ajoute automatiquement les rfrences et fichiers

    projet essentiels :

    Fichiers Rpertoire Description AssemblyInfo.cs Racine Fichier d'informations de projet qui contient des mtadonnes sur les

    assemblys d'un projet, telles que le nom, la version et les informations de culture

    Global.asax Global.asax.cs

    Racine Contient du code de rponse aux vnements de niveau application dclenchs par ASP.NET.

    Web.config Racine Fichier XML qui contient les donnes de configuration sur chaque ressource URL unique utilise dans le projet.

    WebForm1.aspx Racine Contient la partie de la page Web Forms par dfaut qui comprend des lments de l'interface utilisateur (contrles), semblable une page HTML.

    Webform1.aspx.cs Racine Fichier de classe pour la page Web Forms par dfaut qui comprend le code utilisateur et systme de la page.

    WebForm1.aspx.resx

    Racine Fichier XML de ressources (donnes, images, ...) de la page. Il est modifiable (culture, ) sans recompilation.

    WebForm.dll Bin Page compile WebForm.pdb Bin Fichier utilis pour le dbogage

    Rfrences Description Rfrences aux espaces de noms .NET Framework

    - System.dll : classes de base (types de donnes, vnements et gestionnaires d'vnements, interfaces, attributs et traitement des exceptions) - System.Data.dll : classes de l'architecture ADO.NET - System.Drawing.dll : classes des fonctionnalits graphiques de base GDI+. - System.Web.dll : classes qui permettent la communication entre le navigateur et le serveur. - System.Xml.dll : classes de XML.

    ) Fichiers dune application Web

    Extension Fichier Description ascx UserControl Contrle utilisateur asmx WebService Classe encapsule crite en VB, VC++ ou C# aspc.cs Code behind Partie code dune page Web ASP.NET, compil la premire invocation aspx WebForm Partie prsentation dune page Web ASP.NET config Fichier de configuration

    d'application Fichier utilis pour dfinir des paramtres de configuration d'une application.

    cs Classe Fichier de code qui contient une dclaration de classe. css Feuille de style Feuille de styles HTML lie une page Web htm Page HTML Page HTML pouvant inclure du code ct client. js Fichier JScript Fichier de code JScript li une page Web

    auteur centre outil type doc millsime version page 11 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Pages Web Forms

    Structure dune page Web Form ) Les pages Web Forms permettent de crer des pages Web programmables en sparant linterface et le

    code serveur de la page en deux fichiers distincts.

    Fichier Extension Code Langage Fichier interface

    aspx Code client interprt implmentant la couche prsentation de la page (texte statique et formulaire avec des contrles graphiques HTML ou serveur)

    Langages compatibles HTTP : HTML, XML, WML et ECMAScript (JScript, JavaScript)

    Fichier de code behind

    aspx.cs (pour C# )

    Code serveur compil implmentant la couche contrleur de la page (interaction avec le formulaire). Ce code est excut par ASP avant gnration dynamique de la page envoyer.

    Langages de programmation .NET : Visual Basic .NET, C#, JScript .NET, ...

    aspx interface

    c(C

    css styles

    ) Remarques

    Visual Studio ne prend pas en ch

    les projets. Il est donc impossibleVisual Basic et vice-versa.

    Il est possible de crer les lme

    - L'un des avantages d'une page - Cependant, certaines fonction

    composants de donnes par drvnements aux gestionnaires

    auteur centre Michel Astre Beaumon

    afpa aspx.cs ode behind #, JScript,...)

    classe C#

    arge la compilation inter-langage dans les pages Web Forms et dans d'inclure une page Web Forms Visual C# dans un projet Web

    nts visuels et le code dans un unique fichier aspx

    fichier unique rside dans sa plus grande facilit de dploiement.

    nalits de Visual Studio ne sont pas accessibles : modle de page, ag & drop, prise en charge dIntellisense, liaison automatique des d'vnements, certaines fonctionnalits de dbogage, ...

    outil type doc millsime version page 12 t Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

  • SUPPORT DE FORMATION ASP.NET

    Exemple de page Web Form gnre par Visual Studio

    Projet : TestWebForm ) Fichier de la page Web ASP.Net : WebForm1.aspx

    Visualisation en mode HTML (code source HTML)

    Nom de la classe (dans la dll du projet) partir duquel le fichier .aspx est driv.

    AutoEventWireup doit toujours avoir la valeur false lorsque vous utilisez Visual Studio.

    WebForm1 Premier test ASP

    Code ajout manuellement

    Cet attribut indique un traitement par le serveur

    auteur centre outil type doc millsime version page 13 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Visualisation en mode Design (conception du dessin)

    - pageLayout = GridLayout = mode de prsentation grille : objets disposs en coordonnes absolues. Le texte statique peut tre mis dans un contrle HTML Label quil faut ensuite positionner lendroit voulu sur la page.

    Un contrle Label gnre en ralit une balide DIV. Par exemple Label Avantage : facilite le positionnement des lments.

    - pageLayout = FlowLayout = mode de prsentation fluide : affichage de haut en bas

    (coordonnes relatives), ce qui est conseill pour du html. Il faut simplement taper le texte l'endroit o il doit apparatre.

    Avantage : facilite l'ajout de texte statique.

    ) Visualisation du code HTML reu par le navigateur

    Lentte de page ASP nest pas envoy au client

    WebForm1 La balise form

    a t modifie Premier test ASP

    Trs important : Cest un champ cach (gnr automatiquement) qui permet de grer ltat daffichage

    auteur centre outil type doc millsime version page 14 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    ) Fichier du code-behind correspondant la page : WebForm1.aspx.cs (affichage avec menu

    contextuel afficher le code ).

    using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace TestWebForm { /// /// Description rsume de WebForm1. /// public class WebForm1 : System.Web.UI.Page

    Hritage de System.Web.UI.Page

    { private void Page_Load(object sender, System.EventArgs e) { // Placer ici le code utilisateur pour initialiser la page } #region Code gnr par le Concepteur Web Form override protected void OnInit(EventArgs e) { // // CODEGEN : Cet appel est requis par le Concepteur Web Form ASP.NET. // InitializeComponent(); base.OnInit(e); } /// /// Mthode requise pour la prise en charge du concepteur - ne modifiez pas /// le contenu de cette mthode avec l'diteur de code. /// private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion } }

    auteur centre outil type doc millsime version page 15 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Exemple de script ASP simple (avec objet Response implicite)

    ) 1re version : code client et serveur dans un seul fichier

    ExCours1 private string _utilisateur="Astre"; public string NomUser() { return _utilisateur; } Gnration de page Test avec taille =

    ) 2me version avec code client et code serveur (code behind) spars

    Page aspx interprte par le serveur : ExCours1.aspx

    Langage pour les scripts serveur.

    Hritage de la classe situe dans le fichier code-behind.

    ExCours1 Ex cours n 1 Nom utilisateur :

    Exemple de script serveur inline : appel dune fonction situe dans le fichier code-behind. Cette fonction est accessible, car la page aspx hrite de la classe ExCours1 du code-behind.

    {%>

  • SUPPORT DE FORMATION ASP.NET

    Page aspx.cs de code-benind associ using ... namespace ASPNET.TPASP { public class ExCours1 : System.Web.UI.Page { private string _utilisateur="Astre"; private void Page_Load(object sender, System.EventArgs e)

    Exemple de champ en script serveur

    { } #region Code gnr par le Concepteur Web Form ... #endregion public string NomUser()

    Exemple de mthode en script serveur

    { return _utilisateur; } } }

    ) Mme page telle quelle est reue sur le navigateur.

    Le client ne peut recevoir que du code interprtable par le navigateur : HTML, CSS, JavaScript, XML.

    ExCours1 Ex cours n 1 Nom utilisateur : Astre Test avec taille = 10 Test avec taille = 20 Test avec taille = 30 Test avec taille = 40 Test avec taille = 50

    Cette page dynamique est un document virtuel qui nexiste pas sur le serveur en tant que fichierstock.

    ) Page affiche

    auteur centre outil type doc millsime version page 17 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Exemple de page ASP avec un formulaire : avec contrles HTML standards

    ) Graphe du dialogue.

    ) Graphe de rpartition des traitements.

    Homme Client (navigateur) Serveur Web

    saisie champ txtNom bouton btnEnvoyer

    visualisation du rsultat

    ExCours2Ctl.aspbtnEnvoyer

    ExCours2.htm

    Voir le cours Conception technique pour lutilisation des strotypes UML.

    ExCours2Ctl.aspExCours2Ctl.asp

    ExCours2.htm

    ) Diagramme de squences

    Pour lutilisation des strotypes UML, voir le cours UML.

    Acteur ExCours2.htm page client

    Saisie

    btnEnvoyer

    ExCours2Ctl.aspx page client

    ExCours2Ctl.aspx page serveur

    Page virtuelle gnre par le serveur

    ) Exemple de page formulaire : ExCours2.htm

    on page 18 CSharp_ASP63.doc

  • SUPPORT DE FORMATION ASP.NET

    ) Exemple de page rcuprant le rsultat renvoy par le formulaire : ExCours2Ctl.aspx

    ExCours2Ctl Ex cours n 2 - rponse Valeur rcupre avec la mthode POST :

    Exemple dutilisation dobjets ASP pour rcuprer la valeur saisie (Request) dans un formulaire et afficher dans la nouvelle page (Response)

    Mme page reue par le navigateur :

    ExCours2Ctl Ex cours n 2 - rponse Valeur rcupre avec la mthode POST : Test de saisie

    Si la valeur saisie dans le formulaire est Test de saisie

    auteur centre outil type doc millsime version page 19 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Compilation et excution de pages Web Forms ) Commandes de compilation et dexcution de pages Web Forms

    Mthode Dmarche Description

    Avec le dbogueur

    1- Dfinir comme page de dmarrage 2- menu Dboguer Dmarrer 3- Arrt en fermant le navigateur ou menu Dbogage - Arrter le dbogage

    Excute le navigateur par dfaut et charge la page de dmarrage spcifie. L'excution d'une page dans le dbogueur vous permet d'examiner le code ligne par ligne et d'utiliser des outils d'analyse et des informations d'excution supplmentaires. Si Visual Studio dtecte une modification des fichiers, il rgnre le projet avant le lancement.

    Sans le dbogueur

    1- Dfinir comme page de dmarrage 2- menu Dboguer - Excuter sans dbogage 3- Arrt en fermant le navigateur ou menu Dbogage - Arrter le dbogage

    Vous permet d'excuter votre code tel qu'il s'excuterait normalement en dehors du contexte des outils de dveloppement. Studio dtecte une modification des fichiers , il rgnre le projet avant le lancement.

    Affichage dans le navigateur

    1- Cliquer sur la page concern, puis Afficher dans le navigateur 2- Arrt en fermant le navigateur

    Compile le projet et ouvre une page Web slectionne partir de l'Explorateur de solutions. Le projet est compil et excut dans le navigateur par dfaut de Visual Studio.

    ) Fonctionnement avec Visual Studio

    Les pages Web Forms, les services Web XML et les composants sont compils dans des fichiers DLL. Une fois compils, ces fichiers n'ont pas besoin d'tre inscrits dans la base de registres sur le serveur Web sur lequel ils sont excuts. Bien quune page Web Forms soit compose de deux fichiers distincts, elle constitue une entit unique lors de l'excution de lapplication ...

    Les fichiers de classe code-behind de toutes les pages Web Forms d'un projet sont compils dans

    le fichier dll du projet.

    Le fichier de page .aspx est galement compil, mais diffremment. Lorsqu'un utilisateur recherche la page .aspx pour la premire fois, ASP.NET gnre automatiquement un fichier de classe .NET qui reprsente la page et le compile dans un deuxime fichier .dll. La classe gnre pour la page .aspx hrite de la classe code-behind qui a t compile dans le fichier .dll du projet.

    auteur centre outil type doc millsime version page 20 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Excution client (navigateur, priphrique client)

    Excution serveur (ASP) Conception

    System.Web.UI.Page

    TestWebForm.dll

    page html

    Compilation dynamique

    WebForm1.aspx

    dll temporaire

    classe WebForm1

    WebForm1 (WebForm1.aspx.cs)

    Compilation

    Gnration + envoi

    ) Lorsqu'un utilisateur demande l'URL de la page Web, les fichiers .dll s'excutent sur le serveur et

    produisent de faon dynamique la sortie HTML de votre page.

    Si la page contient des contrles serveur, comme c'est gnralement le cas, la classe de page drive tient lieu de conteneur pour les contrles. Des instances des contrles sont cres au moment de l'excution, de mme qu'un rendu pour le navigateur ou le priphrique client.

    Pour des raisons d'efficacit, les informations requises pour recrer la page peuvent tre mises en cache. Cette action est indpendante du cycle de vie de la page.

    ) Fonctionnement avec ASP.NET Framework

    Pour les pages Web Forms, ASP.NET Framework prend en charge un modle code-behind lgrement diffrent de celui utilis par Visual Studio. Dans le modle ASP.NET code-behind, les lments visuels sont situs dans un fichier .aspx, et le code, dans un fichier distinct contenant uniquement du code, comme dans Visual Studio. Cependant, il n'existe pas de projet et le code n'est pas prcompil. En revanche, le code du fichier .vb ou .cs est compil au moment de l'excution, lorsque l'utilisateur demande la page pour la premire fois. Le modle d'hritage fonctionne comme illustr ci-dessus, la diffrence prs que la classe Web Forms (classe WebForm1 dans le schma) ne fait pas partie d'un assembly de projet. En revanche, chaque page constitue un assembly distinct. Votre code s'excute de manire identique dans les deux modles. Dans le modle ASP.NET code-behind, il n'existe pas d'attribut de page Codebehind, car cet attribut est spcifique Visual Studio. Pour lier le fichier .aspx son code, la directive de page contient un attribut Src , qui fait rfrence au fichier contenant le code source pour le fichier.

    auteur centre outil type doc millsime version page 21 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    L'attribut Src n'est pas pris en charge dans Visual Studio. Si vous importez dans Visual Studio une page Web Forms contenant l'attribut Src, le concepteur lvera une erreur.

    Navigateur client Serveur http Serveur ASP.Net

    1re demande ? (page serveur non

    compile)

    oui

    Mise jour ncessaire ?

    Page serveur aspx ou service asmx

    Prcompilation

    oui non

    Compilation JIT + excution du code

    machine binaire

    Html + javascript

    Page en cache Renvoi du cache

    Mise en cache

    seuls langages compris par les navigateurs

    Co L

    Requte http

    Transfert requte

    Page client

    non

    Page client

    auteur centre outil type do Michel Astre Beaumont Word 2000 supp. for

    afpa c millsime version m 13/03/06 1 CShde en langage MSIpage 22 arp_ASP63.doc

  • SUPPORT DE FORMATION ASP.NET

    Exercices de dcouverte dASP.Net

    Exercice de prise en main ) Crer et enregistrer un projet Application Web ASP.Net avec Visual Studio.

    ) Visualiser les noms et la localisation des fichiers gnrs :

    Dans lexplorateur de solutions de Visual Studio. Dans lexplorateur Windows.

    ) Dans Visual Sudio, visualiser la premire page ASP gnre (en gnral, WebForm1)

    Fichier WebForm1.aspx : ajouter un titre HTML avec une balise

    - Onglet HTML - Onglet Design

    Fichier WebForm1.aspx.cs (commande Afficher le code . ) Lancer lexcution de lapplication Web.

    Visualiser le rsultat de laffichage de la page. Visualiser le code source reu par le client, et vrifier quil est diffrent du code serveur dorigine.

    Gnration de page dynamique ) Reprendre lexemple du cours ExCours1.aspx qui illustre les concepts suivants :

    Script serveur inline gnrant du HTML. Appel de code serveur situ dans le fichier code-behind.

    ) Afficher la page dans le navigateur. En cas derreur, il faut penser rgnrer la solution.

    Visualiser le rsultat de laffichage de la page.

    Visualiser le code source reu par le client, et et le comparer au code serveur dorigine.

    auteur centre outil type doc millsime version page 23 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Formulaire de saisie et rcupration des rsultats ) Reprendre lexemple du cours ExCours2.htm et ExCours2Ctl.aspx qui illustrent les concepts

    suivants :

    Formulaire HTML appelant une page ASP la validation. Page ASP rcuprant une saisie et laffichant.

    ) Afficher la page dans le navigateur.

    Effectuer une saisie dans la zone de texte et valider. Visualiser le rsultat de laffichage de la page de rponse.

    Visualiser le code source de cette page, et le comparer au code serveur dorigine.

    auteur centre outil type doc millsime version page 24 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Objets ASP.NET

    Dveloppement sans RAD

    Cette partie prsente des exemples dutilisation des objets ASP sans avoir recours aux fonctionnalits RAD de Visual Studio.

    ) Avantages de ce type de programmation :

    En phase dapprentissage, il facilite la comprhension du fonctionnement client/serveur dune application Web (et permet donc de transposer le savoir-faire dans un autre contexte tel que PHP).

    Code plus lger, ce qui est important pour le Web. Bien que les classes prsentes soient une nouveaut de ASP.NET, les objets sont utiliss de la mme

    faon qu'avec les versions prcdentes de ASP. ) Inconvnients de ce type de programmation :

    Plus de code crire. Code plus complexe li la prise en compte de certaines techniques : portabilit, gestion dtat,

    gestion des vnements, Classes et objets ASP.NET

    Lors de l'excution d'une application Web, ASP.NET conserve des informations sur l'application en cours, sur chaque session utilisateur, sur la demande HTTP en cours, sur la page Web Forms demande, etc. L'infrastructure de page ASP.NET contient une srie de classes permettant d'encapsuler ces informations de contexte. ASP.NET rend les instances de ces classes disponibles en tant qu'objets intrinsques auxquels vous pouvez accder partir de votre code. Le tableau suivant rpertorie ces objets intrinsques et les classes dont ils sont les instances.

    Nom de l'objet Description Classe ASP.NET (*) Response Permet d'accder au flux de sortie pour la page en cours. Vous pouvez utiliser

    cette classe pour insrer du texte dans la page, crire des cookies, etc. HttpResponse

    Request Permet d'accder la demande de page en cours, y compris aux en-ttes, aux cookies, au certificat client, la chane de requte, etc. Vous pouvez utiliser cette classe pour lire les donnes envoyes par le navigateur.

    HttpRequest

    Context Permet d'accder l'ensemble du contexte en cours (y compris l'objet de demande). Vous pouvez utiliser cette classe pour partager des informations entre les pages.

    HttpContext

    Server Prsente des mthodes utilitaires qui permettent de transfrer le contrle entre les pages, d'obtenir des informations sur l'erreur la plus rcente, de coder et de dcoder du texte HTML, etc.

    HttpServerUtility

    Application Permet d'accder des mthodes et des vnements d'application. Permet galement d'accder un cache d'application que vous pouvez utiliser pour stocker des informations.

    HttpApplicationState

    Session Fournit des informations sur la session utilisateur en cours. Permet galement d'accder un cache de session, que vous pouvez utiliser pour stocker des informations, et fournit les moyens de contrler la gestion de la session.

    HttpSessionState

    Trace Fournit un moyen d'obtenir les messages de diagnostic du suivi, crs par le systme ou par vous-mme, qui seront affichs dans la sortie de page HTTP.

    TraceContext

    (*) Les classes ASP.Net http sont utilise par linfrastructure .Net et non directement par lutilisateur.

    auteur centre outil type doc millsime version page 25 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Accs au flux de sortie vers une page : classe HttpResponse et objet Response

    Proprits publiques Description Buffer Obtient ou dfinit une valeur qui indique si la sortie doit tre place en mmoire tampon et

    envoye une fois que la rponse a t compltement traite. BufferOutput Obtient ou dfinit une valeur qui indique si la sortie doit tre place en mmoire tampon et

    envoye une fois que la page entire a t traite. Cache Obtient la stratgie de mise en cache d'une page Web (dlai d'expiration, confidentialit,

    clauses diverses). CacheControl Affecte l'en-tte HTTP Cache-Control la valeur Public ou Private. Charset Obtient ou dfinit le jeu de caractres HTTP du flux de sortie. ContentEncoding Obtient ou dfinit le jeu de caractres HTTP du flux de sortie. ContentType Obtient ou dfinit le type MIME HTTP du flux de sortie. Cookies Obtient la collection de cookies constituant la rponse. Expires Obtient ou dfinit, en minutes, le dlai d'expiration d'une page mise en cache sur un navigateur.

    Si l'utilisateur retourne la mme page avant qu'elle ait expir, la version mise en cache s'affiche. Expires est fourni pour des raisons de compatibilit avec les versions prcdentes de ASP.

    ExpiresAbsolute Obtient ou dfinit la date et l'heure absolues auxquelles les informations seront supprimes du cache. ExpiresAbsolute est fourni pour des raisons de compatibilit avec les versions prcdentes de ASP.

    Filter Obtient ou dfinit un objet wrapping filter utiliser pour modifier le corps d'une entit HTTP avant la transmission.

    IsClientConnected Obtient une valeur indiquant si le client est encore connect au serveur. Output Permet la sortie du texte dans le flux de rponse HTTP sortant. OutputStream Permet une sortie binaire vers le corps du contenu HTTP sortant. RedirectLocation Obtient ou dfinit la valeur de l'en-tte HTTP Location . Status Dfinit la ligne Status retourne vers le client. StatusCode Obtient ou dfinit le code d'tat HTTP du rsultat retourn au client. StatusDescription Obtient ou dfinit la chane d'tat HTTP du rsultat retourn au client. SuppressContent Obtient ou dfinit une valeur indiquant si le contenu HTTP doit tre envoy au client.

    auteur centre outil type doc millsime version page 26 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Mthodes publiques Description

    AddCacheItemDependencies Rend la validit d'un lment mis en cache dpendante d'autres lments du cache. AddCacheItemDependency Rend la validit d'un lment mis en cache dpendante d'un autre lment du cache. AddFileDependencies Ajoute un groupe de noms de fichiers la collection de noms de fichiers dont dpend la

    rponse en cours. AddFileDependency Ajoute un seul nom de fichier la collection de noms de fichiers dont dpend la rponse

    en cours. AddHeader Ajoute un en-tte HTTP au flux de sortie. AddHeader est fourni pour des raisons de

    compatibilit avec les versions prcdentes de ASP. AppendHeader Ajoute un en-tte HTTP au flux de sortie. AppendToLog Ajoute des informations personnalises au fichier journal IIS. ApplyAppPathModifier Ajoute un ID de session au chemin d'accs virtuel si la session utilise un tat de session

    sans cookie et retourne le chemin combin. Si ce n'est pas le cas, ApplyAppPathModifier retourne le chemin d'accs virtuel d'origine.

    BinaryWrite crit une chane de caractres binaires dans le flux HTTP en sortie. Clear Efface le contenu de sortie du flux de la mmoire tampon. ClearContent Efface le contenu de sortie du flux de la mmoire tampon. ClearHeaders Efface tous les en-ttes dans le flux de la mmoire tampon. Close Ferme la connexion du socket un client. End Envoie l'ensemble de la sortie actuellement dans la mmoire tampon au client, arrte

    l'excution de la page et dclenche l'vnement Application_EndRequest. Equals (hrit de Object) Surcharg. Dtermine si deux instances de Object sont gales. Flush Envoie au client l'ensemble de la sortie actuellement en mmoire tampon. GetHashCode (hrit de Object)

    Sert de fonction de hachage pour un type particulier, adapt une utilisation dans des algorithmes de hachage et des structures de donnes telles qu'une able de hachage.

    GetType (hrit de Object) Obtient le Type de l'instance en cours. Pics Ajoute un en-tte HTTP PICS-Label au flux de sortie. Redirect Surcharg. Redirige un client vers une nouvelle URL. RemoveOutputCacheItem (static)

    La mthode static supprime du cache tous les lments associs au chemin d'accs spcifi.

    ToString (hrit de Object) Retourne un String qui reprsente l' Object en cours. Write Surcharg. crit des informations dans le flux d'un contenu HTTP en sortie. WriteFile Surcharg. crit le fichier spcifi directement dans un flux de sortie de contenu HTTP.

    ) Redirection vers une autre page : Response.redirect()

    Response.Redirect("Main.aspx") ;

    Cette mthode envoie au navigateur une commande provoquant la demande dune nouvelle page. Response.Redirect prsente linconvnient deffectuer un aller-retour client-serveur supplmentaire.

    auteur centre outil type doc millsime version page 27 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    ) Envoi dinformation au navigateur client : Response.Write() et sa notation simplifie =

    Lutilisation de la mthode Write() permet lenvoi de code HTML par le serveur. Cependant, pour profiter pleinement de .Net pour lenvoi de texte, il faut utiliser les contrles serveur (par exemple, Label ) prsents au chapitre suivant.

    Fichier HTML (ExCours3.aspx)

    Utilisation dune variable serveur (C# dfinie dans le code-behind) dans un script client (JavaScript).

    ExCours3 var nOrigine=0; function Charge() { if (==0) nOrigine++; frm1.txtValeur.value = nOrigine } Gnration de html Affichage avec Response.Write =

    Affichage inline 1 Il faut un point-virgule en fin de ligne !

    Affichage avec le signe gal =

    Syntaxe quivalent au Response.Write() 1 Il ne faut pas de point-virgule en fin de ligne !

    Affichage dune variable serveur (C# dfinie dans le code-behind) dans une balise input de formulaire HTML

    Fichier code-behind (ExCours3.aspx.cs) using namespace TPWebAspNet.TestCoursAsp { public class ExCours3 : System.Web.UI.Page { protected string nom = "essai"; protected int origine = 0; private void Page_Load(object sender, System.EventArgs e) { // Placer ici le code utilisateur pour initialiser la page } #region #endregion } }

    auteur centre outil type doc millsime version page 28 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Page affiche dans le navigateur

    Code source de la page reue par le navigateur ExCours3 var nOrigine=0; function Charge() { if (0==0) nOrigine++; frm1.txtValeur.value = nOrigine } Gnration de html Affichage avec Response.Write = test1 Affichage avec le signe gal = test2

    La balise a t modifie

    Champ cach

    auteur centre outil type doc millsime version page 29 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Accs au flux dentre provenant dune page : classe HttpRequest et objet Request

    Proprits publiques Description AcceptTypes Obtient un tableau de chanes contenant les types MIME pris en charge par le client. ApplicationPath Obtient le chemin d'accs racine virtuel de l'application ASP.NET sur le serveur. Browser Obtient des informations sur les fonctionnalits de navigation du client demandeur. ClientCertificate Obtient le certificat de scurit du client pour la demande en cours. ContentEncoding Obtient ou dfinit le jeu de caractres du corps de l'entit. ContentLength Spcifie la longueur en octets du contenu envoy par le client. ContentType Obtient ou dfinit le type de contenu MIME de la demande entrante. Cookies Obtient une collection de cookies envoye par le client. CurrentExecutionFilePath Obtient le chemin d'accs virtuel de la demande en cours. FilePath Obtient le chemin d'accs virtuel de la demande en cours. Files Obtient la collection des fichiers tlchargs par le client (format Multipart MIME). Filter Obtient ou dfinit le filtre utiliser lors de la lecture du flux d'entre en cours. Form Obtient une collection de variables de formulaire : mthode POST Headers Obtient une collection d'en-ttes HTTP. HttpMethod Obtient la mthode de transfert de donnes HTTP (par exemple : GET, POST ou HEAD)

    utilise par le client. InputStream Obtient le contenu du corps de l'entit HTTP entrante. IsAuthenticated Obtient une valeur indiquant si l'utilisateur a t authentifi. IsSecureConnection Obtient une valeur indiquant si la connexion HTTP est scurise (c'est--dire de type

    HTTPS). Item Obtient l'objet spcifi dans les collections Cookies, Form, QueryString ou ServerVariables.

    En C#, cette proprit est l'indexeur pour la classe HttpRequest. Params Obtient une collection complexe d'lments QueryString, Form, ServerVariables et Cookies. Path Obtient le chemin d'accs virtuel de la demande en cours. PathInfo Obtient des informations supplmentaires sur le chemin d'accs d'une ressource avec

    extension URL. PhysicalApplicationPath Obtient le chemin d'accs physique, dans le systme de fichiers, du rpertoire racine de

    l'application serveur en cours d'excution. PhysicalPath Obtient le chemin d'accs du systme de fichiers physiques correspondant l'URL demande. QueryString Obtient la collection des variables des chanes de requte http : mthode GET RawUrl Obtient l'URL brute de la demande en cours. RequestType Obtient ou dfinit la mthode de transfert de donnes HTTP (GET ou POST) utilise par le

    client. ServerVariables Obtient une collection des variables de serveur Web. TotalBytes Obtient le nombre d'octets dans le flux d'entre en cours. Url Obtient des informations sur l'URL de la demande en cours. UrlReferrer Obtient des informations sur l'URL de la prcdente demande du client qui tait lie l'URL

    actuelle. UserAgent Obtient la chane de l'agent utilisateur brute du navigateur client. UserHostAddress Obtient l'adresse d'hte IP du client distant. UserHostName Obtient le nom DNS du client distant. UserLanguages Obtient un tableau de chanes tri contenant les prfrences de langue du client.

    auteur centre outil type doc millsime version page 30 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Mthodes publiques Description BinaryRead Excute une lecture binaire d'un nombre spcifi d'octets du flux d'entre en cours. Equals (hrit de Object)

    Surcharg. Dtermine si deux instances de Object sont gales.

    GetHashCode (hrit de Object)

    Sert de fonction de hachage pour un type particulier, adapt une utilisation dans des algorithmes de hachage et des structures de donnes telles qu'une table de hachage.

    GetType (hrit de Object)

    Obtient le Type de l'instance en cours.

    MapImageCoordinates Fait correspondre un paramtre de formulaire avec champ image entrant aux valeurs de coordonnes x/y appropries.

    MapPath Surcharg. Fait correspondre le chemin d'accs virtuel de l'URL demande un chemin physique sur le serveur pour la demande en cours.

    SaveAs Enregistre une demande HTTP sur un disque. ToString (hrit de Object)

    Retourne un String qui reprsente l' Object en cours.

    ValidateInput Valide les donnes soumises par un navigateur client et lve une exception en prsence de donnes potentiellement dangereuses.

    ) Remarques

    Le contenu des contrles HTML correspond lattribut value des balises de formulaire.

    Ce contenu est rcupr avec Request.Params["NomDuContrle"]

    1 Cest lattribut name qui identifie le contrle (et non id ). Un contrle disabled nest pas rcuprable (undefined).

    Pour une liste, si la value nest pas prcise, cest le texte situ entre les balises qui est transmis.

    auteur centre outil type doc millsime version page 31 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    ) Exemple dutilisation dun formulaire avec de nombreux contrles HTML standards

    Acteur ExCours4.htm page client

    Saisie

    btnOk1

    btnOk2

    {ou-exclusif}

    ExCours4Ctl.aspx page serveur

    ExCours4Ctl.aspx page client

    Exemple de formulaire HTML (ExCours4.htm)

    auteur centre outil type doc mills Michel Astre Beaumont Word 2000 supp. form 13/03

    afpa ime version page 32 /06 1 CSharp_ASP63.doc

  • SUPPORT DE FORMATION ASP.NET

    Test formulaire html Nom: Mot de passe: Valeur disabled: Valeur readonly: Zone cache: Boutons radios < legend> legend>Exemple 1 legend>Exemple 2

  • SUPPORT DE FORMATION ASP.NET

    Exemple de page ASP rcuprant les saisies (ExCours4Ctl.aspx) ExCours4Ctl Rcupration des saisies Nom: Mot de passe: Valeur disabled: Valeur readonly: Zone cache: Boutons radios Autres boutons radios Cases cocher TextBox multi-lignes Liste droulante Liste droule Bouton de commande

    auteur centre outil type doc millsime version page 34 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Accs au contexte en cours dune demande http : classe HttpContext et objet Context

    Proprits publiques Description AllErrors Obtient un tableau d'erreurs accumules pendant le traitement d'une demande HTTP. Application Obtient l'objet HttpApplicationState pour la demande HTTP en cours. ApplicationInstance Obtient ou dfinit l'objet HttpApplication pour la demande HTTP en cours. Cache Obtient l'objet Cache pour la demande HTTP en cours. Current (static) Obtient l'objet HttpContext pour la demande HTTP en cours. Error Obtient la premire erreur (ventuelle) accumule pendant le traitement de la demande HTTP. Handler Obtient ou dfinit l'objet IHttpHandler pour la demande HTTP en cours. IsCustomErrorEnabled Obtient une valeur indiquant si les erreurs personnalises sont autorises pour la demande

    HTTP en cours. IsDebuggingEnabled Obtient une valeur indiquant si la demande HTTP en cours est en mode dbogage. Items Obtient une collection valeur de cl qui peut tre utilise pour organiser et partager les

    donnes entre IHttpModule et IHttpHandler pendant une demande HTTP. Request Obtient l'objet HttpRequest pour la demande HTTP en cours. Response Obtient l'objet HttpResponse pour la rponse HTTP en cours. Server Obtient l'objet HttpServerUtility qui fournit les mthodes utilises dans le traitement de

    demandes Web. Session Obtient l'instance HttpSessionState pour la demande HTTP en cours. SkipAuthorization Obtient ou dfinit une valeur qui spcifie si le module URLAuthorization ignore le contrle

    d'autorisation pour la demande en cours. Timestamp Obtient l'horodatage initial de la demande HTTP en cours. Trace Obtient l'objet TraceContext pour la rponse HTTP en cours. User Obtient ou dfinit les informations de scurit pour la demande HTTP en cours.

    Mthodes publiques Description

    AddError Ajoute une exception la collection d'exceptions pour la demande HTTP en cours. ClearError Efface toutes les erreurs pour la demande HTTP en cours. Equals (hrit de Object) Surcharg. Dtermine si deux instances de Object sont gales. GetAppConfig (static) Retourne les informations de configuration demandes pour l'application en cours. GetConfig Retourne les informations de configuration demandes pour la demande HTTP en cours. GetHashCode (hrit de Object)

    Sert de fonction de hachage pour un type particulier, adapt une utilisation dans des algorithmes de hachage et des structures de donnes telles qu'une table de hachage.

    GetType (hrit de Object)

    Obtient le Type de l'instance en cours.

    RewritePath Surcharg. Assigne un chemin d'accs de rcriture interne. RewritePath permet que l'URL demande soit diffrente du chemin d'accs interne la ressource. RewritePath est utilis dans un tat de session sans cookie.

    ToString (hrit de Object)

    Retourne un String qui reprsente l' Object en cours.

    ) Obtention dun chemin d'accs physique (correspondant un chemin d'accs virtuel spcifi sur le

    serveur Web)

    Exemple : Affiche : c:\inetpub\wwwroot\ASPNET

    Equivalent :

    auteur centre outil type doc millsime version page 35 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    ) Rcupration de lobjet Page appelant : Context.Handler

    public class ExCours2ACtl : System.Web.UI.Page { public ExCours2A page; private void Page_Load(object sender, System.EventArgs e) { if (!IsPostBack) { page = (ExCours2A) Context.Handler; lblNom.Text = page.txtNom.Text; // si la TextBox txtNom est public } } }

    auteur centre outil type doc millsime version page 36 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Traitement serveur : classe HTTPServerUtility et objet Server

    Proprits publiques Description MachineName Obtient le nom d'ordinateur du serveur. ScriptTimeout Obtient et dfinit le dlai d'attente de la demande en secondes.

    Mthodes publiques Description

    ClearError Efface l'exception prcdente. CreateObject Surcharg. Cre une instance serveur d'un objet COM (ActiveX) CreateObjectFromClsid Cre une instance serveur d'un objet COM identifie par l'identificateur de classe (CLSID) de

    l'objet. Equals (hrit de Object) Surcharg. Dtermine si deux instances de Object sont gales. Execute Surcharg. Excute la demande en cours l'aide d'une autre page. GetHashCode (hrit de Object)

    Sert de fonction de hachage pour un type particulier, adapt une utilisation dans des algorithmes de hachage et des structures de donnes telles qu'une table de hachage.

    GetLastError Retourne l'exception prcdente. GetType (hrit de Object)

    Obtient le Type de l'instance en cours.

    HtmlDecode Surcharg. Dcode une chane qui a t code pour liminer les caractres HTML non valides.

    HtmlEncode Surcharg. Code une chane en vue de son affichage dans un navigateur. MapPath Retourne le chemin d'accs du fichier physique qui correspond au chemin d'accs virtuel

    spcifi sur le serveur Web. ToString (hrit de Object)

    Retourne un String qui reprsente l' Object en cours.

    Transfer Surcharg. Termine l'excution de la page en cours et commence l'excution d'une nouvelle page pour la demande en cours.

    UrlDecode Surcharg. Dcode une chane code en vue de sa transmission sur HTTP et envoye au serveur dans une URL.

    UrlEncode Surcharg. Code une chane en vue de sa transmission fiable sur HTTP via l'URL partir du serveur Web vers un client.

    UrlPathEncode Code la partie chemin d'accs d'une chane URL et retourne la chane code.

    ) Obtention dun chemin d'accs physique (correspondant un chemin d'accs virtuel spcifi sur le

    serveur Web) : sCheminPhysique = Server.MapPath(sCheminVirtuel) Exemple : Affiche : c:\inetpub\wwwroot\ASPNET Pour lire MapPath dans un module code-behind, utilisez HttpContext.Current.Server.MapPath.

    ) Excution dune autre page : Server.Transfer() public class ExCours2B : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { if (IsPostBack) Server.Transfer("ExCours2BCtl.aspx"); } } Cette mthode transfre le contexte une autre page. Ceci prsente lavantage de partager simplement entre les pages les informations de contexte. Par contre, le navigateur ignore ce tranfert et, par consquent, son historique nest pas jour.

    auteur centre outil type doc millsime version page 37 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Accs ltat de lapplication : classe HttpApplicationState et objet Application

    Une application ASP.NET est lensemble de tous les fichiers, pages, gestionnaires, modules et code situs dans la porte d'un rpertoire virtuel et de ses sous-rpertoires sur un mme serveur Web.

    Une instance unique d'une classe HttpApplicationState est cre la premire fois qu'un client demande une ressource URL partir du rpertoire virtuel d'une application ASP.NET particulire. Une instance unique distincte est cre pour chaque application ASP.NET sur un serveur Web. Une rfrence chaque instance est alors expose via l'objet intrinsque Application.

    Proprits publiques Description AllKeys Obtient les touches d'accs rapide de la collection HttpApplicationState. Contents Obtient une rfrence l'objet HttpApplicationState. Count Substitu. Obtient le nombre d'objets dans la collection HttpApplicationState. Item Surcharg. Obtient l'accs un objet de la collection HttpApplicationState. Cette proprit

    est surcharge pour permettre l'accs un objet par son nom ou son index numrique. En C#, cette proprit est l'indexeur pour la classe HttpApplicationState.

    Keys (hrit de NameObjectCollectionBase)

    Obtient une instance NameObjectCollectionBase.KeysCollection qui contient toutes les cls dans l'instance NameObjectCollectionBase.

    StaticObjects Extrait tous les objets dclars par une balise o la porte a comme valeur Application dans l'application ASP.NET.

    Mthodes publiques Description

    Add Ajoute un nouvel objet la collection HttpApplicationState. Clear Supprime tous les objets d'une collection HttpApplicationState. Equals (hrit de Object) Surcharg. Dtermine si deux instances de Object sont gales. Get Surcharg. Obtient un objet HttpApplicationState par son nom ou son index. GetEnumerator (hrit de NameObjectCollectionBase)

    Retourne un numrateur qui peut itrer sur le NameObjectCollectionBase.

    GetHashCode (hrit de Object)

    Sert de fonction de hachage pour un type particulier, adapt une utilisation dans des algorithmes de hachage et des structures de donnes telles qu'une table de hachage.

    GetKey Obtient un nom d'objet HttpApplicationState par son index. GetObjectData (hrit de NameObjectCollectionBase)

    Implmente l'interface ISerializable et retourne les donnes requises pour srialiser l'instance NameObjectCollectionBase.

    GetType (hrit de Object) Obtient le Type de l'instance en cours. Lock Verrouille l'accs une variable HttpApplicationState pour faciliter la synchronisation

    d'accs. OnDeserialization (hrit de NameObjectCollectionBase)

    Implmente l'interface ISerializable et dclenche l'vnement de dsrialisation une fois que la dsrialisation est termine.

    Remove Supprime l'objet nomm d'une collection HttpApplicationState. RemoveAll Supprime tous les objets d'une collection HttpApplicationState. RemoveAt Supprime un objet d'une collection HttpApplicationState par index. Set Met jour la valeur d'un objet dans une collection HttpApplicationState. ToString (hrit de Object) Retourne un String qui reprsente l' Object en cours. UnLock Dverrouille l'accs une variable HttpApplicationState pour faciliter la synchronisation

    d'accs.

    auteur centre outil type doc millsime version page 38 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Accs ltat de la session : classe HttpSessionState et objet Session

    Proprits publiques Description CodePage Obtient ou dfinit l'identificateur de page de codes de la session en cours. Contents Obtient une rfrence l'objet tat de session en cours. Count Obtient le nombre d'lments dans la collection. IsCookieless Obtient une valeur indiquant si l'ID de session est incorpor dans l'URL ou stock dans un cookie

    HTTP. IsNewSession Obtient une valeur indiquant si la session a t cre avec la demande en cours. IsReadOnly Obtient une valeur indiquant si la session est en lecture seule. IsSynchronized Obtient une valeur indiquant si l'accs la collection de valeurs d'tat de session est synchronis

    (thread-safe). Item Surcharg. Obtient ou dfinit des valeurs de session individuelles.

    En C#, cette proprit est l'indexeur pour la classe HttpSessionState. Keys Obtient une collection des cls de toutes les valeurs stockes dans la session. LCID Obtient ou dfinit l'identificateur de paramtres rgionaux (LCID) de la session en cours. Mode Obtient le mode d'tat de session en cours. SessionID Obtient l'ID de session unique servant identifier la session. StaticObjects Obtient une collection d'objets dclare par des balises dans le fichier d'application ASP.NET global.asax. SyncRoot Obtient un objet qui peut tre utilis pour synchroniser l'accs la collection de valeurs relatives

    aux tats de session. Timeout Obtient et dfinit le dlai (en minutes) autoris entre demandes pour que le fournisseur de l'tat

    de session termine la session.

    Mthodes publiques Description

    Abandon Annule la session en cours. Add Ajoute un nouvel lment l'tat de session. Clear Supprime toutes les valeurs de l'tat de session. CopyTo Copie la collection de valeurs d'tat de session dans un tableau unidimensionnel, en commenant

    l'index spcifi du tableau. Equals (hrit de Object)

    Surcharg. Dtermine si deux instances de Object sont gales.

    GetEnumerator Obtient un numrateur de toutes les valeurs d'tat de session de la session en cours. GetHashCode (hrit de Object)

    Sert de fonction de hachage pour un type particulier, adapt une utilisation dans des algorithmes de hachage et des structures de donnes telles qu'une table de hachage.

    GetType (hrit de Object)

    Obtient le Type de l'instance en cours.

    Remove Supprime un lment de la collection d'tats de session. RemoveAll Supprime toutes les valeurs de l'tat de session. RemoveAt Supprime de la collection d'tats de session un lment situ un index spcifi. ToString (hrit de Object)

    Retourne un String qui reprsente l' Object en cours.

    auteur centre outil type doc millsime version page 39 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Gestion des messages de diagnostics : classe TraceContext et objet Trace

    Proprits publiques Description IsEnabled Indique si le suivi est activ pour la demande Web en cours. TraceMode Obtient ou dfinit l'ordre tri dans lequel les messages de suivi doivent tre gnrs sur un

    navigateur demandeur.

    Mthodes publiques Description Equals (hrit de Object) Surcharg. Dtermine si deux instances de Object sont gales. GetHashCode (hrit de Object)

    Sert de fonction de hachage pour un type particulier, adapt une utilisation dans des algorithmes de hachage et des structures de donnes telles qu'une table de hachage.

    GetType (hrit de Object)

    Obtient le Type de l'instance en cours.

    ToString (hrit de Object)

    Retourne un String qui reprsente l' Object en cours.

    Warn Surcharg. crit des informations de suivi dans le journal de suivi. Contrairement Write, tous les avertissements s'affichent dans le journal en texte rouge.

    Write Surcharg. crit des informations de suivi dans le journal de suivi.

    auteur centre outil type doc millsime version page 40 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Exercices sur les objets ASP

    Exercice daffichage : Response.Write() ) Reprendre lexemple du cours ExCours3.aspx . ) Afficher la page dans le navigateur.

    Visualiser le rsultat des affichages.

    Visualiser le code source de cette page, et le comparer au code serveur dorigine. Exercice de formulaire : Request.Params ) Reprendre lexemple du cours ExCours4.htm et ExCours4Ctl.aspx ) Afficher la page html dans le navigateur.

    Effectuer une saisie dans les diffrents contrles du formulaire, puis valider. Visualiser le rsultat de laffichage de la page de rponse.

    Visualiser le code source de cette page, et le comparer au code serveur dorigine.

    auteur centre outil type doc millsime version page 41 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Contrles graphiques serveurs

    Dveloppement RAD

    Le RAD, offert par les contrles serveur, permet un dveloppement plus rapise ainsi que la gnration de code en fonction du client.

    Contenu dune page Web Forms

    Contrle HTML standard Contrle serveur HTML Contrles serveur Web Barre doutils HTML HTML Web Forms Exemple de code crit dans la page

    Exemple de code reu par le navigateur

    identique

    Exemple de classe de contrle serveur

    aucune HtmlInputText TextBox

    Degr de complexit + ++ +++ Avantages Offre une reprsentation

    ct serveur de balises html

    Offre une reprsentation ct serveur de contrles complexes (Grid,

    calendrier, ) qui ne correspondent pas forcment une balise html lmentaire

    ) Elments programmables uniquement avec du script client (et non contrls partir de code

    serveur).

    Texte HTML statique Images ou autre ressource prise en charge par un type Mime. Contrles HTML standard (par exemple, un bouton d'envoi HTML)

    ) Elments excuts dabord sur le serveur.

    Lorsque la page s'excute, ces contrles sont instancis dans le code serveur dans le cadre de la classe de page. Lorsque les utilisateurs se servent des contrles (par exemple, lorsqu'ils cliquent sur un contrle de bouton dans une page Web Forms), le code associ au contrle s'excute sur le serveur une fois la page publie. Dans le code serveur, vous pouvez crire des gestionnaires d'vnements pour les contrles serveur, dfinir leurs proprits, etc.

    Contrles serveur HTML : voir ci-dessous Contrles serveur Web : voir ci-dessous Contrles serveur de validation : contrles incorporant une logique qui vous permet de tester les

    entres d'utilisateur (saisie obligatoire, plage de valeurs,...) et d'afficher un message personnalis lorsque la validation a chou. Le contrle de validation doit tre attach un contrle serveur d'entre.

    Contrles utilisateur : contrles personnaliss que vous pouvez crer en tant que pages Web Forms.

    auteur centre outil type doc millsime version page 42 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Comparaison des contrles graphiques

    Contrle Visual Basic 6.0

    Contrle Windows Forms Contrle HTML standard Contrle serveur HTML Contrle serveur ASP.NET

    Animation Les images situes sur les contrles prennent en charge les images GIF animes

    N/A N/A N/A

    CheckBox ComboBox HtmlInputCheckBox CheckBox, CheckBoxList ComboBox ComboBox N/A N/A DropDownList CommandButton Button

    HtmlInputButton, HtmlButton

    Button, LinkButton

    CommandButton Button HtmlInputImage ImageButton CommonDialog FileDialog, PrintDialog,

    ColorDialog, FontDialog N/A N/A N/A

    DataGrid DataGrid HtmlTable DataGrid, Repeater

    DateTimePicker DateTimePicker N/A N/A N/A FileSystemObject Classes dans System.IO N/A N/A N/A Form Form

    HtmlForm N/A

    Frame GroupBox, Panel

    N/A Panel

    HScrollBar, VScrollBar

    HscrollBar, VscrollBar N/A N/A N/A

    ImageCombo ComboBox N/A N/A N/A ImageList ImageList N/A N/A N/A Internet Transfer Classes dans System.Net N/A HtmlInputFile N/A Label Label

    N/A Label

    ListBox ListBox

    HtmlSelect ListBox, DataList

    ListView ListView N/A N/A N/A Menu MainMenu, ContextMenu N/A N/A N/A MonthView MonthCalendar N/A N/A Calendar N/A N/A HtmlAnchor HyperLink N/A N/A HtmlInputFile OptionButton RadioButton HtmlInputRadioButton RadioButton,

    RadioButtonList PictureBox PictureBox HtmlImage Image ProgressBar ProgressBar N/A N/A N/A RichTextBox RichTextBox N/A N/A N/A Slider TrackBar N/A N/A N/A SSTab, TabStrip TabControl N/A N/A N/A StatusBar StatusBar N/A N/A N/A TextBox TextBox

    HtmlInputText HtmlInputHidden HtmlTextArea

    TextBox

    Timer Timer N/A N/A N/A Toolbar Toolbar N/A N/A N/A TreeView TreeView N/A N/A N/A UpDown NumericUpDown,

    DomainUpDown N/A N/A N/A

    WinSock Classes dans System.Net N/A N/A N/A

    auteur centre outil type doc millsime version page 43 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Contrles serveur ) Hirarchie des classes de contrles serveur

    Object Control

    HtmlControl HtmlContainerControl HtmlAnchor HtmlButton HtmlForm HtmlGenericControl HtmlSelect HtmlTable HtmlTableCell HtmlTableRow HtmlTextArea HtmlImage HtmlInputControl HtmlInputButton HtmlInputCheckBox HtmlInputFile HtmlInputHidden HtmlInputImage HtmlInputRadioButton HtmlInputText

    WebControl AdRotator BaseDataList Button Calendar CheckBox RadioButton DataListItem HyperLink Image Label LinkButton ListControl CheckBoxList DropDownList ListBox RadioButtonList Panel Table TableCell TableRow TextBox ValidationSummary TemplateControl Page UserControl

    auteur centre outil type doc millsime version page 44 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    ) Membres de la classe Control

    Principales proprits

    Description

    ClientID Obtient l'identificateur de contrle serveur gnr par ASP.NET. Controls Obtient un objet ControlCollection qui reprsente les contrles enfants d'un contrle serveur spcifi

    dans la hirarchie de l'interface utilisateur. EnableViewState Obtient ou dfinit une valeur indiquant si le contrle serveur rend persistant son tat d'affichage,

    ainsi que celui de tous les contrles enfants qu'il contient, sur le client l'origine de la demande. = true si le contrle serveur conserve son tat d'affichage (par dfaut)

    ID Obtient ou dfinit l'ID programmatique assign au contrle serveur. Page Obtient une rfrence l'instance de Page qui contient le contrle serveur. Parent Obtient une rfrence au contrle parent du contrle serveur dans la hirarchie des contrles de la

    page. Visible Obtient ou dfinit une valeur qui indique si un contrle serveur est rendu sous la forme d'une interface

    utilisateur sur la page. Principales mthodes Description DataBind Lie une source de donnes au contrle serveur appel et tous ses contrles enfants. Dispose Permet un contrle serveur d'effectuer le nettoyage final avant qu'il soit libr de la mmoire. FindControl Surcharg. Recherche le contrle serveur spcifi dans le conteneur de dnomination en cours. HasControls Dtermine si le contrle serveur contient des contrles enfants.

    Principaux vnements

    Description

    DataBinding Se produit lorsque le contrle serveur se lie une source de donnes. Disposed Se produit lorsqu'un contrle serveur est libr de la mmoire, ce qui constitue la dernire tape du

    cycle de vie d'un contrle serveur en cas de demande d'une page ASP.NET. Init Se produit lorsque le contrle serveur est initialis, ce qui constitue la premire tape de son cycle de

    vie. Load Se produit lorsque le contrle serveur est charg dans l'objet Page. PreRender Se produit lorsque le contrle serveur est sur le point de se gnrer sur son objet Page contenant. Unload Se produit lorsque le contrle serveur est dcharg de la mmoire.

    ) Membres de la classe WebControl

    Principales proprits

    Description

    Enabled Obtient ou dfinit une valeur indiquant si le contrle serveur Web est activ. TabIndex Obtient ou dfinit l'index de tabulation du contrle serveur Web. ToolTip Obtient ou dfinit le texte affich quand le pointeur de la souris est positionn sur le contrle.

    ) Membres de la classe Button

    Principales proprits

    Description

    CausesValidation Obtient ou dfinit une valeur indiquant si la validation est effectue lorsqu'un clic a t effectu CommandArgument Obtient ou dfinit un paramtre pass l'vnement Command avec la proprit CommandName. CommandName Obtient ou dfinit le nom de la commande qui est pass l'vnement Command. Text Obtient ou dfinit le texte de la lgende affich dans le contrle Button.

    Principaux vnements

    Description

    Click Se produit lorsqu'un clic est effectu sur le contrle Button. Command Se produit lorsqu'un clic est effectu sur le contrle Button.

    auteur centre outil type doc millsime version page 45 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    ) Autres membres des classes de contrles

    Principales proprits

    TextBox CheckBox ListControl

    Description

    AutoPostBack X X X 1 Si les boutons de commande renvoient automatiquement au serveur, ce nest pas le cas dautres contrles. La proprit AutoPostBack doit tre gale true pour publier automatiquement l'tat du contrle sur le serveur aprs un vnement (false par dfaut).

    Checked X Obtient ou dfinit une valeur indiquant si le contrle CheckBox est activ.

    DataMember X Obtient ou dfinit un tableau spcifique dans DataSource lier au contrle.

    DataSource X Obtient ou dfinit la source de donnes remplissant les lments du contrle de liste.

    DataTextField X Obtient ou dfinit le champ de la source de donnes fournissant le texte des lments de la liste.

    DataTextFormatString X Obtient ou dfinit la chane de mise en forme permettant

    de contrler l'affichage des donnes lies au contrle de liste.

    DataValueField X Obtient ou dfinit le champ de la source de donnes fournissant la valeur de chaque lment de la liste.

    Items X Obtient la collection ListItemCollection (voir ci-dessous) des lments figurant dans le contrle de liste. MaxLength X Obtient ou dfinit le nombre maximal de caractres

    autoriss dans la zone de texte. ReadOnly X X Obtient ou dfinit une valeur qui indique si le contenu du

    contrle TextBox peut tre modifi. SelectedIndex X Obtient ou dfinit l'index ordinal le moins lev des

    lments slectionns dans la liste. SelectedItem X Obtient l'lment slectionn avec l'index le moins lev

    dans le contrle de liste. SelectedValue X Obtient la valeur de l'lment slectionn dans le contrle

    de liste ou slectionne, dans ce contrle, l'lment qui contient la valeur spcifie.

    Text X (contenu de la TextBox)

    X (tiquette associe)

    Texte

    TextMode X Obtient ou dfinit le mode de comportement (monoligne, multiligne ou mot de passe) du contrle TextBox.

    Wrap X Obtient ou dfinit une valeur indiquant si le texte est envelopp dans une zone de texte multiligne. true si le texte est envelopp dans une zone de texte multiligne ; sinon, false. La valeur par dfaut est true.

    auteur centre outil type doc millsime version page 46 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

    Principaux vnements TextBox CheckBox ListControl

    Description

    CheckedChanged X Se produit en cas de modification de la valeur de la proprit Checked d'une publication une autre sur le serveur.

    TextChanged X Se produit lorsque le contenu de la zone de texte change entre des publications sur le serveur.

    SelectedIndexChanged X Se produit lorsque la slection du contrle de liste change

  • SUPPORT DE FORMATION ASP.NET

    entre des publications sur le serveur.

    auteur centre outil type doc millsime version page 47 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    ) Membres de ListItemCollection : obtenue par la proprit ListBox.Items

    Proprits Description Capacity Obtient ou dfinit le nombre maximal d'lments que ListItemCollection peut stocker. Count Obtient le nombre d'objets ListItem dans la collection. IsReadOnly Obtient une valeur indiquant si ListItemCollection est en lecture seule. IsSynchronized Obtient une valeur indiquant si l'accs ListItemCollection est synchronis (thread-safe).

    Item Obtient ListItem (voir ci-dessus) l'index spcifi dans la collection. En C#, cette proprit est l'indexeur pour la classe ListItemCollection. SyncRoot Obtient l'objet pouvant permettre de synchroniser l'accs ListItemCollection.

    Principales mthodes Description Add Surcharg. Ajoute ListItem la fin de la collection. AddRange Ajoute les lments d'un tableau d'objets ListItem la collection. Clear Supprime tous les objets ListItem de la collection. Contains Dtermine si la collection contient l'lment spcifi. FindByText Recherche dans la collection un ListItem dont la proprit Text contient le texte spcifi. FindByValue Recherche dans la collection un ListItem dont la proprit Value contient la valeur spcifie.

    GetEnumerator Retourne un objet System.Collections.IEnumerator implment qui contient tous les objets ListItem dans ListItemCollection. IndexOf Dtermine la valeur d'index reprsentant la position du ListItem spcifi dans la collection. Insert Surcharg. Insre ListItem dans la collection l'index spcifi. Remove Surcharg. Enlve ListItem de la collection. RemoveAt Supprime ListItem de la collection l'index spcifi.

    ) Membres de ListItem : obtenue par la proprit ListItemCollection.Item

    Principales proprits

    Description

    Selected Obtient ou dfinit une valeur indiquant si l'lment est slectionn. Text Obtient ou dfinit le texte afficher dans un contrle de liste pour l'lment reprsent par ListItem. Value Obtient ou dfinit la valeur associe ListItem.

    auteur centre outil type doc millsime version page 48 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    ) Contrles serveur HTML : lments HTML marqus comme programmables dans le code serveur.

    En rgle gnrale, vous convertissez les lments HTML en contrles serveur HTML uniquement si vous avez des raisons de vouloir les programmer partir du code serveur. Dmarche en mode design (voir exemplesuivant)

    drag & drop dun contrle HTML, puis conversion en contrle serveur avec le menu contextuel. Un symbole s'affiche dans le coin suprieur gauche du contrle pour indiquer qu'il s'agit d'un contrle serveur. La balise html du contrle est complt avec l'attribut runat="server" . Si vous souhaitez faire rfrence au contrle comme membre de votre code, vous devez galement assigner un attribut id au contrle.

    Ces contrles offrent plus de fonctionnalits que les contrles standards HTML : - Un modle objet troitement mapp sur celui des lments HTML correspondants. Par exemple,

    les attributs HTML sont exposs dans les contrles serveur HTML comme des proprits. - Un ensemble d'vnements pour lesquels vous pouvez crire des gestionnaires d'vnements de la

    mme faon que vous le feriez dans un formulaire client, except que l'vnement est gr dans le code serveur. La possibilit de grer des vnements dans le script client.

    - Gestion automatique de l'tat d'un contrle. Si le formulaire fait un aller-retour vers le serveur,

    les valeurs que l'utilisateur a entres dans les contrles serveur HTML sont gres automatiquement lorsque la page est renvoye au navigateur.

    - L'interaction avec les contrles de validation de faon ce que vous puissiez facilement vrifier

    qu'un utilisateur a entr les informations appropries dans un contrle. - La liaison de donnes avec une ou plusieurs proprits du contrle. - La prise en charge des styles HTML 4.0 si la page Web Forms est affiche dans un navigateur

    qui prend en charge les feuilles de styles en cascade. - La transmission directe des attributs personnaliss. Vous pouvez ajouter tous les attributs dont

    vous avez besoin dans un contrle serveur HTML. L'infrastructure de page les lira et en donnera un rendu sans aucun changement dans le fonctionnement. Ceci vous permet d'ajouter des attributs limits un navigateur spcifique vos contrles.

    auteur centre outil type doc millsime version page 49 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    ) Contrles serveur Web (Web Control) : contrles spcifiques aux Web Forms.

    Ces contrles sont abstraits. Lorsque la page Web Forms s'excute, le contrle html rel gnr dpend du type du navigateur et des paramtres que vous avez dfinis pour le contrle. Par exemple, un contrle TextBox peut tre rendu sous forme de balise ou en fonction de ses proprits. Dmarche en mode design

    drag & drop dun contrle Web Forms. Un symbole s'affiche dans le coin suprieur gauche du contrle pour indiquer qu'il s'agit d'un contrle serveur. La balise html du contrle est au format . Dans ce cas, les attributs ne sont pas ceux des lments HTML ; ce sont des proprits du contrle Web. 1 Il faut indiquer runat="server" sur la balise

    Ces contrles offrent plus de fonctionnalits que les contrles serveur HTML et ne se mappent

    pas directement sur les lments HTML :

    - Les contrles serveur Web offrent toutes les fonctionnalits dcrites prcdemment pour les contrles serveur HTML (sauf le mappage avec les lments HTML).

    - Un objet modle labor fournit des fonctionnalits de programmation de type scuris. - Dtection automatique du navigateur : les contrles peuvent dtecter les fonctionnalits du

    navigateur et crer la sortie approprie pour les navigateurs de base et les navigateurs labors (HTML 4.0).

    - Pour certains contrles, il est possible de dfinir une apparence spcifique pour le contrle l'aide

    de modles. - Pour certains contrles, il est possible de spcifier si un vnement du contrle provoque une

    publication immdiate vers le serveur ou s'il est mis en cache et dclench lorsque le formulaire est soumis.

    - Il est possible de passer des vnements d'un contrle imbriqu (tel qu'un bouton dans un tableau)

    au contrle conteneur.

    auteur centre outil type doc millsime version page 50 Michel Astre Beaumont Word 2000 supp. form 13/03/06 1 CSharp_ASP63.doc

    afpa

  • SUPPORT DE FORMATION ASP.NET

    Objet Page

    La classe Page est associe aux fichiers ayant une extension .aspx. Ces fichiers sont compils au moment de l'excution en tant qu'objets Page et mis en cache dans la mmoire du serveur. Exemple de classe contenue dans le code behind : public class ExCours1 : System.Web.UI.Page { }

    Proprits publiques Description

    Application Obtient l'objet Application pour la demande Web en cours. Cache Obtient l'objet Cache associ l'application dans laquelle rside la page. ClientID (hrit de Control) Obtient l'identificateur de contrle serveur gnr par ASP.NET. ClientTarget Obtient ou dfinit une valeur qui vous permet de substituer la dtection automatique des

    fonctionnalits d'un navigateur et de spcifier