Académique Documents
Professionnel Documents
Culture Documents
10557A
Introduction au développement
Web avec Microsoft® Visual
Studio® 2010
Volume 1
Les informations contenues dans ce document, notamment les adresses URL et les références à d'autres
sites Web Internet, pourront faire l'objet de modifications sans préavis. Sauf mention contraire, les
sociétés, les produits, les noms de domaines, les adresses de messagerie, les logos, les personnes, les
lieux et les événements utilisés dans les exemples sont fictifs et toute ressemblance avec des sociétés,
produits, noms de domaines, adresses de messagerie, logos, personnes, lieux et événements réels est
purement fortuite et involontaire. L'utilisateur est tenu d'observer la réglementation relative aux droits
d'auteur applicable dans son pays. Aucune partie de ce document ne peut être reproduite, stockée ou
introduite dans un système de restitution, ou transmise à quelque fin ou par quelque moyen que ce
soit (électronique, mécanique, photocopie, enregistrement ou autre) sans la permission expresse et
écrite de Microsoft Corporation.
Microsoft peut détenir des brevets, avoir déposé des demandes d'enregistrement de brevets ou être
titulaire de marques, droits d'auteur ou autres droits de propriété intellectuelle portant sur tout ou
partie des éléments qui font l'objet du présent document. Sauf stipulation expresse contraire d'un
contrat de licence écrit de Microsoft, la fourniture de ce document n'a pas pour effet de vous concéder
une licence sur ces brevets, marques, droits d'auteur ou autres droits de propriété intellectuelle.
Les noms de fabricants, de produits ou les URL sont fournis uniquement à titre indicatif et Microsoft
ne fait aucune déclaration et exclut toute garantie légale, expresse ou implicite, concernant ces
fabricants ou l'utilisation des produits avec toutes les technologies Microsoft. L'inclusion d'un fabricant
ou d'un produit n'implique pas l'approbation par Microsoft du fabricant ou du produit. Des liens vers
des sites Web tiers peuvent être fournis. Ces sites ne sont pas sous le contrôle de Microsoft et Microsoft
n'est pas responsable de leur contenu ni des liens qu'ils sont susceptibles de contenir, ni des modifications
ou mises à jour de ces sites. Microsoft n'est pas responsable de la webdiffusion ou de toute autre forme
de transmission reçue d'un site connexe. Microsoft fournit ces liens dans un but pratique et l'insertion
de n'importe quel lien n'implique pas l'approbation du site en question ou des produits qu'il contient
par Microsoft.
Si vous vous conformez aux présents termes du contrat de licence, vous disposez des droits
stipulés ci-dessous.
1. DÉFINITIONS.
a. La « Documentation de formation » signifie la documentation imprimée ou sous forme
électronique, comme les manuels, cahiers d’exercice, livres blancs, communiqués de presse,
feuilles de données et forums aux questions, qui peut être incluse dans le Contenu sous licence.
b. Un « Centre de formation agréé » signifie un centre partenaire Microsoft Certified Partner
approuvé MLSC (Microsoft Learning Solutions Competency), un centre IT Academy, ou toute autre
entité désignée occasionnellement par Microsoft.
c. Une « Session de formation agréée » signifie une session de formation agréée par Microsoft et
organisée dans ou par un Centre d’apprentissage agréé, dirigée par un formateur qui dispense une
formation à des Stagiaires exclusivement sur les Produits officiels de formation Microsoft (« Official
Microsoft Learning Products », anciennement appelés cours officiels Microsoft ou MOC, « Microsoft
Official Curriculum ») et les produits Microsoft Dynamics (anciennement appelés cours Microsoft
Business Solutions). Chaque Session de formation agréée dispensera une formation sur l’objet
d’un (1) Cours.
d. Un « Cours » signifie l’un des cours utilisant un Contenu sous licence proposés par un Centre de
formation agréé dans le cadre d’une Session de formation agréée, chacune dispensant une formation
sur un domaine particulier lié à une technologie Microsoft.
e. Un « Dispositif » signifie un ordinateur, un périphérique, une station de travail, un terminal ou
tout autre dispositif électronique numérique ou analogique.
f. Le « Contenu sous licence » signifie les supports qui accompagnent les présents termes du
contrat de licence. Le Contenu sous licence peut inclure, notamment, les éléments suivants : (i) Le
Contenu du formateur, (ii) le Contenu du stagiaire, (iii) le guide d’installation de la classe et (iv) le
Logiciel. Les composants du Contenu sous licence sont différents et distincts pour chaque Cours.
g. Le « Logiciel » signifie les Machines virtuelles et les Disques durs virtuels ou toute autre application
logicielle pouvant être incluse dans le Contenu sous licence.
h. Un « Stagiaire » signifie un stagiaire dûment inscrit à une Session de formation agréée dans votre
centre.
i. Le « Contenu du stagiaire » signifie les supports de formation accompagnant les présents termes
du contrat de licence qui sont utilisés par les Stagiaires et les Formateurs durant une Session de
formation agréée. Le Contenu du stagiaire peut inclure des ateliers, des simulations et des fichiers
spécifiques à chaque Cours.
j. Un « Formateur » signifie a) une personne dûment certifiée par Microsoft en tant que formateur
MCT (Microsoft Certified Trainer) et b) toute autre personne autorisée officiellement par Microsoft et
qui a été chargée par un Centre d’apprentissage agréé de dispenser une Session de formation
agréée à des Stagiaires pour son compte.
k. Le « Contenu du formateur » signifie les supports de formation accompagnant les présents
termes du contrat de licence qui sont utilisés par les Formateurs et les Stagiaires, selon le cas,
uniquement durant une Session de formation agréée. Le Contenu du formateur peut inclure les
Machines virtuelles, les Disques durs virtuels, les fichiers Microsoft PowerPoint, les notes de
l’instructeur ainsi que les guides de démonstration et les fichiers script requis pour chaque Cours.
l. Les « Disques durs virtuels » signifient le Logiciel Microsoft constitué des disques durs virtuels
(comme un disque dur virtuel de base ou des disques différents) pour une Machine virtuelle qui peut
être chargé sur un seul ordinateur ou tout autre dispositif afin de permettre aux utilisateurs finals
d’exécuter plusieurs systèmes d’exploitation simultanément. Dans le cadre du présent contrat de
licence, les disques durs virtuels devront être traités en tant que « Contenu du formateur ».
m. La « Machine virtuelle » signifie une expérience informatique virtuelle, obtenue à l’aide du logiciel
Microsoft® Virtual PC ou Microsoft® Virtual Server qui se compose d’un environnement matériel
virtuel, d’un ou de plusieurs disques durs virtuels ainsi que d’un fichier de configuration définissant
les paramètres de l’environnement matériel virtuel (par exemple, la RAM). Dans le cadre du présent
contrat de licence, les disques durs virtuels devront être traités en tant que « Contenu du
formateur ».
n. Le terme « vous » signifie le Centre de formation agréé ou le Formateur, selon le cas, qui a accepté
les présents termes du contrat de licence.
2. PRÉSENTATION.
Contenu sous licence. Le Contenu sous licence inclut le Logiciel, la Documentation de formation (en
ligne et sous forme électronique), le Contenu du formateur, le Contenu du stagiaire, le guide
d’installation de la classe et les supports associés.
Modèle de licence. Le Contenu sous licence est concédé sous licence en vertu d’une licence par Centre
de formation agréé ou par Formateur.
3. INSTALLATION ET DROITS D’UTILISATION.
a. Centres de formation agréés et Formateurs : Pour chaque Session de formation agréée,
vous êtes autorisé à :
i. soit installer, sur les Dispositifs de la classe, des copies individuelles du Contenu sous licence
correspondant qui seront utilisées uniquement par les Stagiaires dûment inscrits à la Session de
formation agréée et par le Formateur dispensant cette formation, sous réserve que le nombre de
copies utilisées ne dépasse pas le nombre de Stagiaires inscrits à la Session de formation agréée
et le Formateur dispensant cette formation ; SOIT
ii. installer une copie du Contenu sous licence correspondant sur un serveur réseau qui sera
accessible uniquement par les Dispositifs de la classe et qui sera utilisée uniquement par les
Stagiaires dûment inscrits à la Session de formation agréée et par le Formateur dispensant cette
formation, sous réserve que le nombre de Dispositifs qui accèdent au Contenu sous licence sur le
serveur ne dépasse pas le nombre de Stagiaires inscrits à la Session de formation agréée et le
Formateur dispensant cette formation.
iii. autoriser les Stagiaires dûment inscrits à la Session de formation agréée et le Formateur
dispensant cette formation à utiliser le Contenu sous licence que vous installez selon (i) ou (ii) ci-
dessus durant une Session de formation agréée, conformément aux présents termes du contrat
de licence.
iv. Dissociation de composants. Les composants du Contenu sous licence sont concédés sous
licence en tant qu’unité unique. Vous n’êtes pas autorisé à dissocier les composants et à les
installer sur différents Dispositifs.
v. Programmes de tiers. Le Contenu sous licence peut également contenir des programmes tiers.
L’utilisation de ces programmes tiers sera régie par les présents termes du contrat de licence, à
moins que d’autres termes n’accompagnent ces programmes.
b. Formateurs :
i. Les Formateurs sont autorisés à utiliser le Contenu sous licence que vous installez ou qui est
installé par un Centre de formation agréé sur un Dispositif de la classe dans le cadre d’une
Session de formation agréée.
ii. Les Formateurs sont également autorisés à utiliser une copie du Contenu sous licence, comme
indiqué ci-après :
A. Dispositif concédé sous licence. Le Dispositif concédé sous licence est celui sur lequel vous
utilisez le Contenu sous licence. Vous êtes autorisé à installer et à utiliser une copie du
Contenu sous licence sur le Dispositif sous licence uniquement pour les besoins de votre
formation personnelle et pour préparer une Session de formation agréée.
B. Dispositif portable. Vous êtes autorisé à installer une autre copie du Contenu sous licence
sur un dispositif portable uniquement pour les besoins de votre formation personnelle et
pour préparer une Session de formation agréée.
4. VERSIONS PRÉCOMMERCIALES. Si le Contenu sous licence est une version précommerciale
(« version bêta »), les présents termes s’appliquent en plus des termes de ce contrat :
a. Contenu sous licence en version précommerciale. Ce Contenu sous licence est une version
précommerciale. Il peut ne pas contenir les mêmes informations et/ou ne pas fonctionner comme
une version finale du Contenu sous licence. Nous sommes autorisés à le changer pour la version
commerciale finale. Nous sommes également autorisés à ne pas éditer de version commerciale.
Vous devez informer clairement et de façon visible les Stagiaires qui participent à chaque Session de
formation agréée de ce qui précède ; et vous ou Microsoft n’avez aucune obligation de leur fournir
un contenu supplémentaire, notamment, de manière non limitative, la version finale du Contenu
sous licence du Cours.
b. Commentaires. Si vous acceptez de faire part à Microsoft de vos commentaires concernant le
Contenu sous licence, vous concédez à Microsoft, gratuitement, le droit d’utiliser, de partager et de
commercialiser vos commentaires de quelque manière et à quelque fin que ce soit. Vous concédez
également à des tiers, gratuitement, les droits de brevet nécessaires pour que leurs produits,
technologies et services puissent être utilisés ou servir d’interface avec toute partie spécifique d’un
logiciel, Contenu sous licence ou service Microsoft qui inclut ces commentaires. Vous ne fournirez
pas de commentaires faisant l’objet d’une licence qui impose à Microsoft de concéder sous licence
son logiciel ou sa documentation à des tiers parce que nous y incluons vos commentaires. Ces droits
survivent au présent contrat.
c. Informations confidentielles. Le Contenu sous licence, y compris la visionneuse, l’interface
utilisateur, les fonctionnalités et la documentation pouvant être incluses dans le Contenu sous
licence, est confidentiel et la propriété de Microsoft et de ses fournisseurs.
i. Utilisation. Pendant cinq ans après l’installation du Contenu sous licence ou de sa
commercialisation, selon la date la plus proche, vous n’êtes pas autorisé à divulguer des
informations confidentielles à des tiers. Vous êtes autorisé à divulguer des informations
confidentielles uniquement à vos employés et consultants qui en ont besoin. Vous devez
avoir conclu avec eux des accords écrits qui protègent les informations confidentielles au
moins autant que le présent contrat.
ii. Maintien en vigueur de certaines clauses. Votre obligation de protection des
informations confidentielles survit au présent contrat.
iii. Exclusions. Vous êtes autorisé à divulguer des informations confidentielles conformément à
une ordonnance judiciaire ou gouvernementale. Vous devez en informer par avance Microsoft
afin de lui permettre de demander une ordonnance protectrice ou de trouver un autre moyen
de protéger ces informations. Les informations confidentielles n’incluent pas les informations
• qui ont été portées à la connaissance du public sans qu’il y ait eu violation de l’obligation
de confidentialité ;
• que vous avez reçues d’un tiers qui n’a pas violé ses obligations de confidentialité à
l’égard de Microsoft ou de ses fournisseurs ; ou
• que vous avez développées en toute indépendance.
d. Durée. Le présent contrat pour les versions précommerciales est applicable jusqu’à (i) la date
d’expiration qui vous est communiquée par Microsoft pour l’utilisation de la version bêta, ou (ii) la
commercialisation du Contenu sous licence, selon la date la plus proche (la « durée de la bêta »).
e. Utilisation. Dès l’expiration ou la résiliation de la durée de la bêta, vous devrez cesser d’utiliser les
copies de la version bêta et détruire toutes les copies en votre possession ou sous votre contrôle
et/ou en possession ou sous le contrôle d’un Instructeur qui a reçu des copies de la version
précommerciale.
f. Copies. Microsoft informera les Centres de formation agréés s’ils sont autorisés à effectuer des
copies de la version bêta (version imprimée et/ou sur CD) et à les distribuer aux Stagiaires et/ou
Instructeurs. Si Microsoft autorise cette distribution, vous devrez vous conformer aux termes
supplémentaires fournis par Microsoft concernant lesdites copies et distribution.
5. CONDITIONS DE LICENCE ET/OU DROITS D’UTILISATION SUPPLÉMENTAIRES.
a. Centres de formation agréés et Formateurs :
i. Logiciel.
ii. Disques durs virtuels. Le Contenu sous licence peut inclure des versions de Microsoft XP,
Microsoft Windows Vista, Windows Server 2003, Windows Server 2008 et
Windows 2000 Advanced Server et/ou d’autres produits Microsoft qui sont fournis dans les
Disques durs virtuels.
A. Si les Disques durs virtuels et les ateliers sont lancés avec le lanceur d’ateliers
Microsoft Learning Lab Launcher, ces termes s’appliquent :
Logiciel temporaire. Si le Logiciel n’est pas réinitialisé, il cessera de fonctionner à l’issue de la
durée indiquée lors de l’installation de Machines virtuelles (entre trente et cinq cents jours
après son installation). Vous ne recevrez pas de notification avant l’arrêt du logiciel. Une fois
que le logiciel ne fonctionnera plus, vous risquez de ne plus pouvoir accéder aux données
utilisées ou aux informations enregistrées avec les Machines virtuelles et de devoir rétablir
l’état d’origine de ces Machines virtuelles. Vous devez supprimer le Logiciel des Dispositifs à
la fin de chaque Session de formation agréée, et le réinstaller et le lancer avant le début de
chaque nouvelle Session de formation agréée.
B. Si les Disques durs virtuels nécessitent une clé de produit pour être lancés, ces
termes s’appliquent :
Microsoft désactivera le système d’exploitation associé à chaque Disque dur virtuel. Pour
installer un Disque dur virtuel sur des Dispositifs de la classe dans le cadre d’une Session de
formation agréée, vous devrez au préalable activer le système d’exploitation du Disque dur
virtuel en utilisant la clé de produit correspondante fournie par Microsoft.
C. Ces termes s’appliquent à l’ensemble des Machines virtuelles et des Disques durs
virtuels :
Vous êtes autorisé à utiliser les Machines virtuelles et les Disques durs virtuels
uniquement si vous vous conformez aux termes et conditions du présent contrat
de licence ainsi qu’aux conditions de sécurité suivantes :
o Vous ne pouvez pas installer des Machines virtuelles et des Disques durs virtuels sur
des Dispositifs portables ou des Dispositifs qui sont accessibles via d’autres réseaux.
o Vous devez supprimer les Machines virtuelles et les Disques durs virtuels des Dispositifs
de la classe à la fin de chacune des Sessions de formation agréées, à l’exception de
celles dispensées dans les centres Microsoft Certified Partner approuvés MLSC.
o Vous devez supprimer les différentes portions de disque des Disques durs virtuels de
tous les Dispositifs de la classe à la fin de chaque Session de formation agréée
dispensée dans les centres Microsoft Certified Partner approuvés MLSC.
o Vous devez vous assurer que les Machines virtuelles et les Disques durs virtuels ne sont
pas copiés ou téléchargés à partir de Dispositifs sur lesquels ils ont été installés.
o Vous devez respecter strictement toutes les instructions Microsoft relatives à l’installation,
à l’utilisation, à l’activation et la désactivation, et à la sécurité des Machines virtuelles et
des Disques durs virtuels.
o Vous n’êtes pas autorisé à modifier les Machines virtuelles et les Disques durs virtuels
ou le contenu y figurant.
o Vous n’êtes pas autorisé à reproduire ou à redistribuer les Machines virtuelles ou les
Disques durs virtuels.
iii. Guide d’installation de la classe. Vous devez vous assurer que le Contenu sous licence qui
sera utilisé durant une Session de formation agréée est installé conformément au guide
d’installation de la classe associé au Cours.
iv. Éléments multimédias et modèles. Vous pouvez autoriser les Formateurs et les Stagiaires
à utiliser des photographies, images clip art, animations, sons, musiques, formes, clips vidéo
et modèles inclus avec le Contenu sous licence uniquement dans le cadre d’une Session de
formation agréée. Les Formateurs qui possèdent leur propre copie du Contenu sous licence sont
autorisés à se servir des éléments multimédias aux seules fins de leur formation personnelle.
v. Logiciel d’évaluation. Tout Logiciel inclus dans le Contenu du stagiaire et désigné comme
« Logiciel d’évaluation » peut être utilisé par les Stagiaires uniquement pour les besoins de leur
formation personnelle en dehors de la Session de formation agréée.
b. Formateurs uniquement :
i. Utilisation des modèles de diapositives PowerPoint. Le Contenu du formateur peut
comprendre des diapositives Microsoft PowerPoint. Le Formateur est autorisé à utiliser, copier
et modifier les diapositives PowerPoint dans le seul but de dispenser une Session de formation
agréée. Si vous choisissez d’exercer les droits précités, vous vous engagez ou vous garantissez
que le Formateur s’engage : (a) à ce que la modification des diapositives ne constitue pas la
création d’œuvres obscènes ou diffamatoires, telles qu’elles sont définies par la législation
fédérale au moment de leur création ; et (b) à respecter l’ensemble des termes et conditions du
présent contrat de licence.
ii. Utilisation des Composants de formation inclus dans le Contenu du formateur. Pour
chaque Session de formation agréée, les Formateurs sont autorisés à personnaliser et à
reproduire, conformément aux termes du contrat MCT, les composants du Contenu sous licence
qui sont associés logiquement à la Session de formation agréée. Si vous choisissez d’exercer les
droits précités, vous vous engagez ou vous garantissez que le Formateur s’engage : (a) à ce
que les personnalisations ou les reproductions ne soient utilisées qu’aux seules fins de dispenser
une Session de formation agréée et (b) à respecter l’ensemble des termes et conditions du
présent contrat de licence.
iii. Documentation de formation. Si le Contenu sous licence inclut une Documentation de
formation, vous êtes autorisé à copier et à utiliser cette Documentation. Vous n’êtes pas
autorisé à modifier la Documentation de formation ni à imprimer un ouvrage (version
électronique ou imprimée) dans son intégralité. Si vous reproduisez une Documentation de
formation, vous acceptez ces termes :
• Vous pouvez utiliser la Documentation de formation aux seules fins de votre utilisation ou
formation personnelle.
• Vous ne pouvez pas rééditer ni publier la Documentation de formation sur un ordinateur du
réseau, ni la diffuser sur un support.
• Vous devez ajouter la mention de droits d’auteur d’origine de la Documentation de
formation ou celle de Microsoft sous la forme
ci-dessous :
Forme de mention :
© 2011 Réimprimé avec l’autorisation de Microsoft Corporation pour usage
personnel uniquement. Tous droits réservés.
Microsoft, Windows et Windows Server sont soit des marques de Microsoft
Corporation, soit des marques déposées de Microsoft Corporation aux États-Unis
d’Amérique et/ou dans d’autres pays. Les autres noms de produits et de sociétés
mentionnés dans les présentes sont des marques de leurs propriétaires respectifs.
6. SERVICES INTERNET. Microsoft peut fournir des services Internet avec le Contenu sous licence. Ils
peuvent être modifiés ou interrompus à tout moment. Vous n’êtes pas autorisé à utiliser ces services de
quelque manière que ce soit qui pourrait leur porter atteinte ou perturber leur utilisation par un autre
utilisateur. Vous n’êtes pas autorisé à tenter d’accéder de façon non autorisée aux services, données,
comptes ou réseaux de toute autre manière.
7. PORTEE DE LA LICENCE. Le Contenu sous licence n’est pas vendu, mais concédé sous licence. Le
présent contrat vous confère certains droits d’utilisation du Contenu sous licence. Microsoft se réserve
tous les autres droits. Sauf si la loi en vigueur vous confère d’autres droits, nonobstant la présente
limitation, vous n’êtes autorisé à utiliser le Contenu sous licence qu’en conformité avec les termes du
présent contrat. À cette fin, vous devez vous conformer aux restrictions techniques contenues dans le
Contenu sous licence qui vous permettent de l’utiliser d’une certaine façon. Vous n’êtes pas autorisé à :
• installer, sur des Dispositifs de la classe, plus de copies du Contenu sous licence que le nombre de
Stagiaires plus le Formateur présents dans la Session de formation agréée ;
• permettre l’accès au Contenu sous licence sur le serveur réseau, le cas échéant, par davantage de
Dispositifs de la classe que le nombre de Stagiaires dûment inscrits à la Session de formation agréée
plus le Formateur dispensant cette formation.
• copier ou reproduire le Contenu sous licence sur un autre serveur ou site en vue d’une nouvelle
reproduction ou redistribution ;
• révéler à des tiers les résultats des tests d’évaluation du Contenu sous licence sans l’accord écrit
préalable de Microsoft ;
• contourner les restrictions techniques figurant dans le Contenu sous licence ;
• reconstituer la logique du Contenu sous licence, le décompiler ou le désassembler, sauf dans la
mesure où ces opérations seraient expressément permises par la réglementation applicable
nonobstant la présente limitation ;
• effectuer plus de copies du Contenu sous licence que ce qui n’est autorisé dans le présent contrat ou
par la réglementation applicable, nonobstant la présente limitation ;
• publier le Contenu sous licence en vue d’une reproduction par autrui ;
• transférer le Contenu sous licence, en totalité ou en partie, à un tiers ;
• accéder ou utiliser un Contenu sous licence pour lequel vous (i) ne dispensez pas de Cours et/ou (ii)
n’avez pas obtenu l’autorisation de Microsoft ;
• louer ou prêter le Contenu sous licence ; ou
• utiliser le Contenu sous licence pour des services d’hébergement commercial ou pour des besoins
d’ordre général.
• Les droits d’accès au logiciel serveur pouvant être inclus avec le Contenu sous licence, y compris les
Disques durs virtuels, ne vous autorisent pas à exploiter des brevets appartenant à Microsoft ou
tous autres droits de propriété intellectuelle de Microsoft sur le logiciel ou tous dispositifs qui
peuvent accéder au serveur.
8. RESTRICTIONS À L’EXPORTATION. Le Contenu sous licence est soumis à la réglementation
américaine en matière d’exportation. Vous devez vous conformer à toutes les réglementations nationales
et internationales en matière d’exportation concernant le logiciel. Ces réglementations comprennent des
restrictions sur les pays destinataires, les utilisateurs finaux et les utilisations finales. Des informations
supplémentaires sont disponibles sur le site Internet www.microsoft.com/exporting.
9. LOGICIEL/CONTENU SOUS LICENCE EN REVENTE INTERDITE (« NOT FOR RESALE » OU
« NFR »). Vous n’êtes pas autorisé à vendre un logiciel ou un Contenu sous licence portant la mention
de revente interdite (« Not for Resale » ou « NFR »).
10. VERSION ÉDUCATION. Pour utiliser un Contenu sous licence portant la mention de Version Éducation
(« Academic Edition » ou « AE »), vous devez avoir la qualité d’« Utilisateur Éducation Autorisé » (Qualified
Educational User). Pour savoir si vous avez cette qualité, rendez-vous sur le site
http://www.microsoft.com/france/licences/education ou contactez l’affilié Microsoft qui dessert votre pays.
11. RÉSILIATION. Sans préjudice de tous autres droits, Microsoft pourra résilier le présent contrat de licence
si vous n’en respectez pas les termes et conditions. Si votre statut de Centre de formation agréé ou de
Formateur a) expire, b) est volontairement résilié par vous-même et/ou c) est résilié par Microsoft, ce
contrat expirera automatiquement. Après résiliation du présent contrat, vous devrez détruire tous les
exemplaires du Contenu sous licence et tous ses composants.
12. INTÉGRALITÉ DES ACCORDS. Le présent contrat ainsi que les termes concernant les
suppléments, les mises à jour, les services Internet et d’assistance technique que vous
utilisez constituent l’intégralité des accords en ce qui concerne le Contenu sous licence et
les services d’assistance technique.
13. DROIT APPLICABLE.
a. États-Unis. Si vous avez acquis le Contenu sous licence aux États-Unis, les lois de l’État de
Washington, États-Unis d’Amérique, régissent l’interprétation de ce contrat et s’appliquent en cas de
réclamation pour rupture dudit contrat, sans donner d’effet aux dispositions régissant les conflits de
lois. Les lois du pays dans lequel vous vivez régissent toutes les autres réclamations, notamment les
réclamations fondées sur les lois fédérales en matière de protection des consommateurs, de
concurrence déloyale et de délits.
b. En dehors des États-Unis. Si vous avez acquis le Contenu sous licence dans un autre pays, les
lois de ce pays s’appliquent.
14. EFFET JURIDIQUE. Le présent contrat décrit certains droits légaux. Vous pouvez bénéficier d’autres
droits prévus par les lois de votre État ou pays. Vous pouvez également bénéficier de certains droits à
l’égard de la partie auprès de laquelle vous avez acquis le Contrat sous licence. Le présent contrat ne
modifie pas les droits que vous confèrent les lois de votre État ou pays si celles-ci ne le permettent pas.
15. EXCLUSIONS DE GARANTIE. Le Contenu sous licence est concédé sous licence « en l’état ».
Vous assumez tous les risques liés à son utilisation. Microsoft n’accorde aucune garantie ou
condition expresse. Vous pouvez bénéficier de droits des consommateurs supplémentaires
dans le cadre du droit local, que ce contrat ne peut modifier. Lorsque cela est autorisé par le
droit local, Microsoft exclut les garanties implicites de qualité, d’adéquation à un usage
particulier et d’absence de contrefaçon.
16. LIMITATION ET EXCLUSION DE RECOURS ET DE DOMMAGES. VOUS POUVEZ OBTENIR DE
MICROSOFT ET DE SES FOURNISSEURS UNE INDEMNISATION EN CAS DE DOMMAGES
DIRECTS LIMITÉE À 5,00 $ U.S. VOUS NE POUVEZ PRÉTENDRE À AUCUNE INDEMNISATION
POUR LES AUTRES DOMMAGES, Y COMPRIS LES DOMMAGES INDIRECTS, DE PERTES DE
BÉNÉFICES, SPÉCIAUX OU ACCESSOIRES.
Cette limitation concerne :
• toute affaire liée au Contenu sous licence, au logiciel, aux services ou au contenu (y compris le code)
figurant sur des sites Internet tiers ou dans des programmes tiers ; et
• les réclamations pour rupture de contrat ou violation de garantie, les réclamations en cas de
responsabilité sans faute, de négligence ou autre délit dans la limite autorisée par la loi en vigueur.
Elle s’applique également même si Microsoft connaissait l'éventualité d'un tel dommage. La limitation ou
exclusion ci-dessus peut également ne pas vous être applicable, car votre pays n’autorise pas l’exclusion
ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce
soit.
Bienvenue !
Merci de participer à notre formation. Nous avons travaillé en étroite collaboration avec nos
partenaires certifiés Microsoft en charge des formations (Microsoft Certified Partners for
Learning Solutions ou CPLS) et les académies Microsoft (Microsoft IT Academies) pour vous
garantir un apprentissage de qualité supérieure, que vous soyez un professionnel désireux
d'élargir vos compétences ou un étudiant en informatique.
■ Les avantages des examens de certification. Après avoir suivi une formation, vous
pouvez envisager de passer un examen de certification Microsoft. Les certifications
Microsoft valident vos compétences en matière de technologies Microsoft et peuvent
vous aider à vous distinguer lorsque vous recherchez un emploi ou si vous souhaitez
donner un nouvel élan à votre carrière. En fait, une étude indépendante menée par IDC
a démontré que 75 % des dirigeants estiment que les certifications ont un impact positif
sur les performances de leur équipe1. Demandez à votre instructeur des informations sur
les promotions et les remises disponibles pour les examens de certification Microsoft.
■ Une satisfaction client garantie. Nos CPLS (Certified Partners for Learning Solutions)
vous assurent une entière satisfaction et s'en portent pleinement garants. Nous vous
invitons d'ailleurs, à la fin de ce cours, à remplir une fiche d'évaluation concernant votre
expérience d'aujourd'hui. Vos commentaires nous sont précieux !
Nous vous souhaitons une excellente formation et une carrière couronnée de succès !
Cordialement,
Formation Microsoft
www.microsoft.com/france/formation
1 IDC, « Value of Certification: Team Certification and Organizational Performance », November 2006
Introduction au développement Web avec Microsoft® Visual Studio® 2010 xv
Remerciements
Microsoft Learning souhaite remercier les personnes suivantes pour leur contribution
à l'élaboration de ce cours. C'est grâce à leur participation à différentes étapes de sa
préparation que nous sommes en mesure de vous proposer une expérience de
formation de qualité.
À propos de ce cours
Cette section décrit brièvement le cours et ses objectifs, le profil des stagiaires, ainsi
que les connaissances préalables requises.
Description du cours
Ce cours de cinq jours animé par un instructeur permet d'acquérir les connaissances
et les compétences nécessaires pour développer des applications Web à l'aide de
Microsoft® Visual Studio® 2010.
Public visé
Ce cours s'adresse aux développeurs Web débutants qui possèdent des connaissances
en HTML (Hypertext Markup Language) ou DHTML (Dynamic HTML), ainsi que
des notions d'un langage de script tel que Microsoft Visual Basic® Scripting Edition
ou Microsoft JScript®.
Les stagiaires doivent avoir les compétences suivantes :
• Capacité de créer une page Web simple à l'aide d'une application Microsoft
ou d'un outil tiers. Ils doivent être en mesure, par exemple, de créer ou de
personnaliser une page Web sur un site Microsoft SharePoint® 2010.
Conditions préalables
Les stagiaires doivent avoir au moins un mois d'expérience des technologies
Microsoft .NET. Outre leur expérience professionnelle, les stagiaires qui suivent cette
formation doivent posséder les connaissances techniques suivantes :
• Connaissance de HTML ou DHTML, y compris :
• les tableaux ;
• les images ;
• les formulaires.
• Expérience de la programmation avec Visual Basic .NET ou Microsoft Visual
C#® .NET, y compris :
• la déclaration de variables ;
• l'utilisation de boucles ;
• l'utilisation d'instructions conditionnelles.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
xx À propos de ce cours
Objectifs du cours
À la fin de ce cours, les stagiaires seront à même d'effectuer les tâches suivantes :
• explorer les applications Web Microsoft ASP.NET dans Visual Studio 2010 ;
• créer des applications Web en utilisant Visual Studio 2010 et les langages
reposant sur Microsoft .NET ;
• créer un formulaire Web ASP.NET ;
• ajouter des fonctionnalités à un formulaire Web ASP.NET ;
• implémenter des pages maîtres et des contrôles utilisateur ;
• valider des entrées utilisateur ;
• déboguer les applications Web ASP.NET 4.0 ;
• gérer les données dans une application Web ASP.NET 4.0 ;
• gérer les tâches d'accès aux données à l'aide de LINQ (Language Integrated
Query) ;
• gérer les données à l'aide de Dynamic Data ASP.NET ;
• créer une application ASP.NET Ajax ;
• utiliser les services WCF (Windows Communication Foundation) ;
• gérer l'état dans les applications Web ;
• configurer et déployer une application Web ASP.NET ;
• sécuriser une application Web ASP.NET ;
• implémenter les nouvelles technologies que Visual Studio 2010 prend en charge
pour le développement Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
À propos de ce cours xxi
Plan du cours
Cette section indique le plan du cours.
Le module 1, « Exploration des applications Web Microsoft ASP.NET dans Visual
Studio 2010 », explique les fonctions clés de Microsoft .NET Framework et de
Microsoft ASP.NET. Ce module vous permet de visualiser l'application Web complète
que vous créerez au cours des ateliers pratiques de ce cours.
Le module 2, « Création d'applications Web en utilisant Visual Studio 2010 et les
langages reposant sur Microsoft .NET », décrit les différents langages de
programmation disponibles pour développer des applications Microsoft .NET
Framework. Ce module expose les aspects fondamentaux de l'écriture de code et
de la création de composants à l'aide des deux langages reposant sur .NET Framework,
Visual Basic et Visual C#. Il propose également une présentation générale de Microsoft
Visual Studio 2010 et explique comment créer une application Web simple.
Le module 3, « Création d'un formulaire Web Form Microsoft® ASP.NET », explique
comment créer des Web Forms, puis les remplir avec des contrôles serveur.
Le module 4, « Ajout de fonctionnalités à un formulaire Web Form Microsoft
ASP.NET », décrit les différentes méthodes à votre disposition pour ajouter du code
à votre application Web Microsoft ASP.NET. Il explique également comment utiliser
les contrôles serveur Web, les gestionnaires d'événements, les fichiers code-behind
et les composants. De plus, il explique comment utiliser les événements de page,
notamment l'événement Page_Load.
Le module 5, « Implémentation des pages maîtres et des contrôles utilisateur »,
explique comment créer et implémenter des pages maîtres et comment implémenter
des contrôles utilisateur dans une application Web.
Le module 6, « Validation des entrées utilisateur », propose une vue d'ensemble de
la validation des entrées utilisateur. Il fournit des informations sur l'ajout, le
positionnement et la configuration de contrôles de validation dans un formulaire
Web Form. Il fournit également des informations sur la validation de formulaires
Web Form.
Le module 7, « Résolution des problèmes dans les applications Web Microsoft
ASP.NET », décrit les étapes requises pour permettre le traçage et le débogage, et
indique comment utiliser ces fonctions dans une application Web.
Le module 8, « Gestion des données dans une application Web Microsoft
ASP.NET 4.0 », propose une vue d'ensemble de ADO.NET. Il explique comment
exploiter par programme les données à l'aide d'ADO.NET et comment créer une
connexion pour accéder aux données stockées dans une base de données Microsoft
SQL Server. De plus, il décrit comment utiliser les objets DataSet et DataReader
pour prendre en charge les exigences de stockage local et de manipulation des
données relatives aux formulaires Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
xxii À propos de ce cours
Documents de cours
Votre kit de cours contient les documents détaillés ci-dessous :
• Guide du cours. Ce guide de formation succinct, destiné à être utilisé en classe,
fournit toutes les informations techniques essentielles dans un format compact
et ciblé, idéal pour une expérience de formation dirigée efficace.
• Leçons : elles vous guident dans la réalisation des objectifs de formation et
fournissent les éléments indispensables à la réussite de votre formation dirigée.
• Ateliers pratiques : ils fournissent une plateforme concrète pour vous
permettre d'appliquer les connaissances et les compétences acquises au cours
du module.
• CD du cours. Il fournit des ressources complémentaires associées à ce cours.
• Ressources : elles comprennent des ressources complémentaires
soigneusement classées qui vous permettent d'accéder immédiatement au
contenu le plus à jour disponible sur TechNet, MSDN® et Microsoft Press®.
• Corrigés des ateliers pratiques : corrigés des ateliers pratiques en format
numérique, à utiliser pendant les ateliers. Ils sont également disponibles
sous forme de PDF à imprimer.
• Guide de configuration des ordinateurs virtuels : fournit des procédures
pas à pas permettant de recréer des images des ordinateurs virtuels/serveurs
disposant de la configuration appropriée.
• Instructions pour l'envoi de vos commentaires : elles vous permettent
d'envoyer vos commentaires sur tous les aspects du cours.
• Fichiers de cours destinés aux stagiaires : ils intègrent le fichier Allfiles.exe,
un fichier exécutable auto-extractible contenant tous les fichiers requis pour
les ateliers pratiques et les démonstrations.
Remarque : pour ouvrir la page Web, insérez le CD-ROM du cours dans le lecteur,
puis double-cliquez sur StartCD.exe dans le répertoire racine du CD-ROM.
• Évaluation du cours. À la fin du cours, vous pourrez remplir une fiche d'évaluation
en ligne pour émettre vos commentaires sur le cours, le centre de formation et
l'instructeur.
Configuration logicielle
Les logiciels suivants sont installés sur chaque ordinateur virtuel :
• Visual Studio 2010 Professional (comprenant .NET Framework 4.0)
• Ajax Control Toolkit
• Microsoft Silverlight 4
• Microsoft Silverlight 4 Tools pour Visual Studio 2010
• Windows® Internet Explorer® 8
Fichiers du cours
Des fichiers sont associés aux ateliers pratiques de ce cours. Ils sont situés sur les
ordinateurs des stagiaires.
Configuration de la classe
L'ordinateur virtuel sera configuré de la même façon sur tous les ordinateurs de la
classe.
Module 1
Exploration des applications Web
Microsoft® ASP NET dans
Microsoft Visual Studio® 2010
Table des matières :
Leçon 1 : Introduction au .NET Framework 1-3
Leçon 2 : Vue d'ensemble d'ASP.NET 1-15
Leçon 3 : Vue d'ensemble de l'application de l'atelier pratique 1-32
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
1-2 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Vue d'en
nsemble du modu
ule
Objecttifs du module
À la fin de ce module, vo
ous serez à mêmee d'effectuer les tââches suivantes :
• déccrire le .NET Fram
mework ;
• déccrire ASP.NET ;
• déccrire l'application de l'atelier pratiq
que.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Exploration des aapplications Web Microsooft® ASP NET dans Microosoft Visual Studio® 2010 1-3
Leçon 1
Introducction au .N
NET Fram
mework
Vous deevez connaître less termes et les concepts associés aua développemen nt
Web afiin d'apprécier pleeinement l'utilisattion de Visual Stu
udio 2010 pour le
développpement d'applicaations Web. Les développeurs
d fon
nt face à de nomb
breux
défis lorrs de la création d
d'applications Weeb et le .NET Fraamework résout une
u
grande partie de ces problèmes.
Dans ceette leçon, vous d
découvrirez le .NEET Framework 4, principalement dans
d
le cadree du développemeent d'application ns Web. Vous déccouvrirez égalemeent
Visual Studio
S 2010, l'outtil de développem
ment qui permet de créer des
applicattions Web.
Objecttifs de la leçon
Au term
me de cette leçon, vous serez à mêm
me d'effectuer less tâches suivantess :
• déccrire Microsoft .N
NET ;
• énu
umérer les avantaages liés à l'utilisaation du .NET Fraamework ;
• déccrire les composants du .NET Fram
mework ;
• iden
ntifier les fonctionnalités clés de Visual
V Studio 201
10.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
1-4 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Introd
duction à Miicrosoft .NET
T
Points clés
L'objecttif de Microsoft .N
NET est de simplifier le développeement des applicaations
Window ws®, des applicatiions Web, des ap pplications person
nnalisées et des services.
s
Cela commprend les appliications mobiles, les applications dansd le nuage hébergées
par Win
ndows Azure™ et lles applications héébergées par Micrrosoft SQL Server® ® 2008.
(Le nuaage ou l'informatique en nuage faitt référence à l'info ormatique basée sur
Internett, dans laquelle lees logiciels et les données sont fouurnis à la demandde.)
Le .NETT Framework est l'infrastructure de d Microsoft .NET T.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Exploration des applications Web Microsoft® ASP NET dans Microsoft Visual Studio® 2010 1-5
Avanttages du .NE
ET Frameworrk
Points clés
Au débu ut, la plupart des applications Win
ndows étaient dééveloppées grâce à
l'interface de programmaation d'applicatio ons (API, application programming interface)
Window ws, généralementt dans les langagees de programmaation C ou C++. Les L
applicattions de bureau ccréées visaient la productivité au trravail, l'informatiique
domestiique et les jeux. AAvec l'introductio
on de Microsoft Visual
V Basic® et d''Internet,
les déveeloppeurs ont dû se spécialiser daans un type d'app plication particulieer. Ils ont
dû, par exemple, se spéccialiser dans le dééveloppement des applications en nC
ou C++,, Visual Basic, ou en langage de sccript Visual Basic pour l'utilisationn des
pages ASP
A (Active Serverr Pages). Aujourd d'hui, avec le .NET
T Framework, vo ous
pouvez mettre à profit vo os compétences pour
p développer tout type d'appliication
et choissir votre langage dde programmatio on.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Exploration des applications Web Microsoft® ASP NET dans Microsoft Visual Studio® 2010 1-7
Comp
posants du .N
NET Framew
work
Points clés
L'enviro
onnement .NET p possède plusieurss composants perrmettant de généérer et
d'exécuter les application
ns .NET.
• Système d'exploitatiion. Le .NET Fram
mework doit être exécuté sur un système
s
xploitation.
d'ex
• Com mmon Language Runtime. Le Com mmon Language Runtime (CLR) est le
com
mposant d'ordinaateur virtuel du .N NET Framework ; il fournit des serrvices
de base
b tels que la ggestion de la mémmoire, des threadss et des exception
ns, le
garbbage collection et la sécurité. Le composant
c CLR gère
g le code au moment
m
de l'exécution
l et appplique la sécurité en attribuant des degrés variabless de
con
nfiance à un comp posant selon un certain
c nombre de
d facteurs (son origine,
o
parr exemple). Il enccourage la robusteesse en implémen ntant une infrastrructure
de vérification
v stricte du type et du code, appelée le syystème de type com
mmun.
Le code
c managé est exécuté sous la gestion
g du CLR, tandis
t que le cod
de non
man nagé ne cible pass le Common Lan nguage Runtime.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
1-10 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Remarque : pour plus d'informations sur ADO.NET, consultez le module 8, « Gestion des
données dans une application Web Microsoft ASP.NET 4.0 ».
Remarque : pour plus d'informations sur WCF, consultez le module 12, « Utilisation des
services Windows Communication Foundation ».
Hébergement d'applications
Le CLR gère l'exécution du code pour un grand nombre d'applications et de
services. Cependant, chaque type d'application nécessite un hôte du runtime
pour la démarrer. Celui-ci charge le runtime dans un processus, crée les domaines
d'application du processus et charge le code de l'utilisateur dans les domaines
d'application. Le .NET Framework fournit non seulement plusieurs hôtes du
runtime, mais prend également en charge le développement des hôtes du runtime
tiers. Les hôtes du runtime proposés par Microsoft sont énumérés dans le tableau
suivant.
Windows Internet Explorer® Crée des domaines d'application pour exécuter des
contrôles managés. Le .NET Framework prend en
charge le téléchargement et l'exécution des contrôles
de navigateur. Le runtime interface avec le mécanisme
d'extensibilité d'Internet Explorer grâce à un filtre MIME
(Multipurpose Internet Mail Extension) pour créer des
domaines d'application qui exécuteront les contrôles
managés. Par défaut, un domaine d'application est créé
pour chaque site Web.
Princiipales fonctio
onnalités de
e Visual Studio 2010
Points clés
Visual Studio
S 2010 consstitue la base du développement
d d Microsoft .NET
de T.
Visual Studio
S 2010 est u
un environnemen nt de développemment complet dan ns
lequel vous
v pouvez conccevoir, développeer, déboguer et dééployer vos appliications
et servicces .NET.
Fonctio
onnalités de Viisual Studio 20
010
Visual Studio
S 2010 offree les fonctionnalittés suivantes :
• nombreux langages de programmaation
Prisse en charge de n
• Outils pour générer des applications Web, Windows,, WPF et compatiibles
avec WF, ainsi que d
des services WCFF
• Outils pour l'utilisattion de feuilles dee style en cascadee (CSS), notammeent les
fenêêtres Appliquer les styles et Gérerr les styles
• Outils d'accès aux d
données, notamm
ment la prise en ch
harge d'Entity Fraamework
et de
d la requête LINQ (language-inteegrated query)
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
1-14 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Leçon 2
Vue d'en
nsemble d
d'ASP.NE
ET
Objecttifs de la leçon
Au term
me de cette leçon, vous serez à mêm
me d'effectuer less tâches suivantess :
• déccrire l'interaction client-serveur ;
• déccrire ASP.NET ;
• déccrire les composants d'une applicaation Web ASP.NET ;
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
1-16 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Intera
action client--serveur
Points clés
Le déveeloppement d'app plications en vue d'une utilisation sur HTTP diffèree de la
création
n d'applications d
de bureau, telles que
q les applicatio ons Windows Forrms. Le
protocoole HTTP est intriinsèquement sans état ; cela signiffie que la commu unication
fonction
nne de manière d déconnectée. En d'autres
d termes, ill n'y a pas de con
nnexion
entre un
n client et un servveur Web.
• Lorrsqu'un client dem
mande une page en tapant une ad dresse, ou URL (U Uniform
Ressource Locator), d
dans un navigateur Web, le serveu ur Web répond en
ren
nvoyant au client lle code HTML (eet potentiellement le code côté clieent pour
la ressource demand dée, telle qu'une page
p ou un fichieer).
• La connexion
c entre le client et le servveur s'ouvre à l'arrrivée de la demaande et
se ferme
f une fois la réponse envoyéee au client. De ce fait, il est difficilee de
quaalifier une applicaation Web d'appllication connectéee. Toutefois, le seerveur
Weeb peut reconnaîttre un utilisateur au fur et à mesurre de ses demand des. Ceci
impplique la gestion d de l'état. Par consséquent, il est possible de reconnaaître un
utillisateur et toutes les informations qu'il a incluses su ur une page Web b d'une
req
quête à l'autre.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
1-18 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Remarque : la gestion de l'état est abordée en détails dans le module 13, « Gestion de
l'état dans les applications Web ».
Vous pouvez vous servir du code côté client sur le client afin d'utiliser des
informations et des contrôles sans envoi vers le serveur. Le code côté client peut
également déclencher une publication par programmation. Le code côté serveur
est uniquement exécuté sur le serveur, mais il peut être utilisé afin d'injecter le
code côté client dans la page rendue sur le client.
ASP.NET rend l'interaction client-serveur négligeable en raison de la
programmation pilotée par les événements dont vous disposez sur HTTP.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Exploration des aapplications Web Microsooft® ASP NET dans Microosoft Visual Studio® 2010 1-19
Présentation d'AS
SP.NET
Points clés
Avant l'aarrivée du .NET F Framework et d'A ASP.NET, les développeurs Web qui q
utilisaieent les technologiies Microsoft imp
plémentaient les sites
s Web dynam miques
à l'aide de la technologiee Classic ASP. Claassic ASP est un code
c interprété, alors
a
que ASP P.NET est un codde compilé. Contrrairement à ASP, ASP.NET
A permett
l'optimiisation des perforrmances, un typaage fort et une liaiison anticipée.
Présen
ntation d'ASP.N
NET
Microso oft ASP.NET est u
un ensemble de teechnologies de développement
d'appliccations Web. ASPP.NET permet auxx programmeurs de générer des siites
Web dyynamiques, des ap pplications Web et des services Web
W WCF. ASP.NE ET
faisant partie
p du .NET Frramework, vous pouvez
p donc dévvelopper des appllications
Web AS SP.NET dans touss les langages .NE
ET. Voici certainss aspects clés d'AS
SP.NET :
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
1-20 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Remarque : pour plus d'informations sur les services WCF, consultez le module 12,
« Utilisation des services Windows Communication Foundation ».
Fonctionnalité Description
Infrastructure de page L'infrastructure de page et de contrôles englobe la
et de contrôles fonctionnalité d'interface utilisateur commune dans des
contrôles réutilisables et simples d'utilisation. Elle offre
également des fonctionnalités pour contrôler l'aspect
général de votre site Web grâce à des thèmes et à des
apparences. En plus des thèmes, vous pouvez définir des
pages maîtres et les utiliser afin de créer une disposition
cohérente pour les pages de votre application.
Compilateur ASP.NET Tout le code ASP.NET est compilé, offrant ainsi un typage
fort, l'optimisation des performances et une liaison
anticipée, entre autres. Une fois le code compilé, le
composant CLR continue de compiler le code ASP.NET
en code natif pour offrir de meilleures performances.
(suite)
Fonctionnalité Description
Services Web WCF ASP.NET prend en charge les services Web WCF. Un
service Web WCF est un composant qui contient des
fonctionnalités métier permettant aux applications
d'échanger des informations à travers des pare-feu,
grâce à des normes comme les messageries HTTP et XML.
Comp
posants des a
applications Web ASP.NET
Points clés
Une app plication Web AS
SP.NET englobe différents
d compossants. Pour la crééation
d'une ap pplication Web, iil est important de
d savoir commennt implémenter et utiliser
tous less composants.
Compo
osants d'une ap
pplication Web
b ASP.NET
Les com
mposants d'une ap
pplication Web ASP.NET
A sont les suivants :
• Forrmulaires Web ou u pages .aspx. Less formulaires Weeb fournissent l'in
nterface
utillisateur de l'application Web.
• Con ntrôles utilisateurr ou fichiers .ascx
x. Les contrôles utilisateur
u fournisssent
l'intterface utilisateurr pour les fonctio
onnalités spécifiqu
ues à réutiliser daans
d'auutres formulaires Web. Par exemp ple, un contrôle utilisateur
u avec zoones
de texte
t et validationn pour la saisie du
d nom d'utilisateeur et du mot de passe.
p
• Pagges maîtres ou fich hiers .master. Less pages maîtres offrent
o une interfaace
utillisateur simplifiéee et cohérente surr les formulaires Web.
W
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Exploration des applications Web Microsoft® ASP NET dans Microsoft Visual Studio® 2010 1-25
Générration et ren
ndu du balisa
age et du cod
de
Points clés
Vous po ouvez créer vos aapplications dans Visual Studio 20 010 en ajoutant du d
balisagee et du code à voss pages Web. Cep pendant, lors de la
l compilation, lees
compilaateurs utilisent vo otre balisage et vo
otre code pour géénérer le balisagee et le
code qu ui s'affichent et see comportent corrrectement sur less clients. Cela signnifie que
le balisaage adhère à certaains standards qu ue les navigateurss des clients inten
ntionnels
peuventt restituer correcttement.
Généra
ation et rendu d
du code
La comp pilation du code pour votre site Web
W par les comp
pilateurs se dérou
ule en
plusieurrs étapes.
• Pour commencer, dans le cadre du déploiement sur le serveur Web sur lequel
le site Web sera exécuté, tous les fichiers du site Web sont copiés sur le
serveur Web de destination. Ce serveur Web peut être local ou distant.
ASP.NET compile les fichiers lorsqu'un utilisateur accède au site Web.
Le compilateur ASP.NET gère le processus de compilation dynamiquement,
sur une base individuelle. Le contenu du site Web est analysé et la compilation
réelle de chaque élément est transmise au compilateur approprié (Visual Basic
ou Visual C#).
Ce compilateur ASP.NET s'appelle le compilateur ASP.NET juste-à-temps.
Cela signifie que les fichiers de code et code-behind en ligne sont compilés.
Les formulaires Web et les contrôles utilisateur sont transformés en définition
de classe avec des méthodes visant à restituer la page ou le contrôle.
• Lors de la compilation d'une application, celle-ci est compilée en une ou
plusieurs assemblys dans le dossier Temporary ASP.NET Files lorsque la
première page est demandée. La première page n'est pas nécessairement la
page d'accueil ou la page par défaut. Les assemblys se trouvent dans un sous-
dossier dont le nom est dérivé d'une convention d'affectation de noms spéciale
qui autorise les noms de répertoire dynamiques et aléatoires. Cela permet de
localiser les assemblys plus facilement lors de la demande.
Ce modèle de compilation est très pratique. Les développeurs peuvent ouvrir
un formulaire Web ou un fichier code-behind correspondant et le modifier,
y compris sur le serveur Live, et les modifications prendront effet
immédiatement. Bien que le code source soit disponible sur le serveur Web,
un utilisateur de site Web ne peut pas nécessairement accéder au code source
et au balisage ; cette opération est restreinte par le serveur Web. Toutefois, le
code source est accessible à tous les utilisateurs de votre réseau possédant les
autorisations d'accès appropriées aux dossiers du serveur Web.
Si la visibilité du code source vous pose un problème, vous pouvez utiliser le
projet d'application Web au lieu du projet de site Web, ou encore utiliser le
modèle de précompilation.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
1-28 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Modè
èle d'exécution de comp
pilation dynamique ASP.N
NET
Points clés
Les pagges Web et les fich
hiers de code ASP
P.NET utilisent par défaut la comp pilation
dynamique lorsqu'un utilisateur demand de une ressource pour
p la première fois. Les
ressourcces compilées sonnt ensuite mises en cache, garantiissant ainsi l'efficaacité des
requêtes suivantes.
L'exécution de la compillation dynamiquee vous permet dee modifier le codee source
sans devvoir compiler exp
plicitement le cod
de avant de déplo
oyer l'application
n Web.
Dans cee modèle, vous déécouvrirez le foncctionnement de la compilation dyynamique
dans ASSP.NET lors de l'eenvoi des informaations au client effectuant la demaande.
Premièère demande
Lorsqu'un client demand de une page Web
b pour la premièrre fois, les événem
ments
suivantss se produisent :
1. Le navigateur
n du client émet une req
quête GET HTTP à l'intention du serveur.
s
2. L'an
nalyseur ASP.NE
ET interprète le co
ode source.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Exploration des applications Web Microsoft® ASP NET dans Microsoft Visual Studio® 2010 1-29
3. Si le code n'est pas encore compilé dans une bibliothèque de liens dynamiques
(DLL, Dynamic Link Libraries), ASP.NET appelle le compilateur.
4. Le runtime se charge et exécute le code Microsoft Intermediate Language
(MSIL).
Deuxième demande
Lorsque l'utilisateur demande la même page Web une deuxième fois, les
événements suivants se produisent :
5. Le navigateur du client émet une requête GET HTTP à l'intention du serveur.
6. Le runtime charge et exécute immédiatement le code MSIL déjà compilé lors
de la première demande de la page.
Remarque : il se peut que le contenu .aspx soit encore analysé, en particulier si la page
de contenu a changé.
Précompilation
Vous pouvez choisir de précompiler un site dans son intégralité avant de le rendre
disponible aux utilisateurs. Les avantages de la précompilation sont les suivants :
• Temps de réponse amélioré pour les utilisateurs, car les pages et les fichiers
de code n'ont pas besoin de compilation à la première demande
• Possibilité d'identifier les erreurs de compilation avant que les utilisateurs
accèdent au site
• Possibilité de déployer le site Web sur un serveur de production sans le code
source
Points clés
Il existee plusieurs framew
works dans le .NET Framework quiq offrent des
fonction nnalités propres à ASP.NET. Deux x d'entre eux sont ASP.NET Ajax
et Dynaamic Data ASP.NE ET.
Présen
ntation d'ASP.N
NET Ajax
ASP.NE ET Ajax est le fram
mework Ajax grattuit de Microsoft. Vous pouvez l'uttiliser
pour déévelopper des app plications Web in
nteractives et réacctives qui fonction nnent
avec less navigateurs les p
plus courants. AS
SP.NET Ajax perm met d'envoyer de manière
asynchrrone une section ou une partie d'u une page Web au serveur et de rép pondre
à la dem
mande du serveurr de façon à ne paas distraire ou intterrompre l'utilisaateur.
Le fram
mework ASP.NET Ajax peut être uttilisé avec le code côté serveur et lees
contrôlees produisant auttomatiquement lee code côté clientt. Ce framework peut p
égalemeent être utilisé po
our la création de contrôles et de code
c JavaScript côôté client.
Le fram
mework ASP.NET Ajax comprend le l kit Ajax Contro ol Toolkit, un enssemble
de contrrôles côté client eextrêmement inteeractif, et la biblio
othèque jQuery, une
u
biblioth
hèque JavaScript ccomplète.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Exploration des applications Web Microsoft® ASP NET dans Microsoft Visual Studio® 2010 1-31
Remarque : pour plus d'informations sur ASP.NET Ajax, consultez le module 11,
« Création d'une application de formulaires Web Ajax Microsoft ASP.NET ».
Remarque : pour plus d'informations sur Dynamic Data ASP.NET, consultez le module 10,
« Gestion des données avec Microsoft Dynamic Data ASP.NET ».
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
1-32 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Leçon 3
Vue d'en
nsemble d
de l'appliication de
e l'atelierr
pratique
e
Objecttifs de la leçon
Au term
me de cette leçon, vous serez à mêm
me d'effectuer less tâches suivantess :
• déccrire le scénario d
de l'atelier pratiqu
ue ;
• déccrire la configurattion de l'applicatiion de l'atelier praatique ;
• exp
plorer le .NET Fraamework ;
• exp
plorer Visual Stud
dio 2010 ;
• afficcher les composaants d'un projet d'application
d Web
b ASP.NET 4.0.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Exploration des aapplications Web Microsooft® ASP NET dans Microosoft Visual Studio® 2010 1-33
Scéna
ario de l'ateliier pratique
Vous êtes développeur ju unior chez Conto oso, Ltd. Une de vos
v missions con nsiste
à créer une
u application W Web de gestion de d la clientèle pou
ur gérer vos clientts
électron
niquement où que vous soyez sur l'intranet, sans in nstaller de logicieel
supplémmentaire sur le cliient. L'application
n Web sera égaleement disponible sur
Internett pour les employyés des sites distaants qui ne sont pas
p connectés à l''intranet.
Pour ce faire, vous devezz choisir un outil et une plateform
me de développem ment qui
vous peermettront de créer une application Web simple avvec un minimum de
codage.
Le déveeloppeur principaal vous recommannde de vous famiiliariser avec les fonctions
f
et foncttionnalités de .NE
ET Framework 4 et Visual Studio 2010,
2 en consultant une
solutionn ou une applicattion Web qui pou
urrait potentiellem
ment servir de prrototype
à un nouveau projet.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
1-34 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Configuration de l'application
n de l'atelier pratique
Exigen
nces de l'applica
ation
L'appliccation doit répondre aux exigencees fonctionnelles et de l'interface utilisateur
u
énumérrées dans les sectiions correspondaantes.
Exigen
nces fonctionneelles
• Offr
frir des possibilitéés de connexion.
• Stocker des lignes d
de clientèle.
• Crééer des lignes de cclientèle.
• Modifier des lignes d
de clientèle existaantes.
• Affiicher des informaations sur un clien
nt unique.
• Affiicher le nom de to
ous les clients daans une vue type feuille de calcul.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Exploration des applications Web Microsoft® ASP NET dans Microsoft Visual Studio® 2010 1-35
• Modifier une ligne de clientèle dans une vue type feuille de calcul.
• Valider les entrées utilisateur, notamment en s'assurant que les informations
requises sont entrées et dans le format correct.
• Stocker des lignes de pays.
• Créer des lignes de pays.
• Modifier des lignes de pays existantes.
• Afficher des informations sur un seul pays.
• Afficher toutes les données relatives au pays dans une vue type feuille de calcul.
• Modifier des données relatives au pays dans une vue type feuille de calcul.
• Accéder directement aux informations relatives à la clientèle ou au pays en
passant par l'ID dans l'URL.
• Proposer toutes les lignes de pays aux fournisseurs et aux clients externes
grâce à un service WCF ou à un formulaire Web indépendant.
Génération d'application
Une seule application sera générée tout au long des modules, même si les exercices
de l'atelier pratique des premiers modules ne font que présenter les concepts à
utiliser dans les modules suivants.
Fonction Description
Chemin de navigation
Le chemin de navigation indique l'emplacement actuel dans l'application et le
chemin de la page ou du formulaire Web.
Page Customers
Les lignes de clientèle sont stockées dans la base de données CustomerManagement,
dans la table Customers. La page Customers affiche les informations suivantes :
Champ Description
(suite)
Champ Description
News Subscriber Champ Boolean indiquant si le client est abonné aux bulletins
d'informations. Le cas échéant, l'adresse de messagerie doit
obligatoirement être renseignée.
Created Date Date à laquelle la ligne de clientèle a été créée dans l'application.
Elle est affectée automatiquement. Ce champ est en lecture seule.
Un client réside dans un pays ; les informations sur ce pays sont enregistrées dans
la table Countries, qui est référencée à partir de la table Customers.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
1-38 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Validation d'entrée
Le formulaire Web Customers permet de valider des entrées grâce à plusieurs
techniques. La validation d'entrée, qui doit avoir lieu à la fois côté client et côté
serveur, comprend les fonctionnalités suivantes :
• Lors de l'ajout ou de la modification d'une ligne de clientèle, vous devrez
renseigner les champs First Name, Last Name, Address, Zip Code, City,
Country et Web Address. Un message s'affichera s'il manque des informations
obligatoires, ou lors de l'enregistrement ou de la mise à jour des informations
client.
• La zone de texte du champ Credit Limit n'accepte que les caractères
numériques et les nombres inférieurs ou égaux à 50 000.
• Le champ E-mail Address doit contenir une adresse de messagerie valide,
le cas échéant.
• Le champ Web Address doit contenir une adresse Web valide (URL).
Page Countries
Les lignes de pays sont stockées dans la table Countries de la base de données
Contoso. La page Countries affiche les informations énumérées dans le tableau
suivant :
Champ Description
(suite)
Champ Description
Internet Top Level Domaine de niveau supérieur (TLD) propre au pays pour les
Domain domaines Internet ; par exemple, .dk pour le Danemark, .de
pour l'Allemagne, .ie pour l'Irlande, .no pour la Norvège ou
.au pour l'Australie. Ce champ est obligatoire.
Validation d'entrée
Le formulaire Web Countries permet de valider une entrée lors de la création ou
de la modification des pays grâce à différentes techniques. La validation d'entrée,
qui doit avoir lieu à la fois côté client et côté serveur, comprend les fonctionnalités
suivantes :
• Lors de l'ajout ou de la modification d'un pays, vous devrez renseigner les
champs Name, Internet Top Level Domain et International Dialing Code.
Un message s'affichera s'il manque des informations lors de l'enregistrement
ou de la mise à jour des données sur le pays.
• La zone de texte du champ International Dialog Code n'accepte que les
caractères numériques au format 999.
Connexion
L'utilisateur doit se connecter et les contrôles de connexion standard ASP.NET
doivent être visibles sur toutes les pages. À l'aide des contrôles de connexion
standard ASP.NET, l'utilisateur peut voir qui vient de se connecter. Il se déconnecte
en cliquant sur le lien approprié. Les noms d'utilisateur et les mots de passe sont
stockés dans la base de données de profil standard ASPNETDB, créée sur
SQL Server 2008 Express Edition.
Page de connexion
La page de connexion vers laquelle les utilisateurs non authentifiés sont
automatiquement redirigés permet à une personne d'entrer son nom d'utilisateur
et son mot de passe pour accéder à l'application. La page de connexion affiche les
informations suivantes :
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
1-40 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Validation d'entrée
Le formulaire Web de connexion fourni permet de valider une entrée lors de
l'authentification d'un utilisateur. La validation d'entrée, qui doit avoir lieu à la
fois côté client et côté serveur, comprend les fonctionnalités suivantes :
• Lors de l'authentification, vous devrez renseigner les champs User name et
Password. Un message s'affichera s'il manque des informations une fois que
l'utilisateur aura cliqué sur le bouton Login.
Base de données
La base de données CustomerManagement est une base de données
SQL Server 2008 contenant deux tables : Customers et Countries.
La table Customers comprend les champs suivants.
Valeur par
défaut / fonction
Nom du Transact-SQL
champ Type de données Taille Obligatoire (T-SQL) Description
(suite)
Valeur par
défaut / fonction
Nom du Transact-SQL
champ Type de données Taille Obligatoire (T-SQL) Description
LastName nvarchar 30 Oui Nom du client. Il s'agit
d'un index non unique
et non mis en cluster,
trié par ordre croissant.
(suite)
Valeur par
défaut / fonction
Obligatoir Transact-SQL
Nom du champ Type de données Taille e (T-SQL) Description
Valeur par
défaut / fonction
Obligatoir Transact-SQL
Nom du champ Type de données Taille e (T-SQL) Description
(suite)
Valeur par
défaut / fonction
Obligatoir Transact-SQL
Nom du champ Type de données Taille e (T-SQL) Description
Pays existants
Une mise à jour mensuelle des lignes de pays est envoyée électroniquement à
Contoso, Ltd. Ces lignes sont ensuite placées dans un fichier XML unique. Ces
données doivent être importées dans la table Countries. Toutefois, cela concerne
uniquement les pays contenant une valeur dans le champ PhoneNoFormat.
Procé
édure pas à p
pas : solution
n de l'atelier pratique
Démo
onstration : e
exploration du
d .NET Fram
mework
Points clés
Dans ceette démonstratio
on, vous examinerez le .NET Fram mework dans le caadre du
dévelop
ppement d'une ap pplication Web ett explorerez les extensions
ASP.NEET Framework, no otamment Ajax Extensions,
E Ajax Library
L et Dynam
mic Data.
Procéd
dure de démonsstration
Les tâch
hes principales so
ont les suivantes :
1. Ouvvrez Visual Studiio 2010.
• Dans le menu D
Démarrer de 10557A-GEN-DEV, pointez
p sur Touss les
programmes, clliquez sur Microsoft Visual Studio 2010, puis surr
Microsoft Visua
al Studio 2010.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Exploration des applications Web Microsoft® ASP NET dans Microsoft Visual Studio® 2010 1-47
Procéd
dure de démonsstration
Les tâch
hes principales so
ont les suivantes :
1. Ouvvrez Microsoft Viisual Studio 2010
0.
• Dans le menu D
Démarrer de 10557A-GEN-DEV, pointez
p sur Touss les
programmes, clliquez sur Microsoft Visual Studio 2010, puis surr
Microsoft Visua
al Studio 2010.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Exploration des applications Web Microsoft® ASP NET dans Microsoft Visual Studio® 2010 1-49
Démoonstration : e
explorer les composants
c d'un projet
d'app
plication Webb ASP.NET 4.0
Dans ceette démonstratioon, vous examinerez les différents composants d'un n projet
d'appliccation Web, notammment le fichier solution, le fichieer projet, les dosssiers
ASP.NE ET, les formulaires Web, les fichierrs code-behind, lees fichiers de classse, le
fichier d'informations
d dee l'assembly, les références, les fich
hiers web.config ete les
fichiers de code du conccepteur.
Procéd
dure de démonsstration
Les tâch
hes principales so
ont les suivantes :
1. Exaaminez les fichierrs solution et projjet, ainsi que les références.
r
• Dans l'Explorateeur de solutions, repérez les fichieers solution et projet,
et identifiez la d
destination des rééférences de projeet.
2. Exaaminez les dossieers ASP.NET.
• Dans l'Explorateeur de solutions, passez en revue les dossiers ASP..NET,
et si le temps le permet, créez-en
n un.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
1-52 Introduction au développement Web avec Microsoft® Visual Studio® 2010
3. Examinez les formulaires Web, les fichiers de code du concepteur, les fichiers
code-behind et les fichiers de classe.
• Dans l'Explorateur de solutions, passez en revue les différents fichiers.
4. Examinez le fichier d'informations de l'assembly et les fichiers web.config.
• Dans l'Explorateur de solutions, passez en revue les différents fichiers.
Récap
pitulatif de l'atelier pratiq
que
Parcou
urir les question
ns et les répon
nses
1. Quels sont les princcipaux avantages de l'utilisation d'A
ASP.NET ?
2. Quel est la fonction des fichiers codee-behind dans ASP.NET ?
3. À quoi
q servent les fo
ormulaires Web ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
1-54 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Récapitu
ulatif du m
module et
e élémen
nts à retenir
Parcou
urir les question
ns et les répon
nses
1. Quels sont les comp
posants de .NET Framework
F 4?
2. Quel est la fonction des listes de con
ntrôle d'accès ?
3. Vouus devez créer un
n composant Web b programmable pour le partager entre
plusieurs application
ns Web. Quel typ
pe de composant devez-vous créerr ?
4. Vouus devez développper une applicatiion contenant dees projets qui cibllent
plusieurs versions d
de .NET Framewo ork. Quel outil utiilisez-vous ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Exploration des applications Web Microsoft® ASP NET dans Microsoft Visual Studio® 2010 1-55
Outils
Outil Objectif Où rechercher
Module 2
Création d'applications Web à l'aide de
Microsoft® Visual Studio® 2010 et des
langages Microsoft .NET
Table des matières :
Leçon 1 : Sélection d'un langage de programmation 2-3
Leçon 2 : Présentation générale de Visual Studio 2010 2-15
Leçon 3 : Création d'une application Web simple 2-33
Atelier pratique : Création d'applications Web à l'aide de Microsoft
Visual Studio 2010 et des langages Microsoft .NET 2-54
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-2 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Vue d'en
nsemble du modu
ule
Leçon 1
Sélection d'un la
angage de
e program
mmation
n
Points clés
Pour crééer vos applicatio ons Web, vous diisposez d'un largee choix de langagges de
program mmation. Pendan nt de nombreusess années, le choix x des programmeurs en
matière de langage de prrogrammation déépendait de la plaateforme disponib ble, du
framework et de l'enviro onnement de déveeloppement intéggré (IDE), bien qu ue
certainss programmeurs ssélectionnaient un u langage de pro ogrammation uniq quement
car ils en
n appréciaient la ssyntaxe. Néanmoin ns, tout ceci a chaangé avec l'arrivée de .NET
Framew work, car cette inffrastructure ne déépend pas du lan ngage de program mmation.
En effett, le langage MSIL L (Microsoft interrmediate languagge) lancé au mom ment de
l'exécuttion est converti een code machine lorsque le prograamme est exécuté par le
Commo on Language Run ntime (CLR) .NET T.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-4 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Objectifs de la leçon
Au terme de cette leçon, vous serez à même d'effectuer les tâches suivantes :
• décrire les fonctionnalités de Visual Basic ;
• décrire les fonctionnalités de Visual C# ;
• décrire les scénarios adaptés aux environnements faisant appel à plusieurs
langages ;
• décrire les éléments à prendre en considération afin de choisir entre
Visual Basic et Visual C# pour une application.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Viisual Studio® 2010 et des langages Microsoft .NET 2-5
Foncttionnalités de
e Visual Basiic
Points clés
Bien quue la version actueelle de Visual Bassic 10.0 soit conççue autour de .NE ET
Framew work, si vous avezz l'habitude de déévelopper des app plications sous Visual
V
Basic 6.0, ou une versionn antérieure, baséé sur le modèle COMC (Componen nt Object
Model), vous trouverez VVisual Basic 10.0 siimple d'utilisation
n. Alors que Visuall Basic 6.0
néralement utiliséé pour créer des composants COM
était gén M et des applicatiions
Window ws®, Visual Basic 10.0 permet de développer
d tout type
t d'application
n ou de
service .NET Framework k, notamment dess applications Weeb, des applicatio ons
Window ws Forms, des serrvices Windows Communication
C Foundation (WC CF), des
applicattions Web Asynch hronous JavaScrip pt and XML (Ajax x), des application
ns Smart
Device et
e des applicationns Microsoft Silveerlight®.
Si vous avez déjà utilisé u une version précédente de Visual Basic, vous aurezz
l'impresssion que peu de choses ont changé, bien que de nombreux
n ajouts
mple, des modificaations ont été apportées à
enrichisssent la nouvelle vversion. Par exem
la finalissation déterminisste COM, qui est désormais rempllacée par la foncttionnalité
de garbage collection dee CLR. Ceci a perm mis d'éliminer la finalisation déterrministe
et de réd duire ainsi le gasp
pillage de mémoire causé par les objets non demandés.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-6 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Question : comment les espaces de noms sont-ils utilisés dans Visual Basic ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-8 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Foncttionnalités de
e Visual C#
Points clés
Visual C#
C a toujours ciblé .NET Framewo ork et il ne comprend plus aucunee
fonction
nnalité des versio
ons précédentes qui q ciblaient d'autres plateformes. La
version actuelle de Visuaal C# 4.0 contien nt de nombreusess fonctionnalités
supplémmentaires et la syn
ntaxe a été améliiorée de façon siggnificative depuis la
version 1.0. Visual C# 4..0 permet de développer tout typee d'application ou u de
service .NET Framework k, notamment dess applications Weeb, des applicatio ons
Window ws Forms, des serrvices WCF, des applications Web b Ajax, ainsi que des
applicattions Smart Devicce et Silverlight.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-9
Lorsque vous créez des types à l'aide de l'Éditeur de texte Visual C#, l'espace de
noms par défaut est ajouté automatiquement à mesure que vous tapez le code.
L'Éditeur de texte Visual C# comprend plusieurs options de refactorisation du code.
Pour appeler une option, cliquez avec le bouton droit sur un mot clé ou sur le texte
sélectionné, puis, dans le menu contextuel, sélectionnez l'action appropriée. Vous
avez la possibilité d'effectuer les actions suivantes :
• Renommer les variables.
• Promouvoir une variable locale en paramètre dans une méthode.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-10 Introduction au développement Web avec Microsoft® Visual Studio® 2010
• Extraire une méthode. Cette opération implique la copie d'un texte existant afin
de l'inclure dans une nouvelle méthode.
• Encapsuler un champ. Pour cela, vous devez créer une propriété pour un membre
de champ existant.
• Supprimer et réorganiser des paramètres.
if () {}
switch () {}
for () {}
foreach () {}
void {}
class {}
namespace {}
Dans Visual C#, le code respecte la casse. Certaines variables se distinguent donc
uniquement par la casse. Toutefois, ceci n'est pas recommandé, car cela rendrait
votre code plus difficile à lire, à comprendre et à déboguer.
Visual C# est totalement orienté objet, ce qui signifie que vous ne pouvez pas créer
de variables ou de constates globales ou de niveau application. Cependant, les
classes et membres static permettent de créer l'illusion de variables et constantes
globales, comme le montre le code suivant.
Dans Visual C#, chaque projet possède un espace de noms par défaut appliqué
automatiquement à tous les types que vous créez. Si l'espace de noms par défaut
est CompanyName.ApplicationName et que vous disposez d'un espace de noms
pour un type spécifique (par exemple, Services.Customers), l'espace de noms réel
du type est Services.Customers, car l'espace de noms par défaut est ignoré. En
outre, les types contenus dans les sous-dossiers d'un projet sont automatiquement
créés avec un espace de noms. Celui-ci est composé de l'espace de noms par défaut
du projet, suivi du nom du dossier. Par conséquent, si un type est stocké dans un
sous-dossier nommé Test et que l'espace de noms par défaut est
CompanyName.ApplicationName, l'espace de noms réel de ce type est
CompanyName.ApplicationName.Test. Vous pouvez substituer cette valeur en
indiquant l'espace de noms complet du type dans le code.
Dans Visual C#, les instructions se terminent par un point-virgule. Les commentaires
peuvent figurer sur une seule ligne ou sur plusieurs, comme suit.
// Single line
/* Multi
line */
Par défaut, la majorité du code dans Visual C# est fondamentalement sûre, mais les
constructions de langage non sécurisées (par exemple, les pointeurs) sont autorisées.
Par défaut, les opérations numériques ne sont pas vérifiées, ce qui permet les
dépassements de capacité numérique positifs et négatifs.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-12 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Scéna
arios adaptéss aux environ
nnements à plusieurs lan
ngages
Points clés
Lorsquee vous travaillez d
dans un environn nement de prograammation avec plusieurs
p
développpeurs, vous pouvvez être confrontté à des projets ett solutions présen ntant
différen
nts langages de prrogrammation .N NET Framework, telst que Visual Baasic et
Visual C#.
C Par conséqueent, en tant que développeur,
d vouss devez comprend dre au
moins ces
c deux langagess, car il est très prrobable que vouss les utiliserez tou
us deux.
Vous deevrez peut-être co
opier des fonctionnnalités écrites daans un langage ded
programmmation différent de celui que vou us maîtrisez le mieux.
m Selon la quuantité de
code, vo
ous copierez des lignes de code, puis
p les traduirez dans le langage de d
programmmation de votre choix, ou vous ajjouterez un projett à votre solution actuelle.
Si vous ajoutez un projet à la solution acttuelle, celle-ci est alors composée d'au
moins deux
d projets, écrits dans deux langgages de program mmation différentts. Ceci
est une réalité quotidiennne pour de nomb breux développeu urs .NET. C'est pourquoi,
même sis vous ne maîtrissez pas les deux laangages, vous deevez au moins savvoir lire
et compprendre le code écrit dans ces langgages.
Questio
on : dans quels sccénarios réels utiilise-t-on plusieurrs langages ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Viisual Studio® 2010 et des langages Microsoft .NET 2-13
Points clés
Visual Studio
S 2010 incluut les compilateurrs et éditeurs Visu
ual Basic et Visuaal C#, ce
qui vouss permet de choisir le langage de prrogrammation quii vous convient. Cependant,
C
cela imp
plique également que vous choisisssiez un langage de programmation n lorsque
vous déémarrez un nouveeau projet.
Parfois, vous êtes autorissé à choisir le lan ngage de program mmation d'un nou uveau
projet. Toutefois,
T la décision a quelques fois
f déjà été prisee par un architectte ou un
responssable d'équipe, ett vous devez travaailler au sein de l''équipe en appliq quant
cette déécision. Pour des projets d'envergu ure plus modestee, la décision vouss
reviendra peut-être si la société ou le servvice pour lequel vous v travaillez n'aa pas
encore déterminé
d l'usagee exclusif de l'un des langages de programmation. Dans ce
cas-là, ill existe certains ééléments à prendrre en considératio on avant de sélecctionner
le langaage de programm mation le plus adap pté à votre projett.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-14 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Votre décision peut également être influencée selon que vous préférez la syntaxe
détaillée de Visual Basic, ou la composition plus concise de Visual C# et l'utilisation
d'accolades associée. Très souvent, il s'agit du facteur que les nouveaux
développeurs .NET examinent en premier, en particulier s'ils n'ont pas l'expérience
de Microsoft Visual C++® ou Visual Basic classique.
En définitive, la décision repose généralement sur les préférences.
Question : quels sont les problèmes éventuels que vous devrez gérer dans un
environnement à plusieurs langages ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Viisual Studio® 2010 et des langages Microsoft .NET 2-15
Leçon 2
Présenta
ation générale de Visual Studio 201
10
Visual Studio
S 2010 est uun outil complet permettant
p de crééer tous les typess
d'appliccations .NET Fram mework, notamm ment les applicatio
ons et services Web.
W Il est
compossé d'un IDE, intèggre .NET Framew work, et permet laa génération d'app plications
et de services à partir de .NET Framework versions 2.0, 3..0, 3.5 et 4.
L'IDE de
d Visual Studio 22010 consiste en une interface utillisateur commun
ne, et en
un enseemble d'outils que vous pouvez uttiliser pour tous les
l types de projeets et
langagees de programmattion pris en chargge par Visual Studdio 2010.
Objecttifs de la leçon
Au term
me de cette leçon, vous serez à mêm
me d'effectuer less tâches suivantess :
• déccrire les avantagess qu'apporte l'utillisation de Visuall Studio 2010 ;
• iden
ntifier les modèlees de projet dispo
onibles ;
• déccrire les fonctionn
nalités de l'IDE ;
• iden
ntifier les élémen
nts d'une page de démarrage Visuaal Studio 2010.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-16 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Points clés
Visual Studio
S 2010 simp plifie le développeement de solution
ns Web d'entreprrise
puissan
ntes et fiables. En outre, Visual Stu
udio 2010 permett d'augmenter l'effficacité
du déveeloppeur grâce à sson environnemeent de développeement familier et partagé.
Lorsquee vous lancez Visual Studio 2010 pour la premièree fois, vous êtes in
nvité à
indiqueer les paramètres de votre environnement de développement.
Visual Studio
S 2010 fourn nit des composan nts prégénérés et des assistants dee
programmmation, et offre la possibilité de réutiliser
r des com mposants écrits dans
d un
langagee de programmatiion quelconque. Cela C permet de rééduire le temps de d
développpement de façon n significative. Grâce à la saisie sem
mi-automatique de
d code
basée suur IntelliSense , vvous pouvez prod duire rapidementt un code correct.. La prise
en chargge du débogage p puissant, de boutt en bout et interllangage permet ded rendre
vos app
plications plus fiab bles.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-17
IDE unique
Grâce à l'IDE unique de Visual Studio 2010, vos projets possèdent une apparence
cohérente, quel que soit le langage de programmation que vous utilisez ou le type
d'application que vous développez. Visual Studio 2010 prend en charge le
développement dans plusieurs langages de programmation .NET Framework. Cette
prise en charge vous permet d'utiliser le langage de programmation que vous préférez,
car vous n'êtes plus obligé d'apprendre un nouveau langage de programmation pour
chaque nouveau projet. Vous pouvez également employer l'IDE lors de la phase de
conception et de test du cycle de vie du développement. Par exemple, Visual Studio
2010 fournit des diagrammes de classes et des tests unitaires.
Navigateur intégré
Visual Studio 2010 contient un navigateur intégré basé sur Windows Internet
Explorer®. Ce navigateur est intégré à l'IDE, et il est accessible depuis plusieurs
fenêtres et menus. L'accessibilité du navigateur vous permet de consulter votre
site Web pendant le cycle de développement, au lieu de devoir utiliser un autre
programme.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-18 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Le déploiement peut s'effectuer sur le système de fichiers local, un site basé sur
Internet Information Services (IIS) ou un serveur FTP. Les deux dernières
possibilités peuvent être locales ou distantes.
Remarque : vous devez utiliser IIS pour héberger l'application Web déployée. IIS est un
serveur Microsoft Web regroupé avec les implémentations client et serveur du système
d'exploitation Windows. Le protocole FTP (File Transfer Protocol) est un protocole réseau
qui permet d'échanger et de manipuler des fichiers sur un réseau. Cela signifie en général
que vous souhaitez ouvrir le site Web cible avec le serveur de développement Web.
Question : quel est le serveur Web utilisé par défaut lorsque vous créez des
applications Web dans Visual Studio 2010 ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Viisual Studio® 2010 et des langages Microsoft .NET 2-19
Modè
èles de proje
et disponible
es
Points clés
Visual Studio
S 2010 fourn nit des modèles prenant
p en charge la création de plusieurs
p
types dee projets courantts. Ces modèles co
ontiennent tous les
l fichiers requiss et
permetttent de vérifier qu
ue l'IDE présente la configuration appropriée pourr le projet
sélection
nné.
Lorsquee vous utilisez ces modèles, vous n'êêtes pas obligé de configurer l'infrasstructure.
En d'autres termes, le modèle crée autom matiquement les dossiers
d et fichiers requis
par le tyype de projet spécifique. Par consééquent, vous pou uvez vous concen ntrer sur
l'ajout de
d fonctions à voss projets.
Solutio
ons et projets
Lorsquee vous créez un p projet dans Visual Studio 2010, vo
ous créez égalemeent un
conteneeur plus volumineux, appelé une solution.
s Cette dernière peut conteenir
plusieurrs projets tout co
omme un conteneeur de projets peu ut comporter plu
usieurs
pages.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-20 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Les solutions vous permettent de vous concentrer sur le projet ou sur un ensemble
de projets nécessaires pour développer et déployer votre application ; vous n'êtes
pas obligé de vous attarder sur les détails de gestion des objets et des fichiers qui
les définissent.
Une solution vous permet d'effectuer les opérations suivantes :
• travailler sur plusieurs projets dans une même instance de l'IDE ;
• travailler sur des éléments, paramètres et options s'appliquant à un groupe de
projets ;
• gérer divers fichiers en dehors du contexte d'une solution ou d'un projet.
Vous pouvez utiliser l'Explorateur de solutions, qui fournit une vue graphique de
votre solution, pour organiser et gérer tous vos projets et fichiers d'application.
Modèles de projet
Visual Studio 2010 inclut plusieurs modèles de projet triés par langage et par type.
Pour sélectionner le modèle approprié, vous devez au préalable indiquer le langage
que vous souhaitez utiliser.
Le tableau suivant répertorie quelques-uns des modèles de projet Visual Basic et
Visual C# disponibles.
Bibliothèque de classes Crée des classes et composants réutilisables que vous pouvez
partager avec d'autres projets.
Application Web Crée une application Web ASP.NET avec les fichiers du
ASP.NET serveur de base requis pour votre application.
Site Web ASP.NET Crée un site Web ASP.NET avec les fichiers du serveur de
base requis pour votre site Web.
Application de Crée un service WCF qui peut être utilisé par d'autres
service WCF services ou applications WCF sur un réseau.
Les services WCF sont des composants disponibles sur
Internet. Ils sont conçus pour interagir uniquement avec
d'autres applications Web.
(suite)
Site Web Dynamic Data Crée un site Web ASP.NET avec les fichiers de serveur de
ASP.NET Entities base requis pour votre site Web et offre une prise en charge
de Dynamic Data basée sur un modèle Entity Data Model.
Site Web Dynamic Data Crée un site Web ASP.NET avec les fichiers de serveur de
ASP.NET LINQ To SQL base requis pour votre site Web et offre une prise en charge
de Dynamic Data basée sur un LINQ To SQL Data Model.
Question : quels sont les autres modèles de projet disponibles dans Visual Studio
2010 ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-22 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Foncttionnalités de
e l'environne
ement de dé
éveloppemen
nt
intégrré
Points clés
L'IDE de
d Visual Studio 2 2010 contient plu usieurs fenêtres proposant
p une pallette
d'outils et de services. De nombreuses fon nctionnalités de Visual
V Studio 2010 sont
disponiibles dans plusieu urs fenêtres, mennus et barres d'outils de l'IDE. Vou us pouvez
déplacerr ou masquer les ffenêtres de l'IDE, en
e fonction de voss préférences perssonnelles.
Le menu u Affichage vous p permet de sélectioonner les fenêtress à afficher. Pour convertir
c
les fenêtres statiques en fenêtres mobiles, cliquez sur le bo outon Masquer
automa atiquement.
Fenêtree Éditeur
La fenêttre Éditeur est la fenêtre principale de l'interface daans Visual Studioo 2010.
Elle affiche le code pour le processus de modification
m et fo
ournit une interfaace
graphiqque pour le positionnement des co ontrôles sous form me d'interface WY YSIWYG
(What You
Y See Is What Y You Get). Pour crréer la conception n visuelle de votrre
applicattion, vous pouvezz utiliser l'option de modification par glisser-déplacer. Vous
pouvez ensuite gérer la conception logiqu ue de votre applicaation en modifiannt le code
du conttrôle Web par déffaut.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-23
Les options de fenêtre de l'éditeur sont les modes Création, Fractionné et Source :
• En mode Création, vous pouvez utiliser l'éditeur pour déplacer les contrôles
et les éléments graphiques dans la fenêtre par le biais de l'opération de
glisser-déplacer. Lorsque vous ajoutez un contrôle à une page Web en mode
Création, Visual Studio 2010 ajoute le code de prise en charge et les propriétés
par défaut au formulaire Web. Vous pouvez ensuite passer en mode Source
et modifier le code.
• En mode Source, Visual Studio 2010 met votre code en surbrillance afin que les
différents éléments (par exemple, les noms de variable et les mots clés) soient
identifiables instantanément. La fonctionnalité IntelliSense fournit des
suggestions de saisie semi-automatique et permet de créer des fonctions par de
simples sélections dans la liste de syntaxe disponible.
• En mode Fractionné, l'éditeur est divisé en deux fenêtres : une fenêtre pour la
surface de conception de la page Web et une autre pour le code source de la
page Web.
Lorsque vous utilisez la fenêtre Éditeur en mode Source, deux listes déroulantes
apparaissent dans la partie supérieure de celle-ci : la liste Nom de la classe à
gauche et la liste Nom de la méthode à droite. La liste Nom de la classe présente
tous les contrôles du formulaire associé. Si vous cliquez sur un nom de contrôle, la
liste Nom de la méthode affiche tous les événements du contrôle concerné. Les
événements sont des actions que le contrôle peut exécuter et que votre application
peut interpréter. L'utilisation conjointe des listes Nom de la classe et Nom de la
méthode vous permet de localiser et de modifier le code de votre application
rapidement.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-24 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Volet Explorateur
E de solutions
Lorsquee vous cliquez su ur l'onglet Exploraateur de solution ns, le volet Explorrateur de
solutionns apparaît ; celuii-ci répertorie unee hiérarchie des fichiers
f de projet.. Dans ce
volet, vo
ous pouvez effecttuer les opération ns suivantes :
• effeectuer une opérattion de glisser-dép
placer pour réorgganiser les élémen
nts ;
• séleectionner un élém
ment dans le volet Explorateur de solutions afin d'en
n afficher
les propriétés dans lla fenêtre Propriéétés.
Volet Propriétés
Visual Studio 2010 vous permet de paramétrer les propriétés de documents, de
classes et de contrôles dans une seule fenêtre Propriétés. Lorsque vous créez ou
sélectionnez un élément, le volet Propriétés affiche automatiquement les propriétés
associées.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-26 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Volet Sortie
Le volet Sortie affiche les messages d'état des différentes fonctionnalités de l'IDE.
Vous pouvez programmer vos propres applications de sorte que les messages de
diagnostic soient écrits dans la fenêtre au moment de l'exécution.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-27
Question : quels sont les quatre modes disponibles pour les éditeurs et les
concepteurs ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-30 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Page de démarrag
ge de Visual Studio 2010
0
Points clés
La pagee de démarrage dee Visual Studio 20102 permet de crréer des projets ou
o d'y
accéderr facilement, de découvrir les versiions de produits et conférences à venir,
v ou
de lire les derniers articlees sur le développement. Par défaaut, la page de dém
marrage
apparaît lorsque vous lan ncez Visual Studiio 2010. Vous po ouvez également y accéder
à partir du menu Afficha age, en cliquant sur
s Page de déma arrage.
Vous poouvez modifier less paramètres de démarrage
d par déffaut de Visual Stu
udio 2010
dans la boîte de dialoguee Options, afin d'activer
d une des actions
a suivantes au
démarraage :
• afficcher la page d'acccueil définie danss votre navigateur ;
• ouvvrir la dernière so
olution chargée ;
• afficcher la boîte de d
dialogue Ouvrir un
u projet ;
• afficcher la boîte de d
dialogue Nouveau
u projet ;
• afficcher un environn
nement vide ;
• afficcher la page de d
démarrage.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-31
Question : quelle zone et quel onglet de la page de démarrage affichent la liste des
rubriques d'aide, des sites Web, des articles techniques et des autres ressources ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Viisual Studio® 2010 et des langages Microsoft .NET 2-33
Leçon 3
Création
n d'une ap
pplication
n Web sim
mple
Visual Studio
S 2010 vouss permet de générrer votre propre application
a Web ASP.NET
du débuut à la fin. Lorsqu
ue vous travaillez sur des projets, Visual
V Studio 2010 crée
plusieurrs fichiers prenan
nt en charge votree développementt. Dans cette leçonn, vous
apprenddrez à créer, généérer et afficher un
ne application Weeb ASP.NET simp ple.
Objecttifs de la leçon
Au term
me de cette leçon, vous serez à mêm
me d'effectuer less tâches suivantess :
• déccrire la procéduree de développemeent des pages d'aapplication Web ASP.NET
A ;
• déccrire les fichiers et dossiers de projjet d'application Web
W dans Visuall Studio
20110 ;
• déccrire les fichiers et dossiers de projjet de site Web dans
d Visual Studio
o 2010 ;
• cho
oisir entre un projjet de site Web et un projet d'application Web ;
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-34 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Proce
essus de déve
eloppement d'une appliccation Web
Points clés
Visual Studio
S 2010 conttient tout ce dont vous avez besoin
n pour générer vootre
propre application
a Web ou site Web ASP P.NET du début à la fin. Pour créerr une
applicattion Web ASP.NE
ET à l'aide de Visuual Studio 2010, procédez commee suit :
1. Crééez une spécificattion de conceptio on. La spécificatio
on de conception est le
modèle à utiliser pou ur créer une appliication Web. Prennez le temps de cooncevoir
votrre application avaant d'écrire le cod
de. Bien que Visuual Studio 2010 fo ournisse
dess outils vous permmettant de dévelo opper une solutioon rapidement, vo ous
pouuvez concevoir vo otre application de
d façon plus efficcace si vous conn
naissez
parrfaitement les bessoins des utilisateeurs et l'ensemblee de fonctionnalittés.
L'uttilisation d'une sp
pécification de coonception vous permettra égalemeent de
gaggner du temps en réduisant au min nimum la possibiilité de réécrire du code
nonn approprié ou reedondant.
Visuual Studio fourniit le Concepteur de d classes qui vou us permet de visu
ualiser la
stru
ucture des classess et leurs relationss. Vous pouvez faccilement créer des classes
et refactoriser les claasses actuelles à l'aide
l de cet envirronnement de connception
visu
uelle.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-36 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Après avoir défini les propriétés initiales du formulaire Web ASP.NET et de ses
objets, vous pouvez écrire les procédures d'événement qui s'exécuteront au
moment de l'application de différentes actions à un contrôle ou à un objet.
Vous devrez peut-être également écrire du code pour ajouter la logique métier
et accéder aux données.
Remarque : pour plus d'informations sur l'écriture de code dans des formulaires Web
ASP.NET, consultez le module 4, « Ajout de fonctionnalités à un formulaire Web
Microsoft ASP.NET ».
4. Générez un projet. Lorsque vous générez un projet, Visual Studio génère tout
le code sur les pages Web et les autres fichiers de classe dans une bibliothèque
de liens dynamiques (DLL), formant ce que l'on appelle un assembly. Visual
Studio 2010 possède deux options de génération : Débogage (Debug) et Version
finale (Release). Lorsque vous développez un projet pour la première fois, vous
générez des versions de débogage. Lorsque vous êtes prêt à publier le projet,
vous créez une version finale de celui-ci.
Vous pouvez générer, régénérer ou nettoyer un projet individuel ou l'intégralité
de la solution.
• Générer. Visual Studio ne compile que les fichiers et composants de projet
ayant été modifiés depuis la dernière génération. En général, vous ne générez
que votre projet ou solution.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-37
6. Déployer. Lorsque votre projet est entièrement débogué et que vous avez généré
une version finale, vous déployez les fichiers nécessaires dans un serveur Web.
Remarque : pour plus d'informations sur le déploiement d'une application Web ASP.NET,
consultez le module 14, « Configuration et déploiement d'une application Web
Microsoft ASP.NET ».
Fichie
ers et dossierrs de projet d'une
d appliccation Web
Points clés
Dans Viisual Studio 2010
0, vous pouvez crréer une applicatiion Web en utilissant le
modèle de projet d'appliication Web ASP..NET.
Le projeet d'application W Web offre un contrôle plus strict que
q le projet de siite Web
car il dééfinit les ressourcces de façon expliicite.
Fichierrs de modèles d
de projet d'app
plication Web
Lorsquee vous créez une aapplication Web à l'aide du modèlee de projet d'application
Web AS SP.NET, Visual Sttudio 2010 crée un u dossier Solutio on contenant le fiichier
solution
n .sln. Ce fichier cconstitue un map
ppage de l'ensemb ble des fichiers reeliant un
ou plusieurs projets ; il sstocke égalementt des informations globales. En ou utre , le
dossier Solution contien nt les sous-dossierrs et fichiers répeertoriés dans le taableau
suivant..
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-39
(suite)
Remarque : par défaut, les dossiers Bin et Obj sont masqués. Dans l'Explorateur de
solutions, cliquez sur le bouton Afficher tous les fichiers pour afficher les dossiers.
Lorsque vous générez un projet d'application Web ASP.NET, Visual Studio 2010
crée un assembly dans le dossier Bin du projet. Un assembly est un fichier .dll créé
à partir de toutes les pages code-behind constituant une application Web. Un fichier
solution (.sln) est également créé. Ce fichier porte le même nom que le projet, suivi
de l'extension .sln ; il contient des informations sur les projets et divers fichiers qui
ne sont pas propres au projet. Initialement, le fichier solution ne contient que des
informations relatives au projet d'application Web. Pour ouvrir un projet
d'application Web ASP.NET précédemment créé, ouvrez le fichier solution dans
Visual Studio 2010.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-41
Fichie
ers et dossierrs de projet d'un
d site We
eb
Points clés
Dans Viisual Studio 2010
0, vous pouvez crréer un site Web en utilisant le mo
odèle de
projet de
d site Web ASP.NNET.
En génééral, le modèle dee projet de site Web
W offre plus de fonctionnalités ett une
flexibilitté accrue en matièère de gestion dess applications Weeb par rapport au modèle
de projeet d'application WWeb.
Fichierrs de modèles d
de projet de sitte Web
Lorsquee vous créez un ssite Web à l'aide du d modèle de pro ojet de site Web ASP.NET,
A
Visual Studio
S 2010 crée u
un dossier Solution n pour le projet. Cependant,
C contraairement
au dosssier Solution du pprojet d'applicatio on Web, le fichierr solution .sln n'eest pas
contenu u dans le dossier. En effet, ce fichierr est stocké par défaut
d dans le souss-dossier
Visual Studio
S 2010\Projeets du dossier Do ocuments de l'utiliisateur. Ce fichierr stocke
certainees informations coontenues dans le fichier
f projet, si vous
v créez un projjet
d'appliccation Web. Ceci eest nécessaire à l'iidentification du contenu
c du projet de site
Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-43
Lorsque vous publiez un projet de site Web, Visual Studio 2010 peut créer plusieurs
assemblys pour ce site Web. Pour ouvrir un projet de site Web ASP.NET
précédemment créé, ouvrez le fichier Solution dans Visual Studio 2010. Vous pouvez
également ouvrir le fichier en passant par le menu Fichier, puis en cliquant sur
Ouvrir et Site Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-44 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Choisir entre un p
projet de Site
e Web et un projet
plication Web
d'app b
Points clés
Dans Viisual Studio 2010
0, vous pouvez crréer une applicatiion Web en utilissant le
modèle de projet d'appliication Web ASP..NET ou le modèèle de projet de site Web
ET.
ASP.NE
La sélecction d'un modèlee de projet dépen nd de vos besoinss et du flux de traavail de
développpement que vouss préférez. Certain ns développeurs trouveront
t que le modèle
de projeet de site Web estt simple d'utilisattion, car les resso
ources sont définiies de
façon immplicite du fait qu u'elles se trouven
nt dans un dossierr. D'autres dévelooppeurs
préfèrerront utiliser le mo odèle de projet d'application Web b qui leur offre plu
us de
contrôlee sur leur projet, ccar les ressources sont définies exp
plicitement dans le
l fichier
projet.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-45
Fichie
ers d'applicattion Web
Points clés
Dans Viisual Studio 2010
0, vous pouvez crééer différents typees de fichiers pourr prendre
en chargge le développem
ment de votre appplication Web.
Fichierrs d'application
n Web
Visual Studio
S 2010 prend
d en charge les tyypes et extensionss de fichiers d'app
plication
suivantss :
• Forrmulaires Web AS SP.NET (.aspx). Les
L formulaires WebW ASP.NET vou us
perrmettent de générrer des sites Web dynamiques aux xquels les utilisatteurs
peuuvent accéder direectement. Les forrmulaires Web AS SP.NET sont priss en
chaarge par un fichier code-behind déésigné par l'exten
nsion WebForm.aaspx.vb
ou WebForm.aspx.c
W cs.
• Servvices WCF (.svc)). Les services WCCF permettent dee créer des servicees
aux
xquels seuls d'auttres programmes auront accès. Ils sont basés sur des
d
con
ntrats ou des interrfaces, ainsi que sur
s des fichiers code-behind (.vb ou
o .cs).
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-47
Remarque : pour plus d'informations sur les pages code-behind, consultez le module 4,
« Ajout de fonctionnalités à un formulaire Web Microsoft ASP.NET ».
Remarque : pour plus d'informations sur les pages maître, consultez le module 5,
« Implémentation de pages maître et de contrôles utilisateur ».
• Fichiers de ressources (.resx). Une ressource est une donnée non exécutable,
déployée logiquement avec une application. Une ressource peut être affichée
dans une application en tant que message d'erreur ou en tant que partie
intégrante de l'interface utilisateur. Les ressources peuvent contenir des données
sous différentes formes, telles que des chaînes, des images et des objets enregistrés.
Le stockage de vos données dans un fichier de ressources vous permet de modifier
les données sans recompiler l'ensemble de votre application.
• Styles.css. Un style CSS est un mécanisme simple d'ajout de styles (par exemple,
des polices, couleurs et espacements) à des documents Web. Styles.css est la
feuille de style par défaut de l'application Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-48 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Démo
onstration : C
Comment cré
éer un proje
et d'applicatiion
Web simple
s
Points clés
Dans ceette démonstratio
on, vous apprendrez à créer une ap
pplication Web.
Procéd
dure de démonsstration
1. Ouvvrez Visual Studiio 2010.
• Dans le menu D
Démarrer de 10557A-GEN-DEV, pointez
p sur Touss les
programmes, clliquez sur Microsoft Visual Studio 2010, puis surr
Microsoft Visua
al Studio 2010.
2. Crééez un projet d'ap
pplication Web.
a. Sur la page de d
démarrage de la feenêtre Microsoft Visual Studio, daans le
menu Fichier, ccliquez sur Nouveau projet.
b. Dans la boîte dee dialogue Nouveeau projet, dans le
l volet gauche, cliquez
c
sur Visual Basicc ou sur Visual C#.
C
c. b ASP.NET, puis sur OK.
Dans le volet ceentral, cliquez surr Application Web
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-50 Introduction au développement Web avec Microsoft® Visual Studio® 2010
[Visual Basic]
TextBox1.Text = "You clicked the button"
[Visual C#]
TextBox1.Text = "You clicked the button";
[Visual Basic]
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
If Me.IsPostBack Then
Response.Write("Server roundtrip due to postback")
Else
Response.Write("First time page is loaded")
End If
End Sub
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-51
[Visual C#]
protected void Page_Load(object sender, EventArgs e)
{
if (this.IsPostBack)
{
Response.Write("Server roundtrip due to postback");
}
else
{
Response.Write("First time page is loaded");
}
}
Question : lorsque vous créez un site Web, quels dossiers ou fichiers l'Explorateur
de solutions affiche-t-il ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-52 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Déplo
oiement d'un
ne applicatio
on Web
Points clés
Après avvoir créé et testé votre application
n Web, qu'elle soiit basée sur le mo
odèle de
site Webb ASP.NET ou le modèle d'applicaation Web ASP.N NET, vous devez générer
g et
déployeer l'application WWeb sur un serveu ur de test ou de production. Visual Studio
2010 voous aide à généreer et à déployer vootre application Web.
W
Serveu
urs
Dans un n environnementt de développemeent, vous déployeez l'application Web W sur le
serveur de test après avo oir terminé le dévveloppement et lees tests personnells.
L'appliccation est alors in
ntégralement testéée. Il existe souveent plusieurs servveurs de
test, tou
us dépendants dees différentes phaases de test que su ubit une applicattion Web,
notamm ment un test d'inttégration et un tesst d'acceptation utilisateur
u (UAT).. Une fois
l'applicaation Web entièremment testée et pubbliée, vous pouveez la déployer sur le serveur
de prod duction.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-53
IIS
Microsoft fournit un serveur Web IIS pour l'hébergement des applications Web. IIS
prend en charge la plupart des versions de système d'exploitation Windows®,
notamment toutes les éditions de Windows Server®, ainsi que plusieurs éditions de
Windows XP, Windows Vista® et Windows 7.
Options de déploiement
Plusieurs options de déploiement sont disponibles dans Visual Studio 2010.
Néanmoins, elles seront présentées dans des modules ultérieurs.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-54 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Atelier pratique
p : Création
n d'appliccations Web
W à
l'aide de
e Microsooft Visual Studio 2010 et dees
langagess Microsooft .NET
Introdu
uction
Dans ceet atelier pratiquee, vous créerez un
n projet de site Web
W ASP.NET sim mple, puis
ajoutereez un contrôle serrveur à un formulaire Web et en coonfigurerez les pro
opriétés.
De pluss, vous générerez et déploierez un site Web ASP.NE ET.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-55
Objectifs
Au terme de cet atelier pratique, vous serez à même d'effectuer les tâches suivantes :
Scéna
ario de l'ateliier pratique
Vous êtes développeur cchez Contoso, Ltd d, une grande enttreprise disposan
nt d'une
base de clients mondialee. Votre entreprise utilise des appllications Microsoft .NET
pour crééer, personnaliseer et gérer ses info
ormations client.
mettre une interaction rapide et sim
Elle déccide de créer un siite Web pour perm mple avec
les clien
nts. Outre le site W
Web externe desttiné aux clients, votre
v entreprise prévoit
p de
créer unn site Web permeettant de gérer less données de clients et les servicess dans
ASP.NE ET.
Vous êtes chargé de créeer le site Web à l'aaide du modèle de
d site Web ASP.N
NET, puis
de déployer ce site Web sur un répertoiree virtuel IIS.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-57
Remarque : vous devrez peut-être attendre quelques secondes pour que la propriété
Numéro de port soit prête à être modifiée après que vous avez défini la propriété
Utiliser des ports dynamiques.
Résultats : au terme de cet exercice, vous aurez créé un site ASP.NET basé sur un
système de fichiers et ajouté des styles au site Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-59
Remarque : le formulaire Web par défaut apparaît en mode Source, où vous pouvez
remarquer que les éléments tels que form, div et body sont vides.
Remarque : vous pouvez désormais afficher le texte saisi dans le contrôle Literal.
Remarque : vous pouvez désormais afficher les modifications apportées au contrôle Literal.
Résultat : au terme de cet exercice, vous aurez conçu la version initiale du formulaire
Web par défaut de votre site Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-62 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Résultat : au terme de cet exercice, vous aurez généré et déployé le site Web
CustomerManagement sur l'IIS local.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-63
Section 2 : Visual C#
Exercice 1 : Création d'un site Web ASP.NET
Dans cet exercice, les tâches principales sont les suivantes :
1. Créer un site Web ASP.NET vide.
2. Utiliser un port statique avec le serveur de développement ASP.NET.
3. Enregistrer le fichier solution.
• Dans la fenêtre Propriétés, dans la zone Numéro de port, tapez 1110, puis
appuyez sur Entrée.
Remarque : vous devrez peut-être attendre quelques secondes pour que la propriété
Numéro de port soit prête à être modifiée après que vous avez défini la propriété
Utiliser des ports dynamiques.
Résultats : au terme de cet exercice, vous aurez créé un site ASP.NET basé sur un
système de fichiers et ajouté des styles au site Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-65
Remarque : le formulaire Web par défaut apparaît en mode Source, où vous pouvez voir
que les éléments tels que form, div et body sont vides.
Remarque : vous pouvez désormais afficher le texte saisi dans le contrôle Literal.
Résultats : au terme de cet exercice, vous aurez conçu la version initiale du formulaire
Web par défaut de votre site Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-68 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Résultats : au terme de cet exercice, vous aurez généré et déployé le site Web
CustomerManagement sur l'IIS local.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Viisual Studio® 2010 et des langages Microsoft .NET 2-69
Récap
pitulatif de l'atelier pratiq
que
1. Com
mment avez-vouss créé un site Web
b?
2. Ind
diquez une raison
n pour laquelle un
n fichier code-beh
hind est associé à un
form
mulaire Web ASPP.NET (.aspx) ?
3. Com
mment procéder pour afficher ou masquer un con
ntrôle serveur ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
2-70 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Récapitu
ulatif du m
module et
e élémen
nts à retenir
Parcou
urir les question
ns et les répon
nses
1. Com
mment sélectionn neriez-vous un laangage de program
mmation .NET po
our créer
un projet d'applicatiion Web ?
2. ommon Languagee Runtime dans l''exécution d'une page
Quel rôle joue le Co
P.NET ?
ASP
3. Quel est le rôle de laa compilation JIT
T?
4. Énu
umérez quelques langages actuelleement pris en charrge par .NET Fram
mework.
5. Pou
urquoi procéder à la création d'un
n composant pourr une application
n Web ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'applications Web à l'aide de Microsoft® Visual Studio® 2010 et des langages Microsoft .NET 2-71
Outils
Fenêtre Propriétés Permet de régler les propriétés des Visual Studio IDE
documents, des classes, et des
contrôles.
Liste des tâches Permet de suivre l'état des tâches Visual Studio IDE
au cours du développement de
votre application.
Module 3
Création d'un formulaire Web
Microsoft® ASP.NET
Table des matières :
Leçon 1 : Création de formulaires Web 3-3
Leçon 2 : Ajout et configuration de contrôles serveur dans un
formulaire Web 3-12
Atelier pratique : Création d'un formulaire Web Microsoft ASP.NET 3-37
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-2 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Vue d'en
nsemble du modu
ule
Les formmulaires Web Miccrosoft® ASP.NET T sont les élémentts d'interface utilissateur
détermiinant l'apparence de vos applications Web. Un form mulaire Web préseente les
informaations à l'utilisateu
ur dans tout type de navigateur et implémente
i la loggique
d'appliccation à l'aide du ccode côté serveurr. Microsoft Visuall Studio offre unee interface
intuitivee de type glisser-d
déplacer permettaant de créer l'interface utilisateur dee votre
applicattion Web. Dans cee module, vous ap pprendrez à créerr des formulaires Web et à
les remp plir avec des conttrôles serveur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
C
Création d'un formulaire Web
W Microsoft® ASP.NET 3-3
Leçon 1
Création
n de form
mulaires Web
W
Objecttifs de la leçon
Au term
me de cette leçon, vous serez à mêm
me d'effectuer less tâches suivantess :
• déccrire un formulairre Web ASP.NET ;
• pliquer comment créer un formulaaire Web ASP.NE
exp ET.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-4 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Points clés
Les formmulaires Web sontt les conteneurs du d texte et des con ntrôles que vous so ouhaitez
afficher dans le navigateur. Ils génèrent le code
c HTML (Hypeertext Markup Lan nguage)
oient au navigateur. Cependant, les contrôles qui exéccutent l'interface utilisateur
et l'envo u
restent sur
s le serveur Web b. Cette séparationn de l'interface côtté client et du cod
de côté
serveur constitue la princcipale différence enntre les formulairees Web et les pagees Web
traditionnnelles. Sur une page Web tradition nnelle, le navigateu ur côté client traitee le code.
Par conttre, les formulairess Web n'envoient que le balisage et les scripts côté cliient au
navigateeur, tandis que le ttraitement de la paage reste sur le serrveur. Le fait que l'interface
l
côté clieent et le code côté serveur soient sépparés permet d'augmenter le nombrre de
navigateeurs pris en chargee, et améliore la séécurité et les foncttionnalités de la paage Web.
Extenssion .aspx
Les form
mulaires Web possèdent une extension .aspx et co
ontiennent souven
nt
deux ficchiers distincts :
• le fiichier .aspx conteenant l'interface utilisateur
u d'un fo
ormulaire Web ;
• Le fichier
f .aspx.vb (ccode Visual Basicc) ou .aspx.cs (coode Visual C#) co
ontenant
le code
c de prise en ccharge. Ce fichierr est appelé le fich
hier code-behind..
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'un formulaire Web Microsoft® ASP.NET 3-5
[Visual Basic]
<%@ Page Title="" Language="VB" CodeFile="Default.aspx.vb"
Inherits="_Default" %>
[Visual C#]
<%@ Page Title="" Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-6 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Remarque : lorsque vous créez un formulaire Web et choisissez de placer le code dans
un fichier distinct (valeur par défaut), les attributs CodeFile et Inherits sont utilisés dans
une configuration à deux fichiers. Les formulaires Web à fichier unique n'utilisent pas ces
attributs.
<html>
...
</html>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-8 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Remarque : vous pouvez utiliser une feuille de style en cascade (CSS) pour décrire
l'apparence et le formatage d'un formulaire Web, ou pour définir le style des pages Web
HTML, en spécifiant les couleurs, les polices, les bordures et la disposition. Les feuilles de
style en cascade permettent de séparer les balises de la présentation. Vous pouvez ainsi
réutiliser les styles dans plusieurs formulaires Web pour couvrir l'ensemble d'un site Web.
Bien que les styles soient réutilisés, des styles distincts seront généralement appliqués à
des pages différentes. Dans Visual Studio 2010, la fenêtre Appliquer les styles vous permet
d'appliquer des styles à un élément HTML ou un contrôle serveur Web spécifique. Vous
pouvez ensuite utiliser la fenêtre Gérer les styles pour gérer et suivre tous les styles de
votre application Web. Ces deux fenêtres sont accessibles à partir du menu Affichage.
Procé
édure de créa
ation d'un fo
ormulaire Web
Points clés
Lorsquee vous créez une application Web vide ou un site Web W vide dans
Visual Studio
S 2010, un sseul fichier web.cconfig est inclus.
f Créatio
on d'un projet d'application Web
W ASP.NET
1. Dan
ns Visual Studio 2
2010, dans le meenu Fichier, cliqu
uez sur Nouveau projet.
2. Danns la boîte de diallogue Nouveau projet,
p olet gauche, cliquez sur
dans le vo
Visual Basic ou sur Visual C#.
3. Dan
ns le volet centrall, cliquez sur App
plication Web AS
SP.NET vide.
4. Dan
ns les zones Nom m et Emplacemen
nt, indiquez le no
om et l'emplacem
ment du
pro
ojet, puis cliquez ssur OK.
Visu
ual Studio 2010 ccrée une applicattion Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'un formulaire Web Microsoft® ASP.NET 3-11
Visual Studio 2010 crée un formulaire Web et l'ajoute au projet Web ou au site
Web existant.
Question : quel outil pouvez-vous utiliser pour ajouter d'autres formulaires Web si
vous développez un projet existant ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-12 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Leçon 2
Ajout et configurration de contrôle
es serveurr
dans un formulaire Web
Les conttrôles serveur ASP P.NET sont exécuttés sur le serveur ; ils encapsulent l'iinterface
utilisateeur et d'autres fon
nctionnalités connexes. Ces contrô ôles serveur, tels que les
boutonss, les zones de tex xte et les listes, sont différents des contrôles
c HTML standard
car la logique de prise en n charge est exécu utée sur le serveurr, et non dans le navigateur
n
de l'utiliisateur.
Dans ceette leçon, vous ap
pprendrez à utiliser les contrôles serveur ASP.NET
T.
Objecttifs de la leçon
Au term
me de cette leçon, vous serez à mêm
me d'effectuer less tâches suivantess :
• déccrire un contrôle serveur ASP.NET
T;
• déccrire les types de contrôles serveurr ;
• enrregistrer l'état d'afffichage des contrrôles serveur ;
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'un formulaire Web Microsoft® ASP.NET 3-13
Points clés
Les con ntrôles serveur ASSP.NET sont exéccutés sur le serveu ur et encapsulentt
l'interface utilisateur. Vous pouvez utiliseer des contrôles serveur dans les
formulaaires Web ASP.NE ET pour répondre aux événementts dans les classess
code-beehind de formulaiire Web ASP.NET T.
L'exemp
ple suivant illustrre un contrôle serrveur Web Butto
on.
<asp:B
Button id="Subm
mitButton" runat
t="server" Text
t="Submit" />
L'exemp
ple suivant illustrre un contrôle serrveur HTML inpu
ut.
<input
t type="text" v
value="Submit" runat="server"
r />
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'un formulaire Web Microsoft® ASP.NET 3-15
runat="server"
Les contrôles serveur possèdent un attribut runat, qui ne peut être défini que sur
la valeur server.
Remarque : Dans certains cas, les contrôles serveur exigent un script client pour pouvoir
fonctionner correctement. Si l'utilisateur désactive les scripts dans le navigateur, les contrôles
peuvent ne pas fonctionner comme vous le souhaitez. Toutefois, la plupart des contrôles
intrinsèques fonctionneront correctement avec ou sans script côté client.
Fonctionnalités intégrées
La fonctionnalité d'un contrôle serveur est liée à ce qui se passe lorsque l'utilisateur
clique sur un bouton de commande ou une zone de liste. Ces processus sont appelés
gestionnaires d'événements. En tant que programmeur de formulaire Web, vous
devez déterminer les gestionnaires d'événements à implémenter pour chaque contrôle
serveur.
Puisque le contrôle serveur crée le code HTML personnalisé adapté aux fonctionnalités
disponibles dans le navigateur du client, vous pouvez écrire le code pour les
navigateurs les plus récents sans vous préoccuper des erreurs de navigateur. Votre
code fonctionnera même si les utilisateurs ne disposent pas des dernières versions
du navigateur.
Typess de contrôle
es serveur
Points clés
Dans AS SP.NET, vous disp posez de nombreux contrôles servveur. Certains con ntrôles
serveur ressemblent énorrmément aux élém ments HTML trad ditionnels, tandis que
d'autress sont propres à A
ASP.NET. Grâce à ce large éventail de
d contrôles, vouss pouvez
personn naliser votre form
mulaire Web pour qu'il correspondee à votre applicatiion.
Contrô
ôles serveur HT
TML
Par défaaut, les éléments HTML sur un forrmulaire Web nee sont pas dispon nibles
dans le serveur. Les élém
ments HTML son nt traités comme du d texte brut tran
nsmis via
le naviggateur. Cependannt, vous pouvez ajjouter l'attribut ru
unat="server" et sa valeur
pour coonvertir les élémeents HTML en con ntrôles serveur HTML.
H Vous pouvvez alors
program mmer ces élémen nts HTML à l'aide du code côté serrveur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-18 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Le tableau suivant répertorie quelques-uns des éléments HTML les plus communément
utilisés. Les contrôles serveur HTML et les contrôles serveur Web sont affichés sous
forme d'un ou de plusieurs de ces éléments.
Nom de
l'élément Description Exemple
a Élément d'ancrage <a href="/Page2.aspx"
permettant d'accéder title="Go To Page 2.">Page 2</a>
à une autre page, image
ou ressource.
Fonction du contrôle
Contrôle serveur Web Contrôle HTML équivalent serveur Web
<asp:Button... /> <input type="submit" /> Crée un bouton
permettant d'envoyer
une requête au serveur.
Les contrôles standard complexes insèrent des fonctions élaborées dans votre
formulaire Web. Le tableau suivant décrit quelques-uns de ces contrôles complexes.
Contrôle Fonction
Contrôles de données
Il existe deux groupes différents de contrôles de données : les contrôles liés aux
données et les contrôles de source de données.
• Contrôles liés aux données. Les contrôles liés aux données permettent
d'afficher les données à partir d'une source de données.
• Contrôles de source de données. Les contrôles de source de données sont
utilisés en tant que contrôle intermédiaire entre une source de donnée (par
exemple, une base de données ou un fichier XML) et un ou plusieurs contrôles
de données.
Le tableau suivant décrit quelques-uns des contrôles liés aux données les plus
courants.
Contrôle Fonction
FormView Affiche une seule ligne de données issue d'une source de données
en utilisant une disposition définie par un modèle.
QueryExtender Permet de créer des filtres pour les données extraites à partir
d'une source de données. Ce contrôle peut être utilisé pour
filtrer les données dans le balisage d'une page Web, à l'aide
d'une syntaxe déclarative.
Le tableau suivant décrit quelques-uns des contrôles de source de données les plus
fréquemment utilisés.
Contrôle Fonction
SqlDataSource Établit une connexion aux données situées dans une base
de données relationnelle, telle que Microsoft SQL Server®.
Remarque : pour plus d'informations sur LINQ, consultez le module 9, « Gestion des
tâches d'accès aux données à l'aide de LINQ ».
Contrôles de validation
Les contrôles de validation sont des contrôles masqués validant l'entrée utilisateur
conformément aux modèles prédéterminés. Si l'entrée utilisateur n'est pas conforme
aux exigences, un message d'erreur apparaît.
Les contrôles de validation incorporent une logique vous permettant de tester
l'entrée utilisateur. Pour ce faire, vous pouvez associer un contrôle de validation
au contrôle d'entrée et indiquer les conditions déterminant la validité d'une entrée
utilisateur.
Contrôle Fonction
Contrôles de connexion
Les contrôles de connexion fonctionnent ensemble pour offrir une solution de
connexion fiable exigeant très peu de code.
Contrôle Fonction
Contrôles de navigation
Les contrôles de navigation permettent de créer des aides à la navigation sur les
pages Web ASP.NET, notamment des menus et des chemins de navigation. Le
tableau suivant décrit les contrôles de navigation.
Contrôle Fonction
Menu Prend en charge l'affichage d'un menu principal et de
sous-menus, et permet également de définir des menus
dynamiques.
Enreg
gistrement de l'état d'afffichage
Points clés
L'une des difficultés des sites Web résidee dans l'enregistreement de l'état dees
contrôlees (paramètres ett entrée utilisateuur) pendant les allers-retours du coode
HTML entre
e le client et lle serveur. Pour toutes
t les technollogies HTTP, les
formulaaires Web sont saans état par naturre, ce qui signifie que le serveur nee
conservve aucune information entre les reequêtes clients.
Web Fo orms ASP.NET en nregistre l'état dess contrôles en ajo
outant le contrôlee
masquéé __VIEWSTATE,, qui enregistre l'éétat des contrôless sur le formulaire Web.
Plus parrticulièrement, W
Web Forms ajoutee __VIEWSTATE à l'élément de forrmulaire
côté serrveur et enregistree l'état des contrô
ôles uniquement dans cette section. Au fur
et à messure que la page ttransite entre le client
c et le server,, l'état du contrôle serveur
est consservé avec la pagee et peut être mis à jour à l'extrémitté du client ou du u serveur
de la traansaction.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-28 Introduction au développement Web avec Microsoft® Visual Studio® 2010
L'état d'affichage est la méthode utilisée par l'infrastructure de page ASP.NET pour
préserver les valeurs de page et de contrôle entre les allers-retours. Lorsque le balisage
HTML de la page est affiché, l'état actuel de la page et les valeurs devant être conservées
lors de la publication sont sérialisés en chaînes codées en base 64. Ces valeurs sont
ensuite entrées dans le champ masqué d'état d'affichage. Grâce à ce processus, les
contrôles serveur conservent automatiquement leurs valeurs entre les allers-retours
plus facilement, sans codage. L'état d'affichage n'est utile que dans le même
formulaire Web, au fur et à mesure qu'il transite entre le client et le serveur. Vous ne
pouvez pas utiliser l'état d'affichage entre différents formulaires Web. L'état d'affichage
diminue la charge du serveur, mais les performances peuvent être affectées par la taille
croissante du code HTML. Autrement dit, l'affichage de la page nécessite plus de temps
sur le client.
L'état de la page Web étant conservé dans le formulaire du serveur, la page Web
peut être routée de façon aléatoire dans une batterie de serveurs Web et ne doit
pas toujours revenir au même serveur. L'avantage du processus d'état d'affichage
est que le programmeur peut se concentrer sur la conception de la page ; il n'a pas
besoin de générer une infrastructure pour suivre l'état de la page.
Vous pouvez utiliser l'état d'affichage pour conserver les données d'application
propres à une seule page, y compris l'ID de produit ou l'ID d'utilisateur. Vous
pouvez également l'utiliser dans d'autres circonstances, par exemple pour des
raisons statistiques, lorsque vous souhaitez connaître le nombre de fois qu'un
utilisateur publie la même page en séquence sur le serveur.
Valeur Description
Enabled Active l'état d'affichage de ce contrôle même s'il est désactivé pour le
contrôle parent.
Disabled Désactive l'état d'affichage de ce contrôle même s'il est activé pour le
contrôle parent.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-30 Introduction au développement Web avec Microsoft® Visual Studio® 2010
État de contrôle
L'état de contrôle ASP.NET vous permet de stocker des informations propres au
contrôle et ne peut pas être désactivé.
Les contrôles peuvent disposer à la fois de l'état d'affichage et de l'état de contrôle.
Vous utilisez l'état d'affichage pour gérer le contenu du contrôle et l'état de contrôle
pour gérer le comportement principal du contrôle. Pour les contrôles qui relancent
le remplissage de leur contenu chaque fois que l'utilisateur demande une page (par
exemple, un contrôle affichant une grille de données), vous pouvez désactiver l'état
d'affichage, mais pas l'état de contrôle.
Contrôle HiddenField
Vous pouvez utiliser le contrôle serveur Web HiddenField comme méthode
supplémentaire pour stocker une valeur à rendre persistante dans les publications
sur le serveur. Vous utilisez la propriété Value pour spécifier la valeur du contrôle
et créer un gestionnaire d'événements pour l'événement ValueChanged. Cet
événement est appelé chaque fois que la valeur du contrôle est modifiée entre deux
publications sur le serveur. Le code suivant montre comment déclarer un contrôle
HiddenField avec la valeur 1.
Ajoutt et configura
ation de con
ntrôles serveur HTML
Points clés
Les conntrôles HTML d'uun formulaire Web ne sont pas dissponibles sur le serveur.
Lorsquee vous convertisssez les contrôles HTML
H en contrôlles serveur HTML L, vous
pouvez les exposer en taant qu'éléments dans
d votre code côté
c serveur. Cettee
converssion vous permet d'utiliser les con
ntrôles pour décleencher des événem ments
gérés su
ur le serveur.
Les con
ntrôles serveur HT
TML incluent l'atttribut runat="serrver" et doivent résider
r
dans un
n élément FORM conteneur.
Grâce aux contrôles servveur HTML, vouss pouvez mettre à jour rapidement les
pages ex xistantes sur les fformulaires Web. En outre, vous pouvez
p optimiserr les
performmances d'une page en déterminantt et en adaptant lees contrôles de so orte
qu'ils fo
onctionnent localement sur le navigateur, tout en étant
é traités sur lee serveur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-32 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Le code suivant est généré lorsque vous utilisez l'opération de glisser-déplacer pour
faire passer le contrôle de la boîte à outils vers le formulaire Web.
Question : quelles sont les fonctionnalités offertes par les contrôles serveur HTML ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
C
Création d'un formulaire Web
W Microsoft® ASP.NET 3-33
Ajoutt et configura
ation de con
ntrôles serveur Web
Ajout et
e configuration
n de contrôles serveur Web
Pour ajo
outer et configureer des contrôles serveur
s Web, vou
us devez effectuerr les
étapes suivantes
s :
1. Ouvvrez Visual Stud
dio 2010 et, dans le menu Fichier, cliquez sur Nou
uveau
sitee Web.
2. Dan
ns le volet de gau
uche, cliquez sur Visual
V Basic.
3. Dan
ns le volet centrall, cliquez sur Sitee Web ASP.NET vide.
v
4. Dan
ns la liste Emplaccement Web, cliq
quez sur Systèmee de fichiers. Dan
ns la
zon
ne de texte, entrezz C:\WebSite1\S
SampleWebSite, puis cliquez sur OK.
5. Dan ns l'Explorateur d
de solutions, cliqu
uez avec le bouto
on droit sur le pro
ojet de
sitee Web SampleWeebSite, puis cliqu uez sur Ajouter un nouvel élémen nt.
6. Danns la boîte de diallogue Ajouter un
n nouvel élément, dans le panneaau du
milieu, cliquez sur W
Web Form. Dans la zone Nom, en ntrez Default.asppx, puis
quez sur Ajouter.
cliq
7. Dan
ns la fenêtre Defaault.aspx, cliquez sur Création.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-34 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Une fois affiché dans le client, le contrôle TextBox ressemble à l'exemple de code
suivant.
Points clés
Lorsquee vous créez des ppages ASP.NET, vous
v pouvez utiliiser les éléments HTML,
les conttrôles serveur HT
TML ou les contrô ôles serveur Webb. Il est possible de
d
combinner différents typees de contrôles su
ur la même page pour
p mettre à jou
ur
rapidemment une page HT TML.
À titre d'exemple
d pour l'u
utilisation simultaanée de plusieurs types de contrôlees, votre
page AS SP.NET peut inclu ure un élément d'éétendue HTML (sspan) répertorian nt l'heure
locale, un
u bouton de con ntrôle serveur HT TML converti à paartir d'un élémennt HTML
et une zone
z de texte de ccontrôle serveur Web
W accédant au ux données du seerveur.
Toutefois, la meilleure prratique consiste à éviter les contrôlles serveur HTML
L. Les
contrôlees serveur Web sont plus perform mants et possèden nt un modèle d'ob bjet plus
riche quue les contrôles serveur HTML.
Contrô
ôles serveur HT
TML
Même s'il
s est recomman ndé d'éviter les contrôles serveur HTML
H et de privillégier
les conttrôles serveur Weeb, les contrôles serveur
s HTML do oivent parfois êtree utilisés.
Les conntrôles serveur HT TML sont des élééments HTML mo odifiés qui sont exécutés
e
sur le seerveur, et non dan
ns le navigateur client.
c
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-36 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Vous devez utiliser les contrôles serveur HTML dans les situations suivantes :
• Vous préférez un modèle d'objet HTML. Le code HTML des contrôles serveur
HTML est presque le même que celui des contrôles HTML de base.
• Vous souhaitez utiliser des pages HTML existantes et ajouter la fonctionnalité
de formulaire Web rapidement. Puisque les contrôles serveur HTML
correspondent exactement aux éléments HTML, vous n'avez pas besoin de
remplacer les contrôles, éliminant ainsi les risques d'erreur de substitution
ou les problèmes de formatage de page.
• La bande passante est limitée et vous devez effectuer un grand nombre de
traitements côté client afin de réduire son utilisation.
Atelier pratique
p : Création
n d'un forrmulaire Web
W
Microsofft ASP.NEET
Introdu
uction
Dans ceet atelier pratiquee, vous ajouterez d'abord
d un formuulaire Web à unee
applicattion Web ASP.NE ET, puis des contrrôles serveur au formulaire
f Web ete
configurerez enfin ses prropriétés.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-38 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Objectifs
Au terme de cet atelier pratique, vous serez à même d'effectuer les tâches suivantes :
• créer un formulaire Web ;
• appliquer une feuille de style au formulaire Web ;
• créer une disposition de type tableau dans le formulaire Web ;
• ajouter un contrôle serveur au formulaire Web et en configurer les propriétés ;
• appliquer des styles aux contrôles serveur et éléments HTML.
Scéna
ario de l'ateliier pratique
Vous êtes développeur cchez Contoso, Ltd d, une grande enttreprise disposan
nt d'une
base de clients mondialee. Votre entreprise utilise des appllications Microsoft .NET
pour crééer, personnaliseer et gérer ses info
ormations client. Votre organisatio
on a créé
un site Web
W pour gérer lles données et serrvices clients dan ns ASP.NET.
Contosoo, Ltd souhaite créer une applicatio on permettant de gérer et mettre à jour ses
informaations clients. Vou
us devez personnaaliser l'application n de façon à réponndre aux
besoins spécifiques de l'ééquipe de vente. La
L mise à jour dess informations clieents est
un proccessus continu pour l'équipe de ven nte, et l'applicatio
on requiert des miises à
jour en fonction des commmentaires des dééveloppeurs princcipaux et autres parties
prenanttes. Vous devez géénérer une interfacce utilisateur réponndant aux besoins définis.
Vous deevez créer une ap pplication et généérer une interface utilisateur facile à mettre
à jour et à modifier, à l'aiide des contrôless serveur ASP.NETT.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-40 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Remarque : Dans cet exercice, vous créerez un tableau à deux colonnes à l'aide d'une
feuille de style en cascade (CSS). Celle-ci devra contenir différents contrôles relatifs à
l'affichage et à la gestion des données clients.
<div>
<div>
</div>
</div>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-42 Introduction au développement Web avec Microsoft® Visual Studio® 2010
<div>
<div>
<div>
</div>
<div>
</div>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
</div>
<div class="customerTableRightCol">
</div>
</div>
• Ajoutez un nouvel élément div de la boîte à outils à l'élément div avec une valeur
d'attribut class de customerTable. Placez le nouvel élément div immédiatement
avant la balise div de fermeture de l'élément div customerTable.
<div class="customerTable">
<div class="customerTableRow">
<div class="customerTableLeftCol">
</div>
<div class="customerTableRightCol">
</div>
</div>
...
<div>
</div>
</div>
Remarque : Notez que deux colonnes de taille identique sont ajoutées à l'élément div.
Remarque : Bien que vous ayez ajouté des styles au formulaire Web via le fichier CSS,
aucun changement n'apparaît. Cela est dû au fait que les éléments div sont vides.
Section 2 : Visual C#
Exercice 1 : Création d'un formulaire Web
Dans cet exercice, les tâches principales sont les suivantes :
1. Ouvrir un site Web ASP.NET existant.
2. Ajouter un formulaire Web au site Web.
Résultats : Au terme de cet exercice, vous aurez ouvert le site Web CustomerManagement
existant et ajouté le formulaire Web InsertCustomer.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Création d'un formulaire Web Microsoft® ASP.NET 3-49
Remarque : Dans cet exercice, vous créerez un tableau à deux colonnes à l'aide d'une
feuille de style en cascade (CSS). Celle-ci devra contenir différents contrôles relatifs à
l'affichage et à la gestion des données clients.
<div>
<div>
</div>
</div>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-50 Introduction au développement Web avec Microsoft® Visual Studio® 2010
<div>
<div>
<div>
</div>
<div>
</div>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
</div>
<div class="customerTableRightCol">
</div>
</div>
• Ajoutez un nouvel élément div de la Boîte à outils à l'élément div avec une valeur
d'attribut class de customerTable. Placez le nouvel élément div immédiatement
avant la balise div de fermeture de l'élément div customerTable.
<div class="customerTable">
<div class="customerTableRow">
<div class="customerTableLeftCol">
</div>
<div class="customerTableRightCol">
</div>
</div>
...
<div>
</div>
</div>
Remarque : Notez que deux colonnes de taille identique sont ajoutées à l'élément div.
Remarque : Bien que vous ayez ajouté des styles au formulaire Web via le fichier CSS,
aucun changement n'apparaît. Cela est dû au fait que les éléments div sont vides.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-52 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Récap
pitulatif de l'atelier pratiq
que
Récapitu
ulatif du m
module et
e élémen
nts à retenir
Parcou
urir les question
ns et les répon
nses
1. Com
mment pouvez-vo ous vérifier qu'un
ne page Web ayan
nt une extension .aspx
dan
ns un site Web AS
SP.NET est un forrmulaire Web ?
2. Com
mment pouvez-vo ous vérifier qu'un
ne page Web ayan nt une extension .aspx
con
ntient des contrôlles serveur Web ASP.NET
A intrinsèèques ?
3. Quel type de balisagge ou de script un
n contrôle serveu
ur Web génère-t-ill sur le
clieent ?
Less types de balisage ou de script gén L et JavaScript, if the Web
nérés sont HTML
servver
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
3-58 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Meilleures pratiques
• Les formulaires Web doivent exposer un titre de page affiché sous forme de
légende de navigateur et sur l'onglet, si votre session de navigation contient
des onglets. Cela permet aux utilisateurs d'identifier plus facilement une page
spécifique.
• Utilisez toujours le contrôle serveur Web approprié à la tâche ; par exemple,
le contrôle Label à la place du contrôle TextBox, pour afficher le texte en
lecture seule.
• Utilisez une convention d'affectation de noms lorsque vous nommez vos éléments
HTML et contrôles serveur Web. Dans ce cours, une convention d'affectation de
noms est constituée du contenu du contrôle ou de l'élément, et elle est suffixée
avec le type de contrôle utilisé ; par exemple, FirstNameTextBox pour un
contrôle TextBox exposant le prénom d'une personne. De cette façon, vous
pouvez également avoir un contrôle Label FirstNameLabel indiquant à
l'utilisateur ce que le contrôle TextBox contient. En général, un nom ou un ID
doit être affecté à tous les éléments HTML et contrôles serveur Web, car vous
devrez peut-être faire référence aux contrôles depuis d'autres contrôles, ou depuis
le code côté client ou côté serveur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-1
Module 4
Ajout de fonctionnalités à un formulaire Web
Microsoft® ASP.NET
Table des matières :
Leçon 1 : Utilisation des fichiers code-behind 4-4
Leçon 2 : Gestion des événements de contrôle serveur 4-14
Leçon 3 : Création de classes et de composants à l'aide de
Visual Studio 2010 4-37
Leçon 4 : Gestion des événements relatifs aux pages 4-61
Atelier pratique : Ajout de fonctionnalités à un formulaire Web
Microsoft ASP.NET 4-72
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-2 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Vue d'en
nsemble du modu
ule
Vous po ouvez ajouter du code à votre appplication Web Miccrosoft® ASP.NET T via
différenntes méthodes, seelon vos besoins. Vous pouvez utilliser le code inlin
ne et
le code mixte, mais pourr ajouter du codee aux formulaires Web, il est conseeillé
d'utiliseer les fichiers code-behind dans Microsoft®
M Visual Studio®
S 2010.
Les gesttionnaires d'événnements sont des procédures qui gèrentg un événem ment ;
par exemmple, lorsqu'une page est chargéee sur le serveur ou u qu'un utilisateuur clique
sur un bouton.
b Les gestiionnaires d'événeements pour les contrôles
c serveur Web
sont génnéralement décleenchés par une in ntervention de l'utilisateur et fourn nissent
des foncctionnalités à vottre application. Poour créer des gesstionnaires d'évén nements
de façonn efficace, vous d
devez comprendree le cycle de vie de d la page. Vous devez
d
égalemeent le connaître sis vous développeez des contrôles personnalisés.
p Ceela est
particulièrement vrai si vvous devez initialisser des contrôles,, remplir leurs pro
opriétés
avec les données d'état d'affichage, puis exxécuter un code réégissant le compo ortement
des contrôles.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-3
Dans ce module, seul le code serveur est traité. Cela signifie que le code est exécuté
sur le serveur et que l'intégralité du traitement du code est effectuée avant le renvoi
au client de la page demandée. C'est également le cas même lorsque des contrôles
serveur transmettent automatiquement le code côté client de sorte qu'un utilisateur
puisse interagir avec le contrôle sur le côté client, sans aller-retour vers le serveur.
Dans ce module, vous découvrirez les différentes méthodes permettant d'ajouter
du code à votre application Web ASP.NET. Vous apprendrez également à utiliser
les contrôles serveur Web, les gestionnaires d'événements, les fichiers code-behind
et les composants. Enfin, vous apprendrez à utiliser les événements relatifs aux
pages, particulièrement l'événement OnLoad, qui est géré par le gestionnaire
d'événements Page_Load.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-4 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Leçon 1
Utilisatio
on des ficchiers cod
de-behind
d
Vous po ouvez ajouter du ccode mixte à votrre formulaire Web b dans le même fichier que
le conteenu Web. Vous po ouvez également ajouter
a du code dans
d une section de
d script
différen
nte du même fichieer ou dans un fich hier distinct. Le co
ode inline utilise à la fois
le HTML L et le code dans des sections difféérentes du même fichier .aspx. Les fichiers
code-behind contiennentt la logique de pro ogrammation pou ur une seule page Web.
Dans ceette leçon, vous d
découvrirez les tro
ois méthodes perrmettant d'ajouterr du code
via Visu
ual Studio 2010. VVous apprendrezz également en qu uoi elles se différeencient.
Objecttifs de la leçon
Au term
me de cette leçon, vous serez à mêm
me d'effectuer less tâches suivantess :
• déccrire les méthodess permettant d'ajouter du code ;
• déccrire la différence entre le code mix
xte et le code inliine ;
• déccrire les fichiers code-behind ;
• exppliquer comment ajouter des foncttionnalités aux fo
ormulaires Web à l'aide de
fich
hiers code-behind
d.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web
W Microsoft® ASP.NET 4-5
Méthodes d'implé
émentation du code
Points clés
Vous po
ouvez ajouter du code à votre form
mulaire Web des trois façons suivaantes :
• de mixte. Le codee est placé dans le même fichier que le contenu Weeb,
Cod
méllangé avec le baliisage.
• Cod
de inline. Le codee est placé dans un
u ou plusieurs éléments
é de script, dans le
mêm
me fichier que le contenu de balissage.
• Codde-behind. Le codde est placé dans un nt du contenu de balisage.
u fichier différen
Le fichier
f de code est appelé fichier co
ode-behind. Danss Visual Studio 20
010, la
métthode par défaut consiste à placer tout le code danss un fichier code-b
behind.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-6 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Code mixte
m
Le codee mixte est égalem ment appelé « bloccs de code intégréé ». Certains dévelloppeurs
utilisentt le code mixte, m
mais cette méthodee est déconseilléee car un fichier de code
mixte peut être difficile à lire et à gérer.
Code in
nline
Bien quue la méthode parr défaut d'implém mentation du code côté serveur daans
Visual Studio
S 2010 conssiste à utiliser un fichier code-behiind, il existe des pages
p
utilisantt le code inline.
Lorsquee vous utilisez le code inline pour une page Web, le l balisage et le co
ode sont
situés dans
d des sections différentes d'un même
m fichier .asp
px. L'objectif de cette
c
séparatiion est la clarté. C
Cependant, quant au fonctionnem ment, le code et le HTML
peuventt se trouver n'imp porte où sur la paage. Même si le coode inline séparee le code
du balissage, ces dernierss sont tout de même mélangés dan ns le même fichieer,
rendantt difficile leur utillisation par deux développeurs en n même temps.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-7
[Visual Basic]
<html xmlns="http://www.w3.org/1999/xhtml">
...
<asp:Button ID="Button1" runat="server" Text="Button" />
...
</html>
<script Language="VB" runat="server">
Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles Button1.Click
...
End Sub
</script>
[Visual C#]
<html xmlns="http://www.w3.org/1999/xhtml">
...
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click"
Text="Button" />
...
</html>
Fichie
ers code-beh
hind
Points clés
La méth hode par défaut d d'implémentation n du code côté serrveur dans Visual
Studio 2010
2 consiste à uutiliser des fichierrs code-behind. Ainsi,
A la logique de
d
program mmation est consservée dans un ficchier différent des éléments visuells
de la paage. La séparation n de la logique et de la conception n vous permet de
travailleer sur le fichier co
ode-behind pendaant que les conceepteurs d'interfacce
utilisateeur travaillent surr la page ASP.NET T.
Les fich
hiers code-behindd contiennent la lo ogique de prograammation pour un u
seul formulaire Web. Ch haque formulaire Web d'une appliication Web conttient
son proopre fichier code-b
behind. Par défau ut, un fichier codee-behind présentte le
même nom
n que le formu
ulaire Web auqueel il est associé. Toutefois, il comporte
l'extension .aspx.vb ou .aaspx.cs, selon le langage
l utilisé daans ce fichier. Parr
exemplee, le formulaire W
Web Form1.aspx aura un fichier co ode-behind Visuaal C#
nomméé Form1.aspx.cs o ou un fichier codee-behind Visual Basic
B nommé
Form1.aaspx.vb.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-9
Grâce aux fichiers code-behind, il est également possible d'implémenter une classe
dans au moins deux fichiers de code distincts à l'aide du mot clé Partial/partial.
Le code suivant montre comment le mot clé Partial/partial permet d'utiliser des
classes partielles.
[Visual Basic]
Partial Public Class _Default
[Visual C#]
public partial class _Default
Remarque : Un fichier code-behind ne peut contenir du code que dans un seul langage.
Vous ne pouvez pas mélanger Visual C# et Visual Basic dans le même fichier code-behind.
Toutefois, vous pouvez mélanger les formulaires Web et les fichiers de différents langages
au sein du même site Web.
Le fichier code-behind constitue la méthode d'écriture par défaut du code pour les
formulaires Web ASP.NET. Il s'agit également d'une méthode prisée par de nombreux
développeurs (si ce n'est la grande majorité). Un fichier code-behind contient
généralement une classe unique dont le nom est celui du formulaire Web utilisé.
Le code suivant illustre le formulaire Web par défaut (Default.aspx), où la classe
est nommée _Default.
[Visual Basic]
Partial Class _Default
Inherits System.Web.UI.Page
End Class
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-10 Introduction au développement Web avec Microsoft® Visual Studio® 2010
[Visual C#]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
}
}
Utilisa
ation de fich
hiers code-be
ehind
Points clés
Pour qu ue les formulairess Web basés sur lesl fichiers code-b
behind fonctionn
nent
correcteement, chaque paage .aspx doit êtree associée à un fichier code-behind et
celui-ci doit être compiléé avant que les innformations ne so
oient renvoyées au
u
navigateeur client à l'origiine de la requête..
Chaque page de formulaiire Web contient deux d fichiers distin
ncts, la page .aspx
x et le
fichier code-behind, qui foorment une entitéé unique lorsque l''application Web est e
exécutéee. Le formulaire WWeb code-behind peutp être précomp pilé par Visual Stu
udio 2010
lorsque vous générez le p projet d'applicationn Web ou compiléé juste-à-temps (JIT T, just in
time) lorrsqu'un utilisateurr accède à la page pour la première fois.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-12 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Remarque : L'attribut Inherits respecte la casse dans Visual C#, mais pas dans Visual Basic.
Remarque : Dans Visual C#, l'attribut AutoEventWireUp est défini sur True par défaut.
Le concepteur génère automatiquement le code permettant de lier les événements à
leurs méthodes de gestionnaire d'événements. Dans Visual Basic, cet attribut est défini
sur False par défaut. Le concepteur exécute cette liaison d'événement à l'aide de
l'instruction Handles dans la déclaration de la méthode de gestionnaire d'événements.
[Visual Basic]
<%@ Page Language="VB" AutoEventWireup="false"
CodeFile="Default.aspx.vb" Inherits="_Default" %>
[Visual C#]
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-13
Compilation et déploiement
Visual Studio 2010 prend en charge deux types de projets d'application Web :
WAP et WSP. Tous deux offrent différents types de compilation.
• WAP. Lors de la création de votre projet, le code est compilé en langage
Microsoft Intermediate Language (MSIL) et situé dans un seul assembly,
qui est généralement placé dans le sous-dossier Bin du dossier du projet.
Cela facilite le déploiement du balisage et de l'assembly compilé. Lors de la
première demande d'application, l'assembly compilé est copié dans le dossier
de fichiers ASP.NET temporaire, où il est compilé juste-à-temps (JIT) en code
binaire pouvant être exécuté par le système d'exploitation. Cette opération
entraîne un léger retard de la réponse à la première demande par rapport aux
demandes ultérieures.
• WSP. Par défaut, un site Web ASP.NET n'est pas précompilé. À la place,
ASP.NET compile votre site Web la première fois que la page est demandée.
Cette opération est également appelée compilation sur place. L'application est
compilée lors de la première demande dans un ou plusieurs assemblys, dans
le dossier de fichiers ASP.NET temporaire. Le déploiement d'un site Web
ASP.NET Web est pratique car il permet d'apporter des modifications à un
formulaire Web ou un fichier code-behind, et de déployer le formulaire Web
sur le serveur sans compiler le code source.
Précompilation
Vous pouvez précompiler un projet de site Web ASP.NET en un ou plusieurs
assemblys à déployer, au lieu de déployer le code source réel. Pour ce faire,
accédez au menu Générer et utilisez l'option Publier le site Web. Autrement,
dans l'Explorateur de solutions, cliquez avec le bouton droit sur le site Web et
cliquez sur Publier le site Web.
Leçon 2
Gestion des
d événements de
d contrô
ôle serveu
ur
Objectifs de la leçon
Au terme de cette leçon, vous serez à même d'effectuer les tâches suivantes :
• décrire les gestionnaires d'événements ;
• décrire les gestionnaires d'événements côté client ;
• décrire les gestionnaires d'événements côté serveur ;
• expliquer le traitement des gestionnaires d'événements côté client et côté serveur ;
• décrire la procédure de création de gestionnaires d'événements côté serveur ;
• expliquer la création de gestionnaires d'événements côté serveur ;
• utiliser des contrôles serveur Web à l'aide des gestionnaires d'événements.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-16 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Présentation des g
gestionnaire
es d'événeme
ents
Points clés
Les form mulaires Web dyn namiques et interractifs répondentt aux événementss ou aux
entrées utilisateur. Vous pouvez utiliser les gestionnaires d'événements
d poour gérer
les événnements déclench hés par l'intervenntion de l'utilisateeur sur un formullaire Web.
ASP.NET est une plateforrme de développeement orientée ob bjet et les objets exposent
e
le plus souvent des événements. Ces évvénements sont déclenchés d lorsqqu'un
utilisateeur lance ou quittte l'application, cllique sur un boutton ou place le po ointeur
sur un lien
l dans l'applicaation. Lorsqu'un événement surviient, il ne déclencche pas
automatiquement une acction dans l'appliication ; pour celaa, vous devez écrrire le
code peermettant de géreer l'événement.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-17
[Visual Basic]
<html>
...
<body>
<form runat="server">
...
<asp:Button ID="Button1" Text="Home" runat="server"/>
...
</form>
</body>
</html>
''' <summary>
''' Redirects to home page
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button1.Click
' Redirect to home page
Response.Redirect("~/Default.aspx")
End Sub
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-18 Introduction au développement Web avec Microsoft® Visual Studio® 2010
[Visual C#]
<html>
...
<body>
<form runat="server">
...
<asp:Button ID="Button1" Text="Home" OnClick="Button1_Click"
runat="server"/>
...
</form>
</body>
</html>
/// <summary>
/// Redirects to home page
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
// Redirect to home page
Response.Redirect("~/Default.aspx");
}
Présentation des g
gestionnaire
es d'événeme
ents côte clie
ent
Points clés
Il existe deux types de geestionnaires d'évéénements : côté cliient et côté serveu ur. Les
gestionn naires d'événemen nts côté client son
nt des événementts gérés sur l'ordin nateur
client efffectuant la demannde de formulairee Web. Lorsqu'un n événement est déclenché,
d
les inforrmations ne sont pas envoyées au serveur.
s À la placee, le navigateur cllient
interprèète le code et exéccute l'action.
Les gesttionnaires d'événnements côté clien nt ne peuvent êtrre utilisés qu'avecc des
élémentts HTML. Il peut exister des événeements côté clien nt pour les contrô ôles
serveur,, mais uniquemen nt pour la partie du contrôle serveeur qui est affichéée et
toujours constituée d'un n ou de plusieurs éléments HTML. Vous pouvez atttacher
les gestiionnaires d'événeements côté cliennt directement à un
u contrôle serveu ur
Web en n le spécifiant dan
ns l'attribut d'évén
nement (voir l'événement onmou useover
indiquéé dans le code suiivant).
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-20 Introduction au développement Web avec Microsoft® Visual Studio® 2010
...
<script type="text/javascript">
function changeColor()
{
window.event.srcElement.style.color = "#FF0000";
}
</script>
...
<asp:Button id="Button1" runat="server" text="Button1"
onmouseover="changeColor();" />
[Visual Basic]
Button1.Attributes.Add("onmouseover", "changeColor();")
[Visual C#]
Button1.Attributes.Add("onmouseover", "changeColor();");
Le code requiert que la fonction JavaScript fasse partie du balisage. Vous pouvez
l'associer de façon explicite, comme indiqué dans l'exemple ci-dessus, ou en
l'inscrivant en tant que script côté serveur. La fonction JavaScript peut également se
trouver dans un fichier lié extérieurement. Utilisez la méthode ClientScriptManager.
RegisterClientScriptBlock, qui est placée dans le gestionnaire d'événements Page
Load, comme indiqué dans le code suivant.
[Visual Basic]
Dim buttonClientScriptManager As ClientScriptManager = Me.ClientScript
buttonClientScriptManager.RegisterClientScriptBlock(Button1.GetType(),
"changeColorScript",
"function changeColor() { window.event.srcElement.style.color =
'#FF0000'; }", True)
[Visual C#]
ClientScriptManager buttonClientScriptManager = this.ClientScript;
buttonClientScriptManager.RegisterClientScriptBlock(Button1.GetType(),
"changeColorScript",
"function changeColor() { window.event.srcElement.style.color =
'#FF0000'; }", true);
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-21
Présentation des g
gestionnaire
es d'événeme
ents côté serrveur
Points clés
À l'inverrse des gestionnaiires d'événementss côté client, les gestionnaires d'évéénements
côté servveur requièrent q
que les informatio ons soient envoyéees au serveur Web b en vue
de leur traitement.
t Bien q
que l'utilisation dees gestionnaires d'événements
d côtéé serveur
nuise auux performances een raison des alleers-retours vers le serveur, ces gestiionnaires
sont génnéralement plus p puissants que les gestionnaires d'évvénements côté cllient,
particulièrement lorsqu'ill s'agit d'accéder aux
a ressources cô ôté serveur, telles qu'une
base de données.
Gestion
nnaires d'événements côté seerveur
Les gesttionnaires d'événeements côté serveeur sont composéés du code compillé
résidantt sur le serveur W
Web. Ils vous perm
mettent de gérer lees événements gén nérés à
partir dees contrôles serveeur Web et HTML L. En outre, ils on
nt accès à des resso
ources
du serveeur qui sont génééralement indispoonibles pour les geestionnaires d'évéénements
côté clieent.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-23
[Visual Basic]
<script type="text/VB" runat="server">...</script>
[Visual C#]
<script type="text/C#" runat="server">...</script>
Bien que JavaScript ne soit disponible que dans certaines implémentations, il reste
le seul langage de programmation compatible sur tous les navigateurs. Si vous
utilisez Windows® Internet Explorer® exclusivement pour accéder à un portail
Intranet, vous pouvez également utiliser Microsoft Visual Basic Scripting Edition
(VBScript) pour créer votre code côté client et vos gestionnaires d'événements.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web
W Microsoft® ASP.NET 4-25
Procé
édure de traitement des gestionnaire
es d'événeme
ents
côté client
c et côté
é serveur
Points clés
Dans ceette animation, vo ous verrez comment les gestionnaaires d'événementts côté
client ett côté serveur son
nt traités, à la foiss sur le client et su
ur le serveur.
1. Le client
c demande u
une page Web Fo
orms ASP.NET au
u server Web.
2. Le serveur
s renvoie aau client une pagee contenant le baalisage et le scriptt. Par
exeemple, cette page inclut un contrôle TextBox et un n bouton Envoyerr. La
pagge contient égalemment le script côtté client qui valide le contenu de laa zone
de texte.
t
3. L'uttilisateur entre dees informations non
n valides dans la zone de texte et e le
scriipt côté client gén
nère une boîte de message. Le traiteement côté client diminue
le trrafic réseau et am
méliore les temps de
d réponse car aucune information n n'est
envvoyée au serveur.
4. L'uttilisateur corrige les informations dans la zone de texte et clique su
ur le
bouuton Envoyer.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-26 Introduction au développement Web avec Microsoft® Visual Studio® 2010
5. Les informations sont validées sur le côté client et envoyées au serveur, sur
lequel le traitement côté serveur est exécuté.
6. Le serveur répète la validation, puis stocke les informations de la zone de texte
dans une base de données.
7. Les ressources côté serveur peuvent être utilisées pour d'autres traitements de
données car le script côté client n'accède pas directement aux ressources du
serveur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web
W Microsoft® ASP.NET 4-27
Création de gestio
onnaires d'év
vénements côté
c serveur
Points clés
Pour crééer un gestionnaiire d'événements côté serveur dan
ns Visual Studio 2010,
2
vous deevez effectuer les trois étapes suivaantes :
1. créeer le contrôle quii génère l'événem
ment sur le formullaire Web.
2. fournir le code du gestionnaire d'évéénements dans le fichier code-behiind qui
gèree l'événement.
3. lier le gestionnaire d'événements à l'évvénement de contrôle. Ces étapes peuvent
p
êtree effectuées dans n
n'importe quel orrdre, selon vos mééthodes de travaill.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-28 Introduction au développement Web avec Microsoft® Visual Studio® 2010
[Visual Basic]
<form id="form1" method="post" runat="server">
<asp:Button ID="Button1" runat="server"/>
</form>
[Visual Basic]
Protected Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
...
End Sub
[Visual C#]
<form id="form1" method="post" runat="server">
<asp:Button ID="Button1" onclick="Button1_Click" runat="server"/>
</form>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-29
[Visual C#]
protected void Button1_Click(object sender, System.EventArgs e)
{
...
}
[Visual C#]
Button1.Click += new EventHandler(Button1_Click);
Points clés
Dans ceette démonstrationn, l'instructeur vou
us montrera comm ment créer un gesstionnaire
d'événements pour un b bouton de page Web W permettant de d modifier le textte d'une
étiquettte. Vous pouvez eeffectuer cette démmonstration à l'aiide de Visual C# ou
Visual Basic.
B
Procéd
dure de démonsstration
1. Ouvvrez une session sur 10557A-GEN
N-DEV en tant qu
u'utilisateur Stagiiaire avec
le mot
m de passe Pa$$w0rd.
• Pour ouvrir unee session sur 10557A-GEN-DEV, utilisez
u les inform
mations
d'identification de l'utilisateur su
uivantes :
• Nom d'utiliisateur : Stagiairee
• Mot de passse : Pa$$w0rd
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-31
[Visual Basic]
Protected Sub Button1_Click(ByVal sender As Object,
ByVal e As System.EventArgs) Handles Button1.Click
...
End Sub
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-32 Introduction au développement Web avec Microsoft® Visual Studio® 2010
[Visual C#]
protected void Button1_Click(object sender, System.EventArgs e)
{
...
}
[Visual Basic]
Label1.Text = "You clicked the button"
[Visual C#]
Label1.Text = "You clicked the button";
[Visual Basic]
Protected Sub Button1_Click(ByVal sender As Object,
ByVal e As System.EventArgs) Handles Button1.Click
[Visual C#]
...
<asp:Button ID="Button1" runat="server" Text="Button"
onclick="Button1_Click"/>
...
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-33
Remarque : ouvrez la source affichée en cliquant sur Afficher la source dans le menu
Page ; le code du gestionnaire d'événements n'est pas affiché sur le client.
Utilisa
ation de con
ntrôles serveu
ur Web à l'aiide des
gestioonnaires d'év
vénements
Points clés
Dans dee nombreuses applications Web, vous v devez écriree du code pour la lecture
à partir des contrôles surr un formulaire et e l'écriture dans les
l contrôles sur le même
formulaaire. Pour ce faire, utilisez les gestiionnaires d'événeements côté serveeur.
Lorsque l'utilisateur clique sur le bouton, ce qu'il a tapé dans la zone de texte
apparaît. Le code suivant assigne la variable de chaîne greetingString à une
concaténation de « Hello » et du contenu de la zone de texte NameTextBox.
Le texte indiqué dans le contrôle NameTextBox est extrait en l'assignant à la
variable greetingString.
[Visual Basic]
Dim greetingString As String = "Hello " & NameTextBox.Text
[Visual C#]
string greetingString = "Hello " + NameTextBox.Text;
Le code côté serveur assigne la propriété Text du contrôle serveur Web GreetingLabel
à une chaîne de texte.
[Visual Basic]
GreetingLabel.Text = "new text"
[Visual C#]
GreetingLabel.Text = "new text";
Leçon 3
Création
n de classe
es et de composa
c nts à l'aid
de
de Visual Studio 2
2010
Objectifs de la leçon
Au terme de cette leçon, vous serez à même d'effectuer les tâches suivantes :
• décrire les types, les composants et les classes ;
• créer un composant ;
• expliquer comment créer une classe dans Visual Studio 2010 ;
• ajouter des constantes et des variables membres à une classe ;
• ajouter des propriétés et des méthodes à une classe ;
• ajouter des constructeurs de classe ;
• accéder aux composants d'un formulaire Web ASP.NET.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web
W Microsoft® ASP.NET 4-39
Points clés
Lorsquee vous développeez une application n à l'aide d'un lan
ngage orienté objet tel que
Visual Basic
B ou Visual C#, vous pouvez utiliser
u les types et
e composants existants.
Par exem mple, la bibliothèèque de classes .N
NET Framework contient de nombreux
types, teels que System.String et System.O Object.
Les types fournissent les fonctionnalités dans une application. Vous pouvez les
utiliser pour organiser les fonctions et leur donner un nom unique pour les
référencer. Les types possèdent également des propriétés et des méthodes. Les
propriétés permettent de définir les caractéristiques d'un type, tandis que les
méthodes permettent d'appeler les actions d'un type. Si vous souhaitez utiliser
un type et ses méthodes, vous devez instancier une instance du type.
Classe
Dans les langages orientés objet, le concept d'abstraction est important. L'abstraction
est une sorte d'organisation dans laquelle sont regroupées les méthodes, les données
et les fonctions ayant un objectif commun. La création et l'utilisation des classes sont
des composants essentiels de l'abstraction. Une classe représente un modèle d'objet.
Ce modèle définit les attributs de stockage des données, ainsi que les opérations de
manipulation des données. Une classe définit également un ensemble de restrictions
permettant d'autoriser et de refuser l'accès à ses attributs et opérations.
Vous pouvez créer une classe dans tout projet Visual Studio 2010. Vous pouvez
également créer une bibliothèque de classes, qui ne contient par défaut qu'une seule
classe et ses méthodes, mais pas d'interface utilisateur. Si vous créez une classe dans
un projet existant, la classe existe dans l'espace de noms du projet. Si vous créez
une bibliothèque de classes indépendante, Visual Studio 2010 crée un espace de
noms par défaut, puis place la nouvelle classe dans cet espace de noms.
Lorsque vous créez une classe dans un projet, le fichier de classe est compilé dans
un assembly d'application et ne peut pas être réutilisé par d'autres applications. Si
vous créez une bibliothèque de classes, vous créez un composant réutilisable.
Question : quelles sont les différences entre une structure, une classe, une propriété,
une méthode, un objet et un composant ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-42 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
[Visual Basic]
Namespace YourComponentNamespace
Public Class Class1
End Class
End Namespace
Démoonstration : C
Comment cré
éer une classse dans Visual
Studio
o 2010
Points clés
Dans ceette démonstratio
on, vous découvriirez comment crééer une bibliothèq
que de
classes, puis comment l'aappeler depuis une application Web.
W
Procéd
dure de démonsstration
1. Crééez un projet de b
bibliothèque de classes
c nommé HelloWorld dans la
solu
ution Visual Stud
dio 2010.
a. Démarrer de 10557A-GEN-DEV, pointez
Dans le menu D p sur Touss les
programmes, clliquez sur Microsoft Visual Studiio 2010, puis surr
Microsoft Visua
al Studio 2010.
b. Dans le menu F
Fichier de Visual Studio 2010, cliq
quez sur Nouveau
u site
Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-45
c. Dans la boîte de dialogue Nouveau site Web, dans le volet gauche, cliquez sur
Visual Basic ou Visual C#. Dans le volet central, assurez-vous que l'option
Site Web ASP.NET vide est sélectionnée. Dans la liste Emplacement Web,
cliquez sur Système de fichiers. Enfin, dans la zone de texte, entrez
C:\WebSite1, puis cliquez sur OK.
d. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Solution
WebSite1 (1 projet). Pointez sur Ajouter, puis cliquez sur Nouveau projet.
e. Dans la boîte de dialogue Ajouter un nouveau projet, dans le volet
gauche, cliquez sur Visual Basic ou Visual C#. Dans le volet central,
cliquez sur Bibliothèque de classes. Enfin, dans la zone Nom, entrez
HelloWorld, puis cliquez sur OK.
Remarque : Une classe par défaut (Class1.vb ou Class1.cs) est créée dans l'Explorateur
de solutions et s'ouvre dans la fenêtre de l'éditeur de code.
[Visual Basic]
Function SayHello() As String
Return "Hi from Visual Basic component."
End Function
[Visual C#]
public string SayHello()
{
return "Hi from C# component.";
}
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-46 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Points clés
Après avvoir créé la classee, ajoutez les constantes et les variiables membres, qui sont
habituellement privées. N N'oubliez pas que l'ajout de consttantes et de variabbles
membrees est un processsus continu, tout au long du développement de vottre classe.
Les variiables membres ssont souvent utiliisées en tant que champs de stock kage pour
les prop
priétés publiques car elles stocken nt les valeurs définnies ou obtenuess par une
propriété. Les exemples suivants illustren nt la classe Custo
omer contenant trois
t
constanntes et variables m
membres privées. L'espace de nom ms a été omis.
[Visua
al Basic]
Public
c Class Custome
er
' The default cr
redit limit
Pr
rivate Const cr
reditLimit As In
nteger = 50000
' Current custom
mer ID (nullable
e)
Pr
rivate customer
rID? As Guid = Nothing
N
' Current custom
mer name
Pr
rivate customer
rName As String = Nothing
End Cl
lass
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-48 Introduction au développement Web avec Microsoft® Visual Studio® 2010
[Visual C#]
class Customer
{
// The default credit limit
private const int creditLimit = 50000;
// Current customer ID (nullable)
private Guid? customerID = null;
// Current customer name
private string customerName = null;
}
[Visual Basic]
#Region "Member fields"
' The default credit limit
Private Const creditLimit As Integer = 50000
...
#End Region
[Visual C#]
#region Member fields
// The default credit limit
private const int creditLimit = 50000;
...
#endregion
Le code contient souvent des valeurs de constante qui sont utilisées dans un type.
Les valeurs de constante (souvent appelées constantes) permettent également de
donner un nom convivial à certains nombres difficiles à retenir ou sans signification
évidente. Dans de tels cas, vous pouvez améliorer la lisibilité de votre code et faciliter
sa gestion à l'aide des constantes. Une constante est un nom explicite prenant la place
d'un nombre ou d'une chaîne qui ne change pas. Les constantes stockent les valeurs
qui, comme le nom l'indique, restent constantes au cours de l'exécution d'une
application.
Vous déclarez une constante avec l'instruction Const/const, en utilisant les mêmes
indications que pour la création d'un nom de variable. Avec Visual Basic, si Option
Strict a la valeur On, vous devez déclarer explicitement le type de constante.
La portée d'une constante est identique à celle d'une variable déclarée au même
emplacement. Pour créer une constante qui existe dans la portée d'une procédure
particulière, déclarez-la dans cette procédure. Pour créer une constante disponible
dans une application, déclarez-la à l'aide du mot clé Public dans la section des
déclarations de la classe. Bien que les constantes ressemblent aux variables, vous
ne pouvez pas les modifier ou leur assigner de nouvelles valeurs, comme vous le
feriez pour des variables. Les constantes de votre code peuvent être intrinsèques
au modèle d'objet pour les contrôles ou les composants que vous utilisez, ou elles
peuvent être définies par l'utilisateur.
Points clés
Une foiss que vous avez créé la classe et ajo
outé les variables membres, vous pouvez
p
ajouter les
l propriétés d'acccès public ou priivé à ces variabless membres. Les ex
xemples
suivantss illustrent deux p
propriétés pour laa classe Customerr.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-51
[Visual Basic]
''' <summary>
''' The unique customer ID
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property ID() As Guid?
Get
Return Me.customerID
End Get
Private Set(ByVal value As Guid?)
Me.customerID = value
End Set
End Property
''' <summary>
''' The full customer name
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property Name() As String
Get
Return Me.customerName
End Get
Set(ByVal value As String)
' Null value?
If value Is Nothing Then
Me.customerName = ""
Else
' Only get the first 50 characters
If (value.Length > 50) Then
Me.customerName = value.Substring(0, 50)
Else
Me.customerName = value
End If
End If
End Set
End Property
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-52 Introduction au développement Web avec Microsoft® Visual Studio® 2010
[Visual C#]
/// <summary>
/// The unique customer ID
/// </summary>
public Guid? ID
{
get
{
return this.customerID;
}
private set
{
this.customerID = value;
}
}
/// <summary>
/// The full customer name
/// </summary>
public string Name
{
get
{
return this.customerName;
}
set
{
// Null value?
if (value == null)
this.customerName = "";
else
// Only get the first 50 characters
if (value.Length > 50)
this.customerName = value.Substring(0, 50);
else
this.customerName = value;
}
}
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-53
Les deux propriétés en lecture-écriture, ID et Name, sont publiques pour tous les
utilisateurs de la classe. Notez que les accesseurs Get et les méthodes setter, utilisés
pour définir et obtenir la valeur de la propriété ou le champ de stockage de la
propriété, peuvent avoir un modificateur d'accès différent de celui de la propriété
proprement dite. Pour la propriété Name, aucun modificateur d'accès n'a été spécifié
pour l'accesseur Get ou la méthode setter ; le modificateur d'accès à la propriété
public est donc appliqué. Toutefois, pour la propriété ID, seul l'accesseur Get hérite
du modificateur d'accès de la propriété, tandis que la méthode setter est privée. La
méthode setter étant privée, vous pouvez uniquement définir la propriété à partir
de la classe. Cela permet de garantir que l'ID n'est pas modifié après l'instanciation
de la classe.
[Visual Basic]
''' <summary>
''' Returns the total order amount for the current customer until
today
''' </summary>
''' <param name="startDate">Start accumulating from this date</param>
''' <returns>The total order amount</returns>
''' <remarks></remarks>
Public Function GetTotalOrderAmount(ByVal startDate As DateTime) As
Double
' Get total order amount from database
Return dbObject.GetOrderTotal(ID, startDate)
End Function
[Visual C#]
/// <summary>
/// Returns the total order amount for the current customer until
today
/// </summary>
/// <param name="startDate">Start accumulating from this date</param>
/// <returns>The total order amount</returns>
public double GetTotalOrderAmount(DateTime startDate)
{
// Get total order amount from database
return dbObject.GetOrderTotal(ID, startDate);
}
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-54 Introduction au développement Web avec Microsoft® Visual Studio® 2010
L'objet dbObject est un objet privé qui accède à la table Customers de la base de
données, en transmettant l'ID du client et la date de début pour le cumul du montant
de commande, puis en renvoyant le montant total de commande du client.
Si vous n'avez pas besoin de contrôler l'affectation de noms du champ de stockage
ou la façon dont la valeur est assignée à un stockage dans une propriété, vous pouvez
utiliser les propriétés implémentées automatiquement. Ces dernières vous permettent
d'écrire votre code plus rapidement et de le rendre plus lisible. L'exemple suivant
illustre une propriété implémentée automatiquement.
[Visual Basic]
Public Property Name() As String
[Visual C#]
public string Name { get; set; }
La différence entre les propriétés et les méthodes est importante et doit être
évidente dans leurs noms ; par exemple, Name pour une propriété et GetName
pour une méthode. De manière générale, faites précéder une méthode d'un verbe.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web
W Microsoft® ASP.NET 4-55
Points clés
Toute cllasse, sauf si elle eest rendue abstraiite, nécessite au moins
m un construccteur
pour insstancier une instaance de la classe. Les
L classes abstraaites ne peuvent pas p être
instanciiées et sont initialeement créées commme type génériqu ue à partir duqueel vous
devez dériver vos proprees classes ou en héériter. Un constru ucteur sert à instan
ncier et
initialiseer la classe. Les ex
xemples suivants illustrent deux co onstructeurs pourr la classe
Custom mer.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-56 Introduction au développement Web avec Microsoft® Visual Studio® 2010
[Visual Basic]
''' <summary>
''' Default parameterless constructor
''' </summary>
''' <remarks></remarks>
Public Sub New()
' Initialize member backing fields with default values
Me.ID = Guid.NewGuid()
End Sub
[Visual C#]
/// <summary>
/// Default parameterless constructor
/// </summary>
public Customer()
{
// Initialize member backing fields with default values
this.ID = Guid.NewGuid();
}
Notez comment les constructeurs assignent les valeurs aux champs de stockage via
les propriétés, et non directement. Il est recommandé de procéder de cette façon car
les propriétés peuvent contenir une logique visant à restreindre les valeurs pouvant
être assignées aux champs de stockage. Vous pouvez ajouter la même logique aux
constructeurs, ce qui dupliquerait toutefois le code.
Si plusieurs développeurs utilisent le même type de code, et potentiellement de
grandes parties de code (tels les constructeurs génériques), il est conseillé de créer
et de distribuer un extrait de code. Ce dernier est disponible à partir des éditeurs
de texte et des éditeurs de code dans Visual Studio, à l'emplacement correspondant.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web
W Microsoft® ASP.NET 4-57
Points clés
Une foiss que vous avez créé des types pub blics dans un commposant, vous pou uvez
rendre ces
c composants d disponibles pour d'autres
d programm mes. Pour ce fairee, vous
devez d'abord référencer le composant DL LL. (Ce n'est pas forcément
f un commposant
.NET Frramework ; il peut s'agir d'un autree projet de la soluttion ou d'un DLL L de
modèle COM (Componeent Object Model))). Ensuite, pour accéder a aux méthhodes de
la classee, vous devez instaancier l'objet de classe
c en référençaant son espace dee noms et
son nom m de classe.
Référen
ncement de la D
DLL
Pour poouvoir utiliser les types dans un co
omposant, vous devez
d d'abord ajo
outer une
référencce au projet du coomposant.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-58 Introduction au développement Web avec Microsoft® Visual Studio® 2010
• Parcourir. Si un composant n'a pas été inscrit en tant que composant .NET
ou COM, vous pouvez accéder à l'emplacement du composant en question.
• Récent. Affiche la liste des composants récemment ajoutés aux projets sur
votre ordinateur.
4. Sélectionnez le composant requis, puis cliquez sur OK.
Le composant est ajouté au dossier References (WAP) ou au dossier Bin (WSP)
dans l'Explorateur de solutions. La référence rend l'espace de noms du composant
accessible à l'application.
Instanciation de l'objet
Après avoir ajouté une référence au composant, vous pouvez instancier
l'objet de classe. Les lignes de code suivantes déclarent une nouvelle variable
nommée currentCustomer, de la classe Customer, dans l'espace de noms
ComponentNamespace.
[Visual Basic]
Dim currentCustomer As New ComponentNamespace.Customer
[Visual C#]
ComponentNamespace.Customer currentCustomer = new
ComponentNamespace.Customer();
[Visual Basic]
Imports ComponentNamespace
...
Dim currentCustomer As New Customer
[Visual C#]
using ComponentNamespace;
...
Customer currentCustomer = new Customer();
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-60 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Accès à l'objet
Une fois l'objet instancié, vous pouvez l'utiliser comme tout autre objet de votre
projet. Vous disposez de toutes les méthodes et propriétés publiques de la classe. Par
exemple, le code suivant transmet un paramètre à la fonction GetTotalOrderAmount
de la classe Customer et assigne la valeur renvoyée à la variable total.
[Visual Basic]
Dim total as Double = currentCustomer.GetTotalOrderAmount(startDate)
[Visual C#]
double total = currentCustomer.GetTotalOrderAmount(startDate);
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web
W Microsoft® ASP.NET 4-61
Leçon 4
Gestion des
d événements relatifs
r au
ux pages
Objectifs de la leçon
Au terme de cette leçon, vous serez à même d'effectuer les tâches suivantes :
• décrire un cycle de vie des événements relatifs aux pages ;
• décrire le processus de publication ;
• gérer les publications ;
• expliquer comment gérer les événements relatifs aux pages.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web
W Microsoft® ASP.NET 4-63
Points clés
Lors de la demande d'un ne page ASP.NET T, une série d'évén
nements relatifs aux
a pages
surviennnent. Ces événemments se produiseent toujours danss le même ordre ; c'est ce
que l'on
n appelle le cycle de vie des événem
ments relatifs aux
x pages.
Cycle de
d vie des événements relatifss aux pages
ux pages inclut lees événements suivants,
Le cyclee de vie des événeements relatifs au
qui survviennent dans l'ordre ci-dessous :
1. Pag
ge_Init. Se produ ous les contrôles ont été initialiséss.
uit une fois que to
2. Pag
ge_Load. Se prod duit après l'initialiisation des contrô
ôles et le chargem
ment de
tou
us les contrôles.
3. Pagge_LoadComplette. Se produit aprrès le chargement de tous les conttrôles de
la page.
p Vous pouveez utiliser cet évén
nement pour fairee référence à des valeurs
ou assigner des valeeurs à tous les con
ntrôles.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-64 Introduction au développement Web avec Microsoft® Visual Studio® 2010
La fin du cycle de vie des événements relatifs aux pages supprime la page de la
mémoire.
La plupart des événements de contrôle ne se produisent pas tant que le formulaire Web
n'est pas publié sur le serveur. Par exemple, les événements Change sont gérés dans
un ordre aléatoire sur le serveur une fois que le formulaire est publié. À l'inverse, les
événements Click peuvent entraîner l'envoi immédiat du formulaire au serveur.
Par exemple, si un utilisateur entre un texte dans plusieurs contrôles sur un
formulaire, puis qu'il clique sur le bouton Envoyer, les événements Change
associés aux contrôles de texte ne seront pas traités tant que le formulaire
n'est pas envoyé au serveur en réponse à l'événement Click.
Question : quels sont les événements de cycle de vie de page les plus fréquemment
utilisés ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web
W Microsoft® ASP.NET 4-65
Proce
essus de publication
Points clés
Pour coomprendre le processus de publicaation, vous devezz connaître le
fonctionnnement des form mulaires dans ASP.NET, la manièrre de n'exécuter
le code du gestionnaire dd'événements Page_Load que lorsqu'une page est
affichéee pour la premièree fois, et la définition des contrôlees pour effectuer
une pub blication immédiaate sur le serveurr.
• La première
p mande une page au serveur, le tesst
fois qu'un utilisateur dem
de Page.IsPostBack
P k dans l'événemen nt Page_Load estt effectué et le cod
de
du bloc est exécuté.
• Le serveur
s renvoie aalors la page à l'uttilisateur.
• Lorrsque l'utilisateurr modifie la sélecttion dans la zone de liste, puis qu''il
cliq
que sur le bouton n Envoyer, les infoformations sont renvoyées au servveur.
• Le serveur
s peut déteerminer qu'il s'agiit d'une page en cours
c de publicattion
sur lui-même. Par co
onséquent, le testt de Page.IsPostB Back dans l'événeement
ge_Load échoue et le code du bloc n'est pas exécuté.
Pag
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-66 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Question : quelle propriété peut être utilisée dans tous les événements, et pas
seulement l'événement Load ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web
W Microsoft® ASP.NET 4-67
Gestio
on des publications
Points clés
L'événement Page_Load d est exécuté sur toutes les deman
ndes d'une page, qu'il
q
s'agisse de la première d
demande ou d'unee publication.
Propriéété Page.IsPosttBack
Puisquee l'événement Pag ge_Load est exéccuté à chaque dem mande de page, tout le
code dee cet événement ssera exécuté chaq que fois que la paage sera demandéée.
Toutefo
ois, si vous utilisezz des événements de publication, il n'est pas nécesssaire
de réexéécuter tout le cod
de. Vous pouvez utiliser
u la propriéété Page.IsPostBa
ack
pour gaarantir que le codde n'est exécuté quue lors de la dem
mande initiale de la
l page.
Le codee suivant illustre ccette opération.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-68 Introduction au développement Web avec Microsoft® Visual Studio® 2010
[Visual Basic]
Protected Sub Page_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Load
[Visual C#]
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// Executes only on initial page load.
}
Démoonstration : ccomment gé
érer les événe
ements relattifs aux
pagess
Points clés
Dans ceette démonstration n, vous afficherezz l'ordre des événeements relatifs au
ux pages,
y comprris les gestionnairres d'événements et la sortie de la page.
p
Procéd
dure de démonsstration
Dans la démonstration suivante, vous verrez l'ordre des événements relatifs aux
pages, y compris les gestionnaires d'événements et la sortie de la page. Vous pouvez
effectuer ces tâches à l'aide de Visual Basic ou Visual C#.
Il est important de comprendre l'ordre dans lequel les événements sont déclenchés,
et lorsque vous devez faire la différence entre une publication et une non-publication
de page.
[Visual Basic]
Protected Sub Page_Unload(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Unload
If Not Me.IsPostBack Then
NonPostBackEventLabel.Text &= "Unload event<br />"
Else
PostBackEventLabel.Text &= "Unload event<br />"
End If
End Sub
[Visual C#]
protected void Page_Unload(object sender, EventArgs e)
{
if (!this.IsPostBack)
NonPostBackEventLabel.Text += "Unload event";
else
PostBackEventLabel.Text += "Unload event";
}
Atelier pratique
p : Ajout de
e fonction
nnalités à un
formulaire Web M Microsoftt ASP.NETT
Introdu
uction
Dans ceet atelier pratiquee, vous implémen nterez le code et lees procédures
événemmentielles sur un ssite Web ASP.NET T, et créerez un composant
c que vous
référenccerez à partir de ll'application Web
b. Vous implémen nterez également des
événemments de contrôle serveur et relatifss aux pages sur lee site Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-73
Objectifs
Au terme de cet atelier pratique, vous serez à même d'effectuer les tâches suivantes :
• implémenter du code dans une application Web ;
• créer des procédures d'événement ;
• créer un composant d'entité, puis le référencer à partir d'une application Web ;
• gérer les événements de contrôle serveur et ceux relatifs aux pages.
Scéna
ario de l'ateliier pratique
Vous êtes développeur cchez Contoso, Ltd d, une grande enttreprise disposan
nt d'une
base de clients mondialee. Votre entreprise utilise des appllications Microsoft .NET
pour crééer, personnaliseer et gérer ses info
ormations client.
Elle utillise un site Web d
distinct pour permmettre une interaaction rapide et siimple
avec less clients. L'organisation souhaite rendre son site Web
W dynamique ett
permetttre aux utilisateurrs d'entrer et d'en
nregistrer les info
ormations relativees aux
clients avec
a une durée m
minimale de boucclage.
Pour cela, vous devez atttacher le code req
quis à l'interface utilisateur
u qui peermet à
l'applicaation de répondre aux actions dess utilisateurs et au
utres événementss. Vous
devez éggalement vous asssurer que l'appliication atteint le niveau
n de performmances
spécifié en ajoutant le co
ode dans un fichier de classe codee-behind précomp pilé,
économ misant ainsi un tem
mps de traitemen nt considérable.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-75
End Sub
End Sub
End Sub
Résultats : Au terme de cet exercice, vous aurez créé des procédures événementielles
pour les contrôles Button et les événements Page_Load, Page_LoadComplete et
Page_Unload.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-78 Introduction au développement Web avec Microsoft® Visual Studio® 2010
#Region "Properties"
#End Region
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-80 Introduction au développement Web avec Microsoft® Visual Studio® 2010
''' <summary>
''' The unique customer ID
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property ID() As Guid?
''' <summary>
''' The customer first name
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property FirstName As String
Get
Return Me.customerFirstName
End Get
''' <summary>
''' The customer last name
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property LastName As String
Get
Return Me.customerLastName
End Get
''' <summary>
''' The customer address, including street name, house number and
floor
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property Address As String
Get
Return Me.customerAddress
End Get
• Ajoutez les propriétés restantes dans la région Properties à l'aide d'un extrait
de code nommé Customer class properties. L'extrait de code a été fourni par
le développeur principal et il est placé dans le dossier Mes extraits de code.
Cliquez avec le bouton droit sur la ligne suivant la déclaration de la propriété
Address et insérez l'extrait en cliquant sur Insérer un extrait.
''' <summary>
''' The customer zip code or postal code
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property ZipCode() As String
Get
Return Me.customerZipCode
End Get
Set(ByVal value As String)
' Null value?
If value Is Nothing Then
Me.customerZipCode = ""
Else
' Only get the first 10 characters
If (value.Length > 10) Then
Me.customerZipCode = value.Substring(0, 10)
Else
Me.customerZipCode = value
End If
End If
End Set
End Property
''' <summary>
''' The name of the city in which the customer lives
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
''' <summary>
''' The name of the state or region in which the customer lives
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property State() As String
Get
Return Me.customerState
End Get
Set(ByVal value As String)
' Null value?
If value Is Nothing Then
Me.customerState = ""
Else
' Only get the first 30 characters
If (value.Length > 30) Then
Me.customerState = value.Substring(0, 30)
Else
Me.customerState = value
End If
End If
End Set
End Property
''' <summary>
''' The ID of the country in which the customer lives
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property CountryID() As Guid?
Get
Return Me.customerCountryID
End Get
Set(ByVal value As Guid?)
Me.customerCountryID = value
End Set
End Property
''' <summary>
''' The customer phone number
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property Phone() As String
Get
Return Me.customerPhone
End Get
Set(ByVal value As String)
' Null value?
If value Is Nothing Then
Me.customerPhone = ""
Else
' Only get the first 30 characters
If (value.Length > 30) Then
Me.customerPhone = value.Substring(0, 30)
Else
Me.customerPhone = value
End If
End If
End Set
End Property
''' <summary>
''' The customer e-mail address
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
''' <summary>
''' The customer web address
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property WebAddress() As String
Get
Return Me.customerWebAddress
End Get
Set(ByVal value As String)
If (value Is Nothing) Then
Me.customerWebAddress = ""
Else
' Only get the first 80 characters
If (value.Length > 80) Then
Me.customerWebAddress = value.Substring(0, 80)
Else
Me.customerWebAddress = value
End If
End If
End Set
End Property
''' <summary>
''' The current credit limit of the customer
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property CreditLimit() As Integer
Get
Return Me.customerCreditLimit
End Get
Set(ByVal value As Integer)
' Negative value?
If value < 0 Then
Me.customerCreditLimit = 0
Else
Me.customerCreditLimit = value
End If
End Set
End Property
''' <summary>
''' Does the customer subscriber to news?
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property NewsSubsriber() As Boolean
Get
Return Me.customerNewsSubscriber
End Get
Set(ByVal value As Boolean)
Me.customerNewsSubscriber = value
End Set
End Property
''' <summary>
''' The date the customer was created in the system
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
''' <summary>
''' The name of the user creating the customer
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property CreatedBy() As String
Get
Return Me.customerCreatedBy
End Get
Set(ByVal value As String)
' Null value?
If value Is Nothing Then
Me.customerCreatedBy = ""
Else
' Only get the first 15 characters
If (value.Length > 15) Then
Me.customerCreatedBy = value.Substring(0, 15)
Else
Me.customerCreatedBy = value
End If
End If
End Set
End Property
''' <summary>
''' The date the customer was last modified in the system
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
''' <summary>
''' The name of the user who last modified the customer
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property ModifiedBy() As String
Get
Return Me.customerModifiedBy
End Get
Set(ByVal value As String)
' Null value?
If value Is Nothing Then
Me.customerModifiedBy = ""
Else
' Only get the first 15 characters
If (value.Length > 15) Then
Me.customerModifiedBy = value.Substring(0, 15)
Else
Me.customerModifiedBy = value
End If
End If
End Set
End Property
#Region "Constructors"
#End Region
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-90 Introduction au développement Web avec Microsoft® Visual Studio® 2010
''' <summary>
''' Default parameterless constructor
''' </summary>
''' <remarks></remarks>
Public Sub New()
' Initialize backing fields with default values
Me.ID = Guid.NewGuid()
Me.CreatedDate = DateTime.Now
End Sub
''' <summary>
''' Initializes backing fields with passed and default values
''' </summary>
''' <param name="id"></param>
''' <remarks></remarks>
Public Sub New(ByVal id As Guid?)
' Initialize backing fields with passed and default values
Me.ID = id
Me.CreatedDate = DateTime.Now
End Sub
''' <summary>
''' Initializes with a value for all backing fields
''' </summary>
''' <param name="id"></param>
''' <param name="firstName"></param>
''' <param name="lastName"></param>
''' <param name="address"></param>
''' <param name="zipCode"></param>
''' <param name="city"></param>
''' <param name="state"></param>
''' <param name="countryID"></param>
''' <param name="phone"></param>
''' <param name="emailAddress"></param>
Me.CreatedBy = createdBy
Me.ModifiedDate = modifiedDate
Me.ModifiedBy = modifiedBy
End Sub
''' <summary>
''' Instantiates Customer object
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
' Instantiate Customer
instantiateCustomerObject()
End Sub
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-94 Introduction au développement Web avec Microsoft® Visual Studio® 2010
''' <summary>
''' Instantiates and populates the Customer member object
''' </summary>
''' <remarks></remarks>
Private Sub instantiateCustomerObject()
' First time loading page?
If Not Me.IsPostBack Then
' Instantiate new Customer object
currentCustomer = New
CustomerManagementEntities.Customer()
Else
' Instantiate new Customer object with user input
currentCustomer = New CustomerManagementEntities.Customer(
Nothing, CustomerFirstNameTextBox.Text,
CustomerLastNameTextBox.Text,
CustomerAddressTextBox.Text,
CustomerZipCodeTextBox.Text, CustomerCityTextBox.Text,
CustomerStateTextBox.Text, Nothing,
CustomerPhoneTextBox.Text,
CustomerEmailAddressTextBox.Text,
CustomerWebAddressTextBox.Text, -1,
CustomerNewsSubscriberCheckBox.Checked, DateTime.Now,
_
"", Nothing, "")
End If
End Sub
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-95
''' <summary>
''' Populates UI controls
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Protected Sub Page_LoadComplete(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.LoadComplete
' Populate the UI controls
populateUI()
End Sub
''' <summary>
''' Populates the UI controls with the values in the
''' current Customer object
''' </summary>
''' <remarks></remarks>
Private Sub populateUI()
CustomerFirstNameTextBox.Text = currentCustomer.FirstName
CustomerLastNameTextBox.Text = currentCustomer.LastName
CustomerAddressTextBox.Text = currentCustomer.Address
CustomerZipCodeTextBox.Text = currentCustomer.ZipCode
CustomerCityTextBox.Text = currentCustomer.City
CustomerStateTextBox.Text = currentCustomer.State
If currentCustomer.CountryID.HasValue Then
CustomerCountryDropDownList.SelectedValue =
currentCustomer.CountryID.Value.ToString()
Else
CustomerCountryDropDownList.SelectedIndex = -1
End If
CustomerPhoneTextBox.Text = currentCustomer.Phone
CustomerEmailAddressTextBox.Text =
currentCustomer.EmailAddress
CustomerWebAddressTextBox.Text = currentCustomer.WebAddress
CustomerCreditLimitTextBox.Text =
currentCustomer.CreditLimit.ToString()
CustomerNewsSubscriberCheckBox.Checked =
currentCustomer.NewsSubscriber
End Sub
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-96 Introduction au développement Web avec Microsoft® Visual Studio® 2010
''' <summary>
''' Destroys objects
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Protected Sub Page_Unload(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Unload
' Destroy Customer object
currentCustomer = Nothing
End Sub
''' <summary>
''' Redirects to home page
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Protected Sub CustomerCancelButton_Click(ByVal sender As Object,
ByVal e As System.EventArgs) Handles CustomerCancelButton.Click
' Redirect to home page
Response.Redirect("~/Default.aspx")
End Sub
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-97
''' <summary>
''' Saves the current customer information and adds default values
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Protected Sub customerInsertButton_Click(ByVal sender As Object,
ByVal e As System.EventArgs) Handles customerInsertButton.Click
' Add the current user name
currentCustomer.CreatedBy = Context.User.Identity.Name
' Add the user credit limit
currentCustomer.CreditLimit = 50000
End Sub
Remarque : le code initial pour l'enregistrement des informations clients est créé dans ce
module. Toutefois, le code final pour l'enregistrement dans la base de données sera créé
dans le module 8.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-98 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Résultats : au terme de cet exercice, vous aurez ajouté du code afin de gérer les
événements Page.Load, Page.LoadComplete et Page.Unload pour le formulaire Web
InsertCustomer. vous aurez également ajouté le code permettant de gérer l'événement
Click pour les contrôles des boutons Insert and Cancel.
Remarque : vous trouverez les corrigés des exercices sur le CD-ROM d'accompagnement
du cours.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-99
Section 2 : Visual C#
Exercice 1 : Implémentation de code dans une
application Web
Dans cet exercice, les tâches principales sont les suivantes :
1. Ouvrir un site Web ASP.NET existant.
Résultats : au terme de cet exercice, vous aurez créé des procédures événementielles
pour les événements Page_LoadComplete et Page_Unload des contrôles button.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-102 Introduction au développement Web avec Microsoft® Visual Studio® 2010
#region Properties
#endregion
/// <summary>
/// The unique customer ID
/// </summary>
public Guid? ID { get; set; }
/// <summary>
/// The customer first name
/// </summary>
public string FirstName
{
get
{
return this.customerFirstName;
}
set
{
// Null value?
if (value == null)
this.customerFirstName = "";
else
// Only get the first 50 characters
if (value.Length > 50)
this.customerFirstName = value.Substring(0, 50);
else
this.customerFirstName = value;
}
}
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-105
/// <summary>
/// The customer last name
/// </summary>
public string LastName
{
get
{
return this.customerLastName;
}
set
{
// Null value?
if (value == null)
this.customerLastName = "";
else
// Only get the first 30 characters
if (value.Length > 30)
this.customerLastName = value.Substring(0, 30);
else
this.customerLastName = value;
}
}
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-106 Introduction au développement Web avec Microsoft® Visual Studio® 2010
/// <summary>
/// The customer address, including street name, house number and
floor
/// </summary>
public string Address
{
get
{
return this.customerAddress;
}
set
{
// Null value?
if (value == null)
this.customerAddress = "";
else
// Only get the first 50 characters
if (value.Length > 50)
this.customerAddress = value.Substring(0, 50);
else
this.customerAddress = value;
}
}
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-107
• Ajoutez les propriétés restantes dans la région Properties à l'aide d'un extrait
de code nommé Customer class properties. L'extrait de code a été fourni par
le développeur principal et il est placé dans le dossier Mes extraits de code.
Cliquez avec le bouton droit sur la ligne suivant la déclaration de la propriété
Address et insérez l'extrait en cliquant sur Insérer un extrait.
/// <summary>
/// The customer zip code or postal code
/// </summary>
public string ZipCode
{
get
{
return this.customerZipCode;
}
set
{
// Null value?
if (value == null)
this.customerZipCode = "";
else
// Only get the first 10 characters
if (value.Length > 10)
this.customerZipCode = value.Substring(0, 10);
else
this.customerZipCode = value;
}
}
/// <summary>
/// The name of the city in which the customer lives
/// </summary>
public string City
{
get
{
return this.customerCity;
}
set
{
// Null value?
if (value == null)
this.customerCity = "";
else
/// <summary>
/// The name of the state or region in which the customer lives
/// </summary>
public string State
{
get
{
return this.customerState;
}
set
{
// Null value?
if (value == null)
this.customerState = "";
else
// Only get the first 30 characters
if (value.Length > 30)
this.customerState = value.Substring(0, 30);
else
this.customerState = value;
}
}
/// <summary>
/// The ID of the country in which the customer lives
/// </summary>
public Guid? CountryID
{
get
{
return this.customerCountryID;
}
set
{
this.customerCountryID = value;
}
}
/// <summary>
/// The customer phone number
/// </summary>
public string Phone
{
get
{
return this.customerPhone;
}
set
{
// Null value?
if (value == null)
this.customerPhone = "";
else
// Only get the first 30 characters
if (value.Length > 30)
this.customerPhone = value.Substring(0, 30);
else
this.customerPhone = value;
}
}
/// <summary>
/// The customer e-mail address
/// </summary>
public string EmailAddress
{
get
{
return this.customerEmailAddress;
}
set
{
// Null value?
if (value == null)
this.customerEmailAddress = "";
else
// Only get the first 50 characters
if (value.Length > 50)
this.customerEmailAddress = value.Substring(0,
50);
else
this.customerEmailAddress = value;
}
}
/// <summary>
/// The customer Web address
/// </summary>
public string WebAddress
{
get
{
return this.customerWebAddress;
}
set
{
// Null value?
if (value == null)
this.customerWebAddress = "";
else
// Only get the first 80 characters
if (value.Length > 80)
this.customerWebAddress = value.Substring(0, 80);
else
this.customerWebAddress = value;
}
}
/// <summary>
/// The current credit limit of the customer
/// </summary>
public int CreditLimit
{
get
{
return this.customerCreditLimit;
}
set
{
// Negative value?
if (value < 0)
this.customerCreditLimit = 0;
else
this.customerCreditLimit = value;
}
}
/// <summary>
/// Does the customer subscriber to news?
/// </summary>
public bool NewsSubscriber
{
get
{
return this.customerNewsSubscriber;
}
set
{
this.customerNewsSubscriber = value;
}
}
/// <summary>
/// The date the customer was created in the system
/// </summary>
public DateTime? CreatedDate
{
get
{
return this.customerCreatedDate;
}
private set
{
// Date in the past?
if (value < DateTime.Now)
this.customerCreatedDate = DateTime.Now;
else
this.customerCreatedDate = value;
}
}
/// <summary>
/// The name of the user creating the customer
/// </summary>
public string CreatedBy
{
get
{
return this.customerCreatedBy;
}
set
{
// Null value?
if (value == null)
this.customerCreatedBy = "";
else
// Only get the first 15 characters
if (value.Length > 15)
this.customerCreatedBy = value.Substring(0, 15);
else
this.customerCreatedBy = value;
}
}
/// <summary>
/// The date the customer was last modified in the system
/// </summary>
public DateTime? ModifiedDate
{
get
{
return this.customerModifiedDate;
}
set
{
// Date in the past?
if (value < DateTime.Now)
this.customerModifiedDate = DateTime.Now;
else
this.customerModifiedDate = value;
}
}
/// <summary>
/// The name of the user who last modified the customer
/// </summary>
public string ModifiedBy
{
get
{
return this.customerModifiedBy;
}
set
{
// Null value?
if (value == null)
this.customerModifiedBy = "";
else
// Only get the first 15 characters
if (value.Length > 15)
this.customerModifiedBy = value.Substring(0, 15);
else
this.customerModifiedBy = value;
}
}
#region Constructors
#endregion
/// <summary>
/// Default parameterless constructor
/// </summary>
public Customer()
{
// Initialize backing fields with default values
this.ID = Guid.NewGuid();
this.CreatedDate = DateTime.Now;
}
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-114 Introduction au développement Web avec Microsoft® Visual Studio® 2010
/// <summary>
/// Initializes backing fields with passed and default values
/// </summary>
/// <param name="id"></param>
public Customer(Guid? id)
{
// Initialize backing fields with passed and default values
this.ID = id;
this.CreatedDate = DateTime.Now;
}
/// <summary>
/// Initializes with a value for all backing fields
/// </summary>
/// <param name="id"></param>
/// <param name="firstName"></param>
/// <param name="lastName"></param>
/// <param name="address"></param>
/// <param name="zipCode"></param>
/// <param name="city"></param>
/// <param name="state"></param>
/// <param name="countryID"></param>
/// <param name="phone"></param>
/// <param name="emailAddress"></param>
/// <param name="webAddress"></param>
/// <param name="creditLimit"></param>
/// <param name="newsSubscriber"></param>
/// <param name="createdDate"></param>
/// <param name="createdBy"></param>
/// <param name="modifiedDate"></param>
/// <param name="modifiedBy"></param>
public Customer(Guid? id, string firstName, string lastName,
string address,
string zipCode, string city, string state, Guid? countryID,
string phone,
string emailAddress, string webAddress, int creditLimit, bool
newsSubscriber,
DateTime? createdDate, string createdBy, DateTime?
modifiedDate, string modifiedBy)
{
// Initialize member backing fields with passed values
this.ID = id;
this.FirstName = firstName;
this.LastName = lastName;
this.Address = address;
this.ZipCode = zipCode;
this.City = city;
this.State = state;
this.CountryID = countryID;
this.Phone = phone;
this.EmailAddress = emailAddress;
this.WebAddress = webAddress;
this.CreditLimit = creditLimit;
this.NewsSubscriber = newsSubscriber;
if (createdDate != null)
this.CreatedDate = createdDate;
else
this.CreatedDate = DateTime.Now;
this.CreatedBy = createdBy;
this.ModifiedDate = modifiedDate;
this.ModifiedBy = modifiedBy;
}
/// <summary>
/// Instantiates Customer object
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
// Instantiate Customer
instantiateCustomerObject();
}
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-118 Introduction au développement Web avec Microsoft® Visual Studio® 2010
/// <summary>
/// Instantiates and populates the Customer member object
/// </summary>
private void instantiateCustomerObject()
{
// First time loading page?
if (!this.IsPostBack)
// Instantiate new Customer object
currentCustomer = new CustomerManagementEntities.Customer(
null, CustomerFirstNameTextBox.Text,
CustomerLastNameTextBox.Text,
CustomerAddressTextBox.Text,
CustomerZipCodeTextBox.Text,
CustomerCityTextBox.Text, CustomerStateTextBox.Text,
null, CustomerPhoneTextBox.Text,
CustomerEmailAddressTextBox.Text,
CustomerWebAddressTextBox.Text, -1,
CustomerNewsSubscriberCheckBox.Checked,
DateTime.Now, "", null, "");
}
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-119
/// <summary>
/// Populates UI controls
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_LoadComplete(object sender, EventArgs e)
{
// Populate the UI controls
populateUI();
}
/// <summary>
/// Populates the UI controls with the values in the
/// current Customer object
/// </summary>
private void populateUI()
{
CustomerFirstNameTextBox.Text = currentCustomer.FirstName;
CustomerLastNameTextBox.Text = currentCustomer.LastName;
CustomerAddressTextBox.Text = currentCustomer.Address;
CustomerZipCodeTextBox.Text = currentCustomer.ZipCode;
CustomerCityTextBox.Text = currentCustomer.City;
CustomerStateTextBox.Text = currentCustomer.State;
if (currentCustomer.CountryID.HasValue)
CustomerCountryDropDownList.SelectedValue =
currentCustomer.CountryID.Value.ToString();
else
CustomerCountryDropDownList.SelectedIndex = -1;
CustomerPhoneTextBox.Text = currentCustomer.Phone;
CustomerEmailAddressTextBox.Text =
currentCustomer.EmailAddress;
CustomerWebAddressTextBox.Text = currentCustomer.WebAddress;
CustomerCreditLimitTextBox.Text =
currentCustomer.CreditLimit.ToString();
CustomerNewsSubscriberCheckBox.Checked =
currentCustomer.NewsSubscriber;
}
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-120 Introduction au développement Web avec Microsoft® Visual Studio® 2010
/// <summary>
/// Destroys objects
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Unload(object sender, EventArgs e)
{
// Destroy Customer object
currentCustomer = null;
}
/// <summary>
/// Redirects to home page
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void CustomerCancelButton_Click(object sender, EventArgs e)
{
// Redirect to home page
Response.Redirect("~/Default.aspx");
}
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-121
/// <summary>
/// Saves the current customer information and adds default values
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void CustomerInsertButton_Click(object sender, EventArgs e)
{
// Add the current user name
currentCustomer.CreatedBy = Context.User.Identity.Name;
// Add the user credit limit
currentCustomer.CreditLimit = 50000;
}
Remarque : le code initial pour l'enregistrement des informations clients est créé dans ce
module. Toutefois, le code final pour l'enregistrement dans la base de données sera créé
dans le module 8.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-122 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Résultats : au terme de cet exercice, vous aurez ajouté du code afin de gérer les
événements Page.Load, Page.LoadComplete et Page.Unload pour le formulaire
Web InsertCustomer. Vous aurez également ajouté le code permettant de gérer
l'événement Click pour les contrôles des boutons Insert and Cancel.
Remarque : vous trouverez les corrigés des exercices sur le CD-ROM d'accompagnement
du cours.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web
W Microsoft® ASP.NET 4-123
Récap
pitulatif de l'atelier pratiq
que
Parcou
urir les question
ns et les répon
nses
1. Commment pouvez-vo ous exécuter uniq
quement le code lors du premier
chaargement d'une page Web ?
2. Quelle est la procéd
dure événementielle par défaut pou
ur les contrôles
mmuns ?
com
3. Com
mment pouvez-vo
ous ajouter des éléments
é à une lisste en mode Créaation ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-124 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Récapitu
ulatif du m
module
Parcou
urir les question
ns et les répon
nses
1. Quel est l'avantage d
des fichiers code--behind lorsque vous
v ajoutez des
nctionnalités à un formulaire Web ?
fon
2. Com
mment une procéédure événementtielle est-elle asso
ociée à l'événemen
nt d'un
con
ntrôle serveur ?
3. Commment pouvez-vo
ous utiliser un co
omposant dans vo
otre projet Visuall
Studio 2010 ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Ajout de fonctionnalités à un formulaire Web Microsoft® ASP.NET 4-125
Meilleures pratiques
• Suivez une convention de casse et d'affectation de noms lorsque vous nommez
vos variables. Dans ce cours, la convention d'affectation de noms utilisée
correspond au contenu de la variable, suffixé du type de données, le cas échéant.
En général, si une variable contient l'un des types de données simples, tels que
Integer ou String, il n'est pas nécessaire de la suffixer avec le type de données.
Exemple : FirstName, LastName, Name, Age et Length.
• Si vous nommez une variable appartenant à un type d'objet spécifique, vous
devez toujours utiliser le nom du type d'objet comme suffixe, tel que
CustomerManagementDataSet, où le type de données est DataSet et le nom
est CustomerManagement. La casse Pascal et la casse mixte diffèrent. Pour la
casse Pascal, la première lettre de chaque mot est en majuscule, y compris les
acronymes de plus de deux lettres, par exemple « FirstName ». La casse mixte
ressemble à la casse Pascal sauf que la première lettre est en minuscule, par
exemple « firstName ». La casse Pascal est généralement utilisée pour les
variables publiques, tandis que la casse mixte est utilisée pour les variables
locales et privées, et pour les paramètres de méthode. Consultez la meilleure
pratique suivante concernant les variables publiques.
• En règle générale, les variables membres, également appelées champs de stockage,
ne doivent jamais être rendues publiques car cela risque d'endommager l'état d'un
objet. À la place, rendez privée une variable membre et exposez la valeur via une
propriété avec laquelle vous pouvez vérifier lorsqu'un utilisateur de l'objet définit
la valeur de la propriété. Il existe toutefois des exceptions, comme lorsqu'un objet
doit être sérialisé, mais cela dépasse le cadre de ce module.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
4-126 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Module 5
Implémentation de pages maîtres et de
contrôles utilisateur
Table des matières :
Leçon 1 : Création de pages maîtres 5-3
Leçon 2 : Ajout de contrôles utilisateur à un formulaire Web ASP.NET 5-27
Atelier pratique : Implémentation de pages maîtres et de
contrôles utilisateur 5-51
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-2 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Vue d'en
nsemble du modu
ule
Lors de la conception dee votre application Web, vous devvez ajouter au mo oins un
formulaaire Web Microso oft® ASP.NET à vo otre projet. Très souvent,
s vous devvez
appliquuer une conceptio
on cohérente à l'innterface utilisateu
ur. Les pages maîîtres
permetttent d'appliquer u
une conception cohérente
c à votre site Web sans quue vous
ayez à dupliquer
d la concception sur différeents formulaires Web.
W
Alors qu ue les pages maîttres vous permetttent de conserverr une présentation n
cohéren nte dans votre app plication Web, lees contrôles utilisateur vous aident à
réutiliseer les composantss de l'interface uttilisateur de façon
n personnalisée. Vous
V
pouvez utiliser la même combinaison de contrôles sur dess pages différentees ;
par exem mple, des contrôles permettant d'afficher et de mo odifier les informaations
relativess aux commandees. Les contrôles utilisateur
u permeettent de réutiliserr
facilemeent le code et les composants d'in nterface utilisateurr communs au seein d'une
applicattion Web. Vous p pouvez ajouter dees balises et des contrôles
c serveur Web
existantts à un contrôle uutilisateur, et définir les propriétéss et méthodes du contrôle.
Vous po ouvez ensuite les incorporer dans les pages Web ASP.NET,
A où ils
fonction nnent en tant qu'unité.
Dans cee module, vous ap
pprendrez à créerr et à implémenteer des pages maîttres, ainsi
qu'à imp
plémenter des coontrôles utilisateu
ur dans une appliication Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Implémenntation de pages maîtres et de contrôles utilisateuur 5-3
Leçon 1
Création
n de page
es maîtress
Les pagges maîtres vous aaident à définir laa disposition généérale d'une appliccation
Microso oft ASP.NET à parrtir d'un emplaceement unique : le fichier .master. Vous V
réutiliseez ainsi la disposiition dans toutes les pages de con ntenu dérivées de la page
maître. Les pages maîtrees présentent plussieurs avantages. Vous pouvez app porter
des mod difications à la co
onception d'une page
p maître ; cellees-ci seront alors
immédiiatement répercuttées sur toutes les pages utilisant cette page maîtree. Vous
pouvez modifier les élém ments de page maaître d'une appliccation Web à parttir d'un
emplaceement unique, saans devoir person nnaliser toutes less pages utilisant des
d
élémentts communs. Vou us créez facilemennt une application Web avec une
apparen nce cohérente et ffournissez une ex xpérience utilisateur satisfaisante.
Dans ceette leçon, vous appprendrez à créeer une page maître, puis à créer un
n
formulaaire Web qui utiliise cette page maîître.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-4 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Objectifs de la leçon
Au terme de cette leçon, vous serez à même d'effectuer les tâches suivantes :
• décrire des pages maîtres ;
• créer une page maître ;
• décrire des pages de contenu ;
• créer une page de contenu ;
• décrire des pages maîtres imbriquées ;
• décrire le comportement des pages maîtres au moment de l'exécution ;
• ajouter une page maître à un projet d'application Web existant ;
• décrire les avantages des pages maîtres.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Implémenntation de pages maîtres et de contrôles utilisateuur 5-5
Descrription des p
pages maîtress
Points clés
Les pagges maître ASP.NE ET permettent dee créer une disposition cohérente des
pages dans
d votre applicaation. Une page maître
m unique déffinit l'apparence et
e le
comporrtement standard d à appliquer à tou utes les pages (ou
u à un groupe dee pages)
dans vootre application. V
Vous pouvez ensu uite créer des pagges individuelles
contenaant le contenu à aafficher. Puis, vou
us pouvez utiliserr une page maîtree pour
créer un
ne disposition préédéfinie, qui incluut éventuellemen nt du texte statiqu
ue des
élémentts HTML et des ccontrôles serveur..
La pagee maître est un ficchier ASP.NET po n .master. Il est identifié
ortant l'extension
par unee directive Masterr spéciale qui rem
mplace la directivee Page utilisée poour les
pages de
d formulaire Web b ordinaires.
Vous po
ouvez placer du ccontenu de site Web W commun surr une page maîtree ; par
exemplee, un en-tête à affficher sur plusieu
urs pages d'un sitee Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-6 Introduction au développement Web avec Microsoft® Visual Studio® 2010
[Visual Basic]
<%@ Master Language="VB" AutoEventWireup="false"
CodeFile="MasterPage.master.vb" Inherits="MasterPage" %>
[Visual C#]
<%@ Master Language="C#" AutoEventWireup="true"
CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
Remarque : par défaut, un serveur Web (par exemple, Internet Information Services
(IIS) 7.0) empêche l'affichage des fichiers portant l'extension .master dans un
navigateur Web. Cette mesure de sécurité veille à ce que la page maître n'apparaisse pas
comme une page ASP.NET autonome.
Une page maître ressemble à un formulaire Web standard, car elle peut comporter
du contenu standard, tel que les éléments HTML de niveau supérieur d'une page
(par exemple, html, head, body, et form). Par exemple, sur une page maître, vous
pouvez utiliser une table HTML pour la disposition ou une combinaison
d'éléments div pour afficher les éléments sur la page, un élément img pour le logo
de la société, un contrôle static text pour la mention de copyright et des contrôles
serveur pour la navigation du site. Cependant, la différence entre une page maître
et un formulaire Web standard réside dans l'inclusion d'un ou de plusieurs
contrôles ContentPlaceHolder. Les contrôles ContentPlaceHolder définissent les
zones dans lesquelles du contenu remplaçable apparaît. Le contenu remplaçable
est ensuite défini dans les pages de contenu. Vous devez placer les contrôles
ContentPlaceHolder dans l'élément head ou form, comme suit.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Implémentation de pages maîtres et de contrôles utilisateur 5-7
<html>
<head runat="server">
<title>General Application Title</title>
<asp:ContentPlaceHolder id="HeadContentPlaceHolder"
runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
...
<! Standard content >
<div class="top">
<asp:ContentPlaceHolder id="MainContentPlaceHolder"
runat="server" />
...
<! Standard content >
</div>
<div class="bottom">
<asp:ContentPlaceHolder id="FooterContentPlaceHolder"
runat="server">
<asp:Label id="FooterLabel" runat="server"
Text="Footer Text" />
</asp:ContentPlaceHolder id="FooterContentPlaceHolder">
</div>
...
</form>
</body>
Si une page de contenu liée à la page maître n'inclut pas de contrôle Content
référençant le contrôle ContentPlaceHolder, le contenu par défaut du contrôle
ContentPlaceHolder de la page maître apparaît sur la page affichée, comme
indiqué ci-dessous.
<div class="bottom">
<asp:ContentPlaceHolder id="FooterContentPlaceHolder"
runat="server">
<asp:Label id="FooterLabel" runat="server" Text="Footer Text"
/>
</asp:ContentPlaceHolder>
</div>
Création d'une pa
age maître
Créatio
on d'une page m
maître
Pour crééer une page maîître, procédez com
mme suit :
1. Danns l'Explorateur dde solutions, cliqu
uez sur le projet avec le bouton droit,
puiis cliquez sur Ajo
outer un nouvel élément.
é
2. Dan
ns la boîte de diallogue Ajouter un
n nouvel élément :
a. Dans le volet gaauche, cliquez surr Visual Basic ou
u sur Visual C#.
b. Dans le volet ceentral, cliquez surr Page maître.
c. Dans la zone No
om, tapez le nom
m de la page maîtrre.
hier code-behind, activez la case à cocher
d. Si vous souhaiteez utiliser un fich
Placer le code d
dans un fichier distinct.
d
e. Si vous souhaiteez imbriquer la page maître, activeez la case à cocheer
Sélectionner la page maître.
f. Cliquez sur Ajouter.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Implémentation de pages maîtres et de contrôles utilisateur 5-9
Une fois la disposition du tableau définie, il vous reste à ajouter à la page maître le
contenu qui apparaîtra sur toutes les pages. Vous pouvez ajouter un message de
copyright en pied de page, puis un menu. Si vous disposez d'un logo sous forme
graphique, vous pouvez également l'ajouter.
Pages de
d contenu
Une pagge de contenu fou urnit le contenu d'une
d page maître. Il s'agit d'un fo
ormulaire
Web ASSP.NET référençaant une page maîttre spécifique. Lo orsque vous dispo osez
d'une ou
u de plusieurs paages maîtres danss votre projet, vou
us pouvez ajouter de
nouvelles pages de conteenu ou convertir vos formulaires WebW existants en n pages
de contenu. Les pages de contenu vous permettent
p de crééer du contenu
mentaire, qui fusiionne avec le con
supplém ntenu générique ded la page maître au
momen nt de l'exécution.
Fonctio
onnalités des p
pages de conten
nu
Vous po but MasterPageFile dans
ouvez référencer une page maître à l'aide de l'attrib
la directtive Page de la paage de contenu, comme
c indiqué dans
d les exempless suivants.
[Visua
al Basic]
<%@ Pa
age Language="V
VB" MasterPageFi
ile="~/MasterPa
age.master"
AutoEv
ventWireup="false" CodeFile="C
ContentPage.asp
px.vb"
Inheri
its="ContentPag
ge" %>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-12 Introduction au développement Web avec Microsoft® Visual Studio® 2010
[Visual C#]
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master"
AutoEventWireup="true" CodeFile="ContentPage.aspx.cs"
Inherits="ContentPage" %>
Lorsque vous indiquez la page maître dans la directive Page, vous pouvez utiliser
plusieurs pages maîtres dans votre projet. Il est possible d'indiquer différentes
pages maîtres pour divers formulaires Web. Vous pouvez également indiquer une
page maître au niveau de l'application, dans le fichier web.config, comme suit.
Vous pouvez indiquer que toutes les pages ASP.NET (fichiers .aspx) de l'application
doivent être automatiquement liées à la page maître indiquée, si la page contient au
moins un contrôle Content. Lorsque vous indiquez une référence à une page maître
au niveau de la page, si vous référencez un contrôle ContentPlaceHolder inexistant,
vous obtiendrez une erreur au moment de la compilation. Si vous indiquez une
référence à une page maître dans le fichier web.config et que vous référencez un
fichier inexistant, vous obtiendrez une erreur au moment de l'exécution.
L'attribut MasterPageFile de la directive Page remplace tout paramètre de page
maître indiqué dans le fichier web.config.
Les pages de contenu doivent contenir au moins un contrôle Content référençant
un contrôle ContentPlaceHolder sur la page maître référencée, comme indiqué
dans les exemples suivants.
[Visual Basic]
<asp:Content ID="MainContent"
ContentPlaceHolderID="MainContentPlaceHolder" Runat="Server">
</asp:Content>
<asp:Content ID="FooterContent"
ContentPlaceHolderID="FooterContentPlaceHolder" Runat="Server">
</asp:Content>
[Visual C#]
<asp:Content ID="MainContent"
ContentPlaceHolderID="MainContentPlaceHolder" Runat="Server">
</asp:Content>
<asp:Content ID="FooterContent"
ContentPlaceHolderID="FooterContentPlaceHolder" Runat="Server">
</asp:Content>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Implémentation de pages maîtres et de contrôles utilisateur 5-13
Une fois les contrôles Content créés, vous pouvez y ajouter du texte et des
contrôles. Les contrôles Content sur la page de contenu établissent un lien direct
avec les contrôles ContentPlaceHolder sur la page maître. Vous ne pouvez pas
ajouter de contrôle Content qui ne référence aucun contrôle ContentPlaceHolder
existant dans la page maître référencée. Sur une page de contenu, tout élément non
inclus dans les contrôles Content (à l'exception des blocs de script pour le code
serveur) génère une erreur au moment de la compilation.
Sur une page de contenu, vous pouvez exécuter toutes les tâches que vous
effectueriez sur une page ASP.NET. Par exemple, il est possible de générer du
contenu pour un contrôle Content à l'aide de contrôles serveur ou d'exécuter des
requêtes de base de données.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-14 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Création d'une pa
age de conte
enu
Créatio
on d'une page d
de contenu
Pour crééer une page de ccontenu, procédeez comme suit :
1. Ouvvrez le fichier Cu
ustomerManagem
ment.sln dans le dossier
D:\
\Labfiles\Starter\\M5\VB.
2. Dan
ns l'Explorateur d
de solutions, cliqu
uez avec le bouto
on droit sur
D:\
\Labfiles\Starterr\M5\VB\Custom merManagemen nt, puis cliquez su
ur
Ajo
outer un nouvel éélément.
3. Danns la boîte de diallogue Ajouter un
n nouvel élément, dans le volet gaauche,
cliq
quez sur Visual BBasic ou sur Visuual C#.
4. Dan
ns le volet centrall, cliquez sur Weeb Form.
5. Dan
ns la zone Nom, tapez le nom de la l page de contennu. Pour utiliser un
u fichier
cod
de-behind, activezz la case à cocher Placer le code dans
d un fichier distinct.
d
6. Activez la case à coccher Sélectionnerr la page maître, puis cliquez sur Ajouter.
7. Dan
ns la boîte de diallogue Sélectionn
ner une page maîître, cliquez sur la
l page
maîître, puis sur OK.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Implémentation de pages maîtres et de contrôles utilisateur 5-15
[Visual Basic]
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master"
AutoEventWireup="false" CodeFile="ContentPage.aspx.vb"
Inherits="ContentPage" %>
<asp:Content ID="Content1"
ContentPlaceHolderID="MainContentPlaceHolder" Runat="Server">
</asp:Content>
[Visual C#]
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master"
AutoEventWireup="true" CodeFile="ContentPage.aspx.cs"
Inherits="ContentPage" %>
<asp:Content ID="Content1"
ContentPlaceHolderID="MainContentPlaceHolder" Runat="Server">
</asp:Content>
Fusion de contenu
Vous pouvez référencer une page maître et un ou plusieurs des contrôles
ContentPlaceHolder sur une page de contenu, à l'aide des contrôles Content. Si un
contrôle ContentPlaceHolder est référencé sur la page de contenu, le contenu qui
figure dans le contrôle Content référençant le contrôle ContentPlaceHolder, le cas
échéant, est affiché. Si un contrôle ContentPlaceHolder n'est pas référencé sur la
page de contenu, le contenu par défaut indiqué sur la page maître, le cas échéant,
est affiché. L'attribut title de la directive Page sur une page de contenu est également
fusionné avec la page maître, si l'élément head de la page maître présente l'attribut
runat défini sur server. Dans le cas contraire, le paramètre de la page de contenu
est ignoré, car l'élément head n'est pas disponible pour le traitement côté serveur au
moment de la fusion.
Question : lorsque vous concevez une application Web à l'aide de pages maîtres,
quelles ressources externes devrez-vous probablement référencer et ajouter ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-16 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Points clés
Les pagges maîtres peuveent être imbriquéees, c'est-à-dire qu'une page maître en
référencce une autre com
mme son maître.
Les exemples suivants illustrent la directive Master d'une page maître parent.
[Visual Basic]
<%@ Master Language="VB" AutoEventWireup="false"
CodeFile="ParentMasterPage.master.vb" Inherits="ParentMasterPage" %>
[Visual C#]
<%@ Master Language="C#" AutoEventWireup="true"
CodeFile="ParentMasterPage.master.cs" Inherits="ParentMasterPage" %>
Les exemples suivants illustrent la directive Master d'une page maître enfant.
[Visual Basic]
<%@ Master Language="VB" AutoEventWireup="false"
MasterPageFile="~/ParentMasterPage.master"
CodeFile="ChildMasterPage.master.vb" Inherits="ChildMasterPage" %>
[Visual C#]
<%@ Master Language="C#" AutoEventWireup="true"
MasterPageFile="~/ParentMasterPage.master"
CodeFile="ChildMasterPage.master.cs" Inherits="ChildMasterPage" %>
Une page maître enfant possède une extension de nom de fichier, master, de même
que toute autre page maître. Elle contient des contrôles de contenu établissant un
lien avec les espaces réservés de contenu sur la page maître parent. De plus, la page
maître enfant possède ses propres espaces réservés de contenu. Ces derniers
affichent le contenu fourni par les pages de contenu des pages maîtres enfant.
Lorsque vous concevez un portail ou un site Web avec de nombreuses zones ou
sections différentes, il est recommandé de disposer d'une page maître générale
qui ne définit que la disposition générale, et de plusieurs pages maîtres imbriquées
ou enfant qui définissent la disposition de zones ou sections spécifiques.
[Visual Basic]
<% @ Master Language="VB" AutoEventWireup="false"
CodeFile="ParentMasterPage.master.vb" Inherits="ParentMasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html >
<body>
<head runat="server">
<title>Untitled Page</title>
</head>
<form id="Form1" runat="server">
<div>
<h1>Parent Master</h1>
<p style="font:color=red">This is parent master content.</p>
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
</div>
</form>
</body>
</html>
[Visual C#]
<% @ Master Language="C#" AutoEventWireup="true"
CodeFile="ParentMasterPage.master.cs" Inherits="ParentMasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="Form1" runat="server">
<div>
<h1>Parent Master</h1>
<p style="font:color=red">This is parent master content.</p>
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
</div>
</form>
</body>
</html>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Implémentation de pages maîtres et de contrôles utilisateur 5-19
[Visual Basic]
<%@ Master Language="VB" MasterPageFile="~/ParentMasterPage.master"%>
<asp:Content id="Content1" ContentPlaceholderID="MainContent"
runat="server">
<asp:Panel runat="server" id="PanelMain" backcolor="lightyellow">
<h2>Child master</h2>
<asp:Panel runat="server" id="Panel1" backcolor="lightblue">
<p>This is childmaster content.</p>
<asp:ContentPlaceHolder ID="ChildContent1" runat="server"
/>
</asp:Panel>
<asp:Panel runat="server" id="Panel2" backcolor="pink">
<p>This is childmaster content.</p>
<asp:ContentPlaceHolder ID="ChildContent2" runat="server"
/>
</asp:Panel>
<br />
</asp:Panel>
</asp:Content>
[Visual C#]
<%@ Master Language="C#" MasterPageFile="~/ParentMasterPage.master"%>
<asp:Content id="Content1" ContentPlaceholderID="MainContent"
runat="server">
<asp:Panel runat="server" id="PanelMain" backcolor="lightyellow">
<h2>Child master</h2>
<asp:Panel runat="server" id="Panel1" backcolor="lightblue">
<p>This is child master content.</p>
<asp:ContentPlaceHolder ID="ChildContent1" runat="server"
/>
</asp:Panel>
<asp:Panel runat="server" id="Panel2" backcolor="pink">
<p>This is child master content.</p>
<asp:ContentPlaceHolder ID="ChildContent2" runat="server"
/>
</asp:Panel>
<br />
</asp:Panel>
</asp:Content>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-20 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Les deux exemples suivants illustrent une page de contenu référençant la page
maître enfant.
[Visual Basic]
<%@ Page Language="VB" MasterPageFile="~/Child.master"%>
<asp:Content id="Content1" ContentPlaceholderID="ChildContent1"
runat="server">
<asp:Label runat="server" id="Label1" text="Child label1" font-
bold="true" />
<br>
</asp:Content>
<asp:Content id="Content2" ContentPlaceholderID="ChildContent2"
runat="server">
<asp:Label runat="server" id="Label2" text="Child label2" font-
bold="true"/>
</asp:Content>
[Visual C#]
<%@ Page Language="C#" MasterPageFile="~/Child.master"%>
<asp:Content id="Content1" ContentPlaceholderID="ChildContent1"
runat="server">
<asp:Label runat="server" id="Label1" text="Child label1" font-
bold="true" />
<br>
</asp:Content>
<asp:Content id="Content2" ContentPlaceholderID="ChildContent2"
runat="server">
<asp:Label runat="server" id="Label2" text="Child label2" font-
bold="true"/>
</asp:Content>
Points clés
Lorsquee vous utilisez dees pages maîtres et e des pages de co ontenu, celles-ci peuvent
p
utiliser le
l même jeu d'évvénements, tel que les événementss Init ou Load. Vo ous
devez co onnaître l'ordre d
des événements pour p utiliser les pages
p maîtres efficacement.
Lorsqu'un utilisateur dem mande une page Web (.aspx), ASP.NET vérifie la directived
Page et extrait la page mmaître, si elle est référencée. Le pro ocessus se déroule comme
suit :
1. L'uttilisateur demand
de une page en taapant l'URL de laa page de contenu u.
Ceppendant, la demaande de l'utilisateu
ur n'est pas dirigée vers la page maître,
m
car le serveur Web in
nterdit par défauut l'accès aux fichiiers .master.
2. ASPP.NET lit la directtive Page de la paage de contenu ett l'élément pages du
fich
hier web.config. S
Si la directive Pagge ou l'élément paages contient un attribut
a
MasterPageFile, ASP.NET extrait la page p maître. Lorssque deux pages sont
demmandées pour la p première fois, la page
p de contenu et la page maîtree sont
commpilées.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-22 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Remarque : l'état de session sera présenté dans le module 13, « Gestion de l'état dans
les applications Web ».
Remarque : les contrôles utilisateur sont présentés dans la leçon suivante, « Ajout de
contrôles utilisateur à un formulaire Web ASP.NET ».
Points clés
Même si,
s au moment de développer votree application Web, vous n'avez paas utilisé
de pagees maîtres, vous aavez toujours la possibilité d'en ajo
outer ultérieurem
ment.
Pour ajo
outer et utiliser u
une page maître dans
d un projet d'aapplication Web existant,
e
vous deevez ajouter au mmoins une page dee contenu ou con nvertir un formulaaire Web
existantt dans le projet d'application Webb en page de conttenu.
Les form
mulaires Web étaant semblables à lal combinaison d'une
d page maîtree et d'une
page dee contenu, la convversion d'un formmulaire Web en page
p de contenu est
e simple.
Une foiss la page maître aajoutée, vous pou
uvez ajouter d'auttres pages en tantt que
pages de
d contenu.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-24 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Points clés
L'utilisaation de pages maaîtres présente pllusieurs avantagees. En effet, cela vous
permet d'exécuter les op pérations suivantees :
• amééliorer la mainten
nance des sites Web,
W car vous pou uvez appliquer dees mises
à jo
our à un emplacemment qui affecterront toutes les pages de contenu sur le
sitee Web ;
• défi de page séparément, puis la réutilliser sur plusieurss pages ;
finir une portion d
• obttenir une disposittion précise de la page Web, car vo
ous contrôlez l'afffichage
du contenu ;
• défi
finir une dispositiion verrouillée avvec des espaces rééservés modifiablles. Les
pagges de contenu nee permettent d'ajo outer ou de modifier du contenu que dans
les espaces réservés autorisés ;
• impplémenter un mo odèle d'objet qui vous
v permet d'accéder aux élémen nts de la
pagge maître à partir de pages de conttenu référençant la page maître ;
• parrtager les pages m
maîtres sur les pro
ojets d'application
n Web ;
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-26 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Leçon 2
Ajout de
e contrôle
es utilisatteur à un formulaiire
Web ASPP.NET
Un contrôle utilisateur eest une page ASP.NET que les autrres formulaires Web W
peuventt importer en tan nt que contrôle seerveur. À l'instar des
d contrôles servveur Web,
compossants exécutés su ur le serveur, les contrôles
c utilisateeur fournissent un
ne
interface utilisateur et d'aautres fonctionnaalités associées. Une
U fois que vouss avez
créé un contrôle utilisateeur, les autres pagges Web de la mêême application Web W
peuventt utiliser ce contrrôle.
Dans ceette leçon, vous ddécouvrirez les co ur et en quoi leur ajout
ontrôles utilisateu
aux app
plications Web esst utile. Vous apprendrez égalemen nt à référencer un
n
contrôlee utilisateur à parrtir d'un formulaiire Web ASP.NET T et à accéder auxx
propriétés dans un contrrôle utilisateur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-28 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Objectifs de la leçon
Au terme de cette leçon, vous serez à même d'effectuer les tâches suivantes :
• décrire les contrôles utilisateur ;
• décrire les avantages et inconvénients de l'utilisation des contrôles utilisateur ;
• expliquer comment convertir un formulaire Web en contrôle utilisateur ;
• expliquer comment convertir un formulaire Web en contrôle utilisateur ;
• expliquer comment ajouter un contrôle utilisateur à un formulaire Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Implémenntation de pages maîtres et de contrôles utilisateuur 5-29
Points clés
Les conntrôles utilisateur simplifient la réu utilisation du cod
de et des composaants
d'interfaace utilisateur com
mmuns. Pour dévvelopper des app plications Web AS
SP.NET
efficacess avec une possib bilité de réutilisattion, vous devez être
ê capable d'utiliser les
contrôlees utilisateur.
Contrô
ôles utilisateur
Les conntrôles utilisateur sont des pages AS SP.NET portant l'extension de fichhier .ascx.
Vous po ouvez créer un contrôle utilisateur en étendant la fonctionnalité d'un contrôle
serveur existant ; par exeemple, un contrôlee Calendar stockaant la date dans uneu zone
de textee. Les contrôles uttilisateur consisten
nt éventuellemen nt en plusieurs élééments
qui foncctionnent ensemb ble et interagissennt les uns avec les autres pour exécu uter une
tâche. Par exemple, vous pouvez regroupeer plusieurs contrrôles afin de rassembler les
informaations sur l'expérieence professionnelle d'un utilisateur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-30 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Remarque : Par défaut, un serveur Web (par exemple, IIS 7.0) empêche l'affichage des
fichiers portant l'extension .ascx dans un navigateur Web. Cette mesure de sécurité veille
à ce que le contrôle utilisateur n'apparaisse pas comme une page ASP.NET autonome.
[Visual Basic]
[Visual C#]
Contrôle serveur Web Les contrôles serveur Web incluent des contrôles de
type formulaire, tels que les boutons et zones de texte,
ainsi que des contrôles spécifiques comme le
calendrier. Vous pouvez également créer des contrôles
serveur Web compilés personnalisés, constituant un
type de composant particulier qui fournit une interface
utilisateur.
Avanttages et inco
onvénients de
d l'utilisation
n des contrô
ôles
utilisa
ateur
Points clés
La préseence de contrôless utilisateur danss vos applicationss Web ASP.NET présente
p
plusieurrs avantages. Les contrôles utilisateur sont autonomes, réutilisabless
plusieurrs fois et peuventt être écrits dans un langage de prrogrammation diffférent
de celuii utilisé pour la page d'hébergemeent principale.
Les conntrôles utilisateur servent généraleement à créer de petites
p unités de
disposittion et de code uttilisées plusieurs fois dans une ap pplication Web. Cela
C
inclut laa connexion, la vaalidation, la naviggation, les barres d'outils et d'autrres
fonction nnalités similairess.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Implémentation de pages maîtres et de contrôles utilisateur 5-33
Conve
ersion d'un fformulaire Web
W en contrrôle utilisate
eur
Points clés
Si vous n'incluez pas de contrôle utilisateeur lors du dévelo oppement initial de votre
projet d'application
d Web b, vous pouvez to oujours en ajouterr un ou plusieurss
ultérieu
urement. En fait, iil est parfois préféérable de créer dees contrôles utilissateur
une foiss le développemeent commencé ; à ce stade, vous seerez en mesure d''identifier
les élém
ments dupliqués d dans vos formulaaires Web. Les forrmulaires Web éttant
semblab bles aux contrôlees utilisateur, vouus pouvez facilem ment convertir un
formulaaire Web en contrrôle utilisateur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-36 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Remarque : pour plus d'informations sur les attributs pris en charge par les directives
Page et Control, consultez la section relative à la syntaxe des directives dans la
documentation de Visual Studio 2010.
Démoonstration : CComment co
onvertir un fo
ormulaire Web
W en
contrô
ôle utilisateu
ur
Procéd
dure de démonsstration
1. Ouvvrez une session sur 10557A-GEN
N-DEV en tant qu
ue Stagiaire avecc le mot
de passe
p Pa$$w0rd.
2. Ouvvrez la solution C
CustomerManaggement à partir du
u dossier
D:\
\Demofiles\M5\V VB ou D:\Demofiiles\M5\CS.
a. Dans le menu D
Démarrer de 10557A-GEN-DEV, pointez
p sur Tous les
programmes, clliquez sur Microsoft Visual Studio 2010, puis surr
Microsoft Visua
al Studio 2010.
b. Fichier de Visual Studio 2010, cliq
Dans le menu F quez sur Ouvrir un
u projet.
c. Dans la boîte dee dialogue Ouvrirr un projet, danss la zone Nom dee fichier,
tapez D:\Demo ofiles\M5\VB\Cu ustomerManagem ment.sln ou
D:\Demofiles\M M5\CS\CustomerrManagement.sln n, puis cliquez surr Ouvrir.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Implémentation de pages maîtres et de contrôles utilisateur 5-39
[Visual Basic]
<%@ Control Language="VB" AutoEventWireup="false"
CodeFile="InsertCustomer.aspx.vb" Inherits="InsertCustomer" %>
[Visual C#]
<%@ Control Language="C#" AutoEventWireup="true"
CodeFile="InsertCustomer.aspx.cs" Inherits="InsertCustomer" %>
[Visual Basic]
<%@ Control Language="VB" AutoEventWireup="false"
CodeFile="InsertCustomer.aspx.vb" Inherits="InsertCustomer" %>
[Visual C#]
<%@ Control Language="C#" AutoEventWireup="true"
CodeFile="InsertCustomer.aspx.cs" Inherits="InsertCustomer" %>
[Visual Basic]
<%@ Control Language="VB" AutoEventWireup="false"
CodeFile="InsertCustomer.aspx.vb" Inherits="InsertCustomer"
ClassName="InsertCustomer" %>
[Visual C#]
<%@ Control Language="C#" AutoEventWireup="true"
CodeFile="InsertCustomer.aspx.cs" Inherits="InsertCustomer"
ClassName="InsertCustomer" %>
ClassName="InsertCustomer"
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-40 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Remarque : Une fois tous les éléments de niveau supérieur supprimés, vous obtiendrez
le code suivant.
[Visual Basic]
<div class="customertable">
<div class="customertablerow">
<div class="customertableleftcol">
<asp:Label ID="CustomerNameLabel" runat="server"
Text="Name:"></asp:Label>
</div>
<div class="customertablerightcol">
<asp:TextBox ID="CustomerNameTextBox"
runat="server" MaxLength="50"></asp:TextBox>
</div>
</div>
<div class="customertablerow">
<div class="customertableleftcol">
<asp:Label ID="CustomerAddressLabel"
runat="server" Text="Address:"></asp:Label>
</div>
<div class="customertablerightcol">
<asp:TextBox ID="CustomerAddressTextBox"
runat="server" MaxLength="50"></asp:TextBox>
</div>
</div>
<div class="customertablerow">
<div class="customertableleftcol">
<asp:Label ID="CustomerPhoneLabel" runat="server"
Text="Phone:"></asp:Label>
</div>
<div class="customertablerightcol">
<asp:TextBox ID="CustomerPhoneTextBox"
runat="server" MaxLength="30"></asp:TextBox>
</div>
</div>
<div class="customertablerow">
<div class="customertableleftcol">
<asp:Label ID="CustomerZipCodeLabel"
runat="server" Text="Zip Code:"></asp:Label>
</div>
<div class="customertablerightcol">
<asp:TextBox ID="CustomerZipCodeTextBox"
runat="server" MaxLength="10"></asp:TextBox>
</div>
</div>
<div class="customertablerow">
<div class="customertableleftcol">
<asp:Label ID="CustomerCityLabel" runat="server"
Text="City:"></asp:Label>
</div>
<div class="customertablerightcol">
<asp:TextBox ID="CustomerCityTextBox"
runat="server" MaxLength="30"></asp:TextBox>
</div>
</div>
<div class="customertablerow">
<div class="customertableleftcol">
<asp:Label ID="CustomerStateLabel" runat="server"
Text="State:"></asp:Label>
</div>
<div class="customertablerightcol">
<asp:TextBox ID="CustomerStateTextBox"
runat="server" MaxLength="30"></asp:TextBox>
</div>
</div>
<div class="customertablerow">
<div class="customertableleftcol">
<asp:Label ID="CustomerEmailAddressLabel"
[Visual C#]
<%@ Control Language="C#" AutoEventWireup="true"
CodeFile="InsertCustomer.aspx.cs" Inherits="InsertCustomer"
ClassName="InsertCustomer" %>
<div class="customertable">
<div class="customertablerow">
<div class="customertableleftcol">
<asp:Label ID="CustomerNameLabel" runat="server"
Text="Name:"></asp:Label>
</div>
<div class="customertablerightcol">
<asp:TextBox ID="CustomerNameTextBox"
runat="server" MaxLength="50"></asp:TextBox>
</div>
</div>
<div class="customertablerow">
<div class="customertableleftcol">
<asp:Label ID="CustomerAddressLabel"
runat="server" Text="Address:"></asp:Label>
</div>
<div class="customertablerightcol">
<asp:TextBox ID="CustomerAddressTextBox"
runat="server" MaxLength="50"></asp:TextBox>
</div>
</div>
<div class="customertablerow">
<div class="customertableleftcol">
<asp:Label ID="CustomerPhoneLabel"
runat="server" Text="Phone:"></asp:Label>
</div>
<div class="customertablerightcol">
<asp:TextBox ID="CustomerPhoneTextBox"
runat="server" MaxLength="30"></asp:TextBox>
</div>
</div>
<div class="customertablerow">
<div class="customertableleftcol">
<asp:Label ID="CustomerZipCodeLabel"
runat="server" Text="Zip Code:"></asp:Label>
</div>
<div class="customertablerightcol">
<asp:TextBox ID="CustomerZipCodeTextBox"
runat="server" MaxLength="10"></asp:TextBox>
</div>
</div>
<div class="customertablerow">
<div class="customertableleftcol">
<asp:Label ID="CustomerCityLabel" runat="server"
Text="City:"></asp:Label>
</div>
<div class="customertablerightcol">
<asp:TextBox ID="CustomerCityTextBox"
runat="server" MaxLength="30"></asp:TextBox>
</div>
</div>
<div class="customertablerow">
<div class="customertableleftcol">
<asp:Label ID="CustomerStateLabel" runat="server"
Text="State:"></asp:Label>
</div>
<div class="customertablerightcol">
<asp:TextBox ID="CustomerStateTextBox"
runat="server" MaxLength="30"></asp:TextBox>
</div>
</div>
<div class="customertablerow">
<div class="customertableleftcol">
<asp:Label ID="CustomerEmailAddressLabel"
runat="server" Text="Email Address:"></asp:Label>
</div>
<div class="customertablerightcol">
<asp:TextBox ID="CustomerEmailAddressTextBox"
runat="server" MaxLength="40"></asp:TextBox>
</div>
</div>
<div class="customertablefooter">
</div>
<asp:Button ID="CustomerInsertButton" runat="server"
Text="Insert"
onclick="CustomerInsertButton_Click" />
<asp:Button ID="customerCancelButton" runat="server"
Text="Cancel"
onclick="CustomerCancelButton_Click" />
</div>
[Visual Basic]
Partial Class InsertCustomer
Inherits System.Web.UI.UserControl
[Visual C#]
public partial class InsertCustomer : System.Web.UI.UserControl
[Visual Basic]
Partial Class InsertCustomer
Inherits System.Web.UI.UserControl
[Visual C#]
public partial class InsertCustomer :
System.Web.UI.UserControl
[Visual Basic]
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
' Instantiate Customer
instantiateCustomerObject()
' Populate the UI controls
populateUI()
End Sub
[Visual C#]
protected void Page_Load(object sender, EventArgs e)
{
// Instantiate Customer
instantiateCustomerObject();
// Populate the UI controls
populateUI();
}
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-46 Introduction au développement Web avec Microsoft® Visual Studio® 2010
[Visual Basic]
' Populate the UI controls
populateUI()
[Visual C#]
// Populate the UI controls
populateUI();
[Visual Basic]
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
' Instantiate Customer
instantiateCustomerObject()
' Populate the UI controls
populateUI()
End Sub
[Visual C#]
protected void Page_Load(object sender, EventArgs e)
{
// Instantiate Customer
instantiateCustomerObject();
// Populate the UI controls
populateUI();
}
Points clés
Vous poouvez placer un ccontrôle utilisateu ur dans un formu ulaire Web ASP.NNET. La
page réfférençant le contrrôle utilisateur s'aappelle un hôte et
e le contrôle est inclus
i
dans cet hôte.
<%@ Re
egister src="We
ebUserControl.as
scx" tagname="W
WebUserControl"
tagpre
efix="uc1" %>
Lorsqu'un utilisateur demande le formulaire Web sur lequel le contrôle utilisateur est
placé, l'exécution compile le fichier du contrôle utilisateur et le met à disposition sur
la page.
[Visual Basic]
WebUserControl1.Name = "Gregory Weber"
[Visual C#]
WebUserControl1.Name = "Gregory Weber";
[Visual Basic]
<%@ Page Language="VB" %>
<%@ Register TagPrefix="uc" TagName="Spinner"
Src="~\Controls\Spinner.ascx" %>
<html>
<body>
<form runat="server">
<uc:Spinner id="Spinner1" runat="server" MinValue="1"
MaxValue="10" />
</form>
</body>
[Visual C#]
<%@ Page Language="C#" %>
<%@ Register TagPrefix="uc" TagName="Spinner"
Src="~\Controls\Spinner.ascx" %>
<html>
<body>
<form runat="server">
<uc:Spinner id="Spinner1" runat="server" MinValue="1"
MaxValue="10" />
</form>
</body>
Question : quelle est la différence entre les attributs TagPrefix, TagName et Src ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Implémenntation de pages maîtres et de contrôles utilisateuur 5-51
Atelier pratique
p : Impléme entation de pagess
maîtres et
e de conntrôles uttilisateur
Introdu
uction
Dans ceet atelier pratiquee, vous implémennterez des pages maîtres
m et des con
ntrôles
utilisateeur dans un projeet Web ASP.NET. Vous ajouterez également
é des fon
nctions
de naviggation vers la pagge maître et conveertirez un formullaire Web en con
ntrôle
utilisateeur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-52 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Objectifs
Au terme de cet atelier pratique, vous serez à même d'effectuer les tâches suivantes :
Scéna
ario de l'ateliier pratique
Vous êtes développeur cchez Contoso, Ltd d, une grande enttreprise disposan
nt d'une
base de clients mondialee. Votre organisattion gère ses inforrmations clients via
v un
site Web b. Elle a décidé d
de modifier ce sitee Web afin de fou
urnir une expérience
utilisateeur cohérente à toous ses clients.
Pour ce faire, vous devezz ajouter une pagge maître et conveertir un formulairre Web
existantt en contrôle utiliisateur en vue de le réutiliser. Vou
us devez égalemen nt
ajouter une fonction de n navigation à la paage maître. Un reesponsable dévelo oppeur
a déjà crréé une partie duu code permettan nt d'ajouter une foonction de navigaation au
site Web b et le développeeur a créé un docu ument XML de planp de site. Ce co
ode et ce
documeent vous serviron nt à ajouter une fo
onction de navigaation à la page maaître. Par
ailleurs,, vous devez convvertir un formulaaire Web en page de contenu, dépllacer le
contenu u de cette page veers la page maîtree et créer une autrre page de contennu avec
un conttrôle utilisateur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-54 Introduction au développement Web avec Microsoft® Visual Studio® 2010
<body class="template">
• Dans la fenêtre Site.master, ajoutez une propriété Class à l'élément div à l'aide
du balisage suivant.
<div class="content">
<div class="content">
<asp:ContentPlaceHolder id="MainContentPlaceHolder"
runat="server">
</asp:ContentPlaceHolder>
</div>
Résultats : au terme de cet exercice, vous aurez créé une page maître nommée
Site.master et défini un contrôle ContentPlaceHolder dans celle-ci.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-56 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Remarque : veillez à ne pas supprimer l'élément div et son contenu dans l'élément form.
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="Styles/Site.css" rel="stylesheet" type="text/css"
/>
</head>
<body>
<form id="form1" runat"server">
</form>
</body>
</html>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Implémentation de pages maîtres et de contrôles utilisateur 5-57
<asp:Content ID="MainContent"
ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
</asp:Content>
<div class="appTitle">
<asp:Literal ID="AppTitleLiteral" runat="server"
Text="Customer Management"></asp:Literal>
</div>
• Mettez en forme la page maître Site.master en appuyant sur Ctrl+K, puis sur
Ctrl+D.
• Enregistrez les modifications apportées à la page maître Site.master.
• Mettez en forme le formulaire Web Default.aspx en appuyant sur Ctrl+K, puis
sur Ctrl+D.
• Enregistrez le formulaire Web Default.aspx, puis fermez-le.
<div class="siteMapPath">
<asp:SiteMapPath ID="MainSiteMapPath" runat="server" />
</div>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-58 Introduction au développement Web avec Microsoft® Visual Studio® 2010
<div class="menu">
<asp:Menu ID="MainMenu" runat="server">
</asp:Menu>
</div>
Orientation="Horizontal"
StaticEnableDefaultPopOutImage="false"
DataSourceID="MainSiteMapDataSource"
• Ajoutez les éléments enfant suivants au contrôle Menu, en les plaçant entre les
balises Menu d'ouverture et de fermeture.
• Supprimez tous les éléments HTML de niveau supérieur, tels que les éléments
DOCTYPE, html, head, body, title, link et form.
• Mettez en forme le document.
Remarque : Une fois tous les éléments HTML de niveau supérieur supprimés, vous
pouvez afficher le balisage suivant dans la fenêtre InsertCustomer.aspx.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Implémentation de pages maîtres et de contrôles utilisateur 5-61
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerCityLabel" runat="server"
Text="City:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:TextBox ID="CustomerCityTextBox" runat="server"
MaxLength="30"></asp:TextBox>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerStateLabel" runat="server"
Text="State:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:TextBox ID="CustomerStateTextBox" runat="server"
MaxLength="30"></asp:TextBox>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerCountryLabel" runat="server"
Text="Country:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:DropDownList ID="CustomerCountryDropDownList"
runat="server">
</asp:DropDownList>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerPhoneLabel" runat="server"
Text="Phone:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:TextBox ID="CustomerPhoneTextBox" runat="server"
MaxLength="30"></asp:TextBox>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerEmailAddressLabel"
runat="server" Text="Email Address:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:TextBox ID="CustomerEmailAddressTextBox"
runat="server" MaxLength="50"></asp:TextBox>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerWebAddressLabel" runat="server"
Text="Web Address:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:TextBox ID="CustomerWebAddressTextBox"
runat="server" MaxLength="80"></asp:TextBox>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerCreditLimitLabel"
runat="server" Text="Credit Limit:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:TextBox ID="CustomerCreditLimitTextBox"
runat="server" MaxLength="10"></asp:TextBox>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerNewsSubscriberLabel"
runat="server" Text="News Subscriber:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:CheckBox ID="CustomerNewsSubscriberCheckBox"
runat="server" />
</div>
</div>
<div class="customerTableFooter">
<asp:Button ID="CustomerInsertButton" runat="server"
Text="Insert" />
<asp:Button ID="CustomerCancelButton" runat="server"
Text="Cancel" />
</div>
</div>
''' <summary>
''' Populates UI controls
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks<>/remarks>
Protected Sub Page_LoadComplete(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.LoadComplete
End Sub
Résultats : au terme de cet exercice, vous aurez converti le formulaire Web par défaut
en page de contenu, ajouté une fonction de navigation à la page maître et converti le
formulaire Web en contrôle utilisateur. Par ailleurs, vous aurez créé une page de
contenu et inséré un contrôle utilisateur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-66 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Section 2 : Visual C#
Exercice 1 : Ajout et application d'une page maître
Dans cet exercice, les tâches principales sont les suivantes :
<body class="template">
• Dans la fenêtre Site.master, ajoutez une propriété Class à l'élément div à l'aide
du balisage suivant.
<div class="content">
<div class="content">
<asp:ContentPlaceHolder id="MainContentPlaceHolder"
runat="server">
</asp:ContentPlaceHolder>
</div>
Résultats : au terme de cet exercice, vous aurez créé une page maître nommée
Site.master et défini un contrôle ContentPlaceHolder dans celle-ci.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-68 Introduction au développement Web avec Microsoft® Visual Studio® 2010
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="Styles/Site.css" rel="stylesheet" type="text/css"
/>
</head>
<body>
<form id="form1" runat"server">
</form>
</body>
</html>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Implémentation de pages maîtres et de contrôles utilisateur 5-69
<asp:Content ID="MainContent"
ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
</asp:Content>
<div class="appTitle">
<asp:Literal ID="AppTitleLiteral" runat="server"
Text="Customer Management"></asp:Literal>
</div>
• Mettez en forme la page maître Site.master en appuyant sur Ctrl+K, puis sur
Ctrl+D.
• Enregistrez les modifications apportées à la page maître Site.master.
• Mettez en forme le formulaire Web Default.aspx en appuyant sur Ctrl+K, puis
sur Ctrl+D.
• Enregistrez le formulaire Web Default.aspx, puis fermez-le.
<div class="siteMapPath">
<asp:SiteMapPath ID="MainSiteMapPath" runat="server" />
</div>
<div class="menu">
<asp:Menu ID="MainMenu" runat="server">
</asp:Menu>
</div>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
5-70 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Orientation="Horizontal"
StaticEnableDefaultPopOutImage="false"
DataSourceID="MainSiteMapDataSource"
• Ajoutez les éléments enfant suivants au contrôle Menu, en les plaçant entre les
balises Menu d'ouverture et de fermeture.
• Catégorie : position
• Position : relative
• Ordre de plan : 1
• Haut : 62px
• Ajoutez un style siteMapPath à l'aide de la fenêtre Gérer les styles. Le style
siteMapPath doit être défini comme suit :
• Sélecteur : div.siteMapPath
• Définir dans : Styles/Site.css
• Catégorie : position
• Position : fixe
• top : 42px
• Catégorie : Encadré
• Section Remplissage : désactivez la case à cocher Tous identiques. Dans la
zone bottom, tapez 5px
• Enregistrez tous les fichiers modifiés et exécutez la page maître Site.master.
• Supprimez tous les éléments HTML de niveau supérieur, tels que les éléments
DOCTYPE, html, head, body, title, link et form.
• Mettez en forme le document.
Remarque : une fois tous les éléments HTML de niveau supérieur supprimés, vous
pouvez afficher le balisage suivant dans la fenêtre InsertCustomer.aspx.
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerAddressLabel" runat="server"
Text="Address:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:TextBox ID="CustomerAddressTextBox"
runat="server" MaxLength="50"></asp:TextBox>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerZipCodeLabel" runat="server"
Text="Zip Code:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:TextBox ID="CustomerZipCodeTextBox"
runat="server" MaxLength="10"></asp:TextBox>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerCityLabel" runat="server"
Text="City:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:TextBox ID="CustomerCityTextBox" runat="server"
MaxLength="30"></asp:TextBox>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerStateLabel" runat="server"
Text="State:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:TextBox ID="CustomerStateTextBox" runat="server"
MaxLength="30"></asp:TextBox>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerCountryLabel" runat="server"
Text="Country:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:DropDownList ID="CustomerCountryDropDownList"
runat="server">
</asp:DropDownList>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerPhoneLabel" runat="server"
Text="Phone:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:TextBox ID="CustomerPhoneTextBox" runat="server"
MaxLength="30"></asp:TextBox>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerEmailAddressLabel"
runat="server" Text="Email Address:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:TextBox ID="CustomerEmailAddressTextBox"
runat="server" MaxLength="50"></asp:TextBox>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerWebAddressLabel" runat="server"
Text="Web Address:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:TextBox ID="CustomerWebAddressTextBox"
runat="server" MaxLength="80"></asp:TextBox>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerCreditLimitLabel"
runat="server" Text="Credit Limit:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:TextBox ID="CustomerCreditLimitTextBox"
runat="server" MaxLength="10"></asp:TextBox>
</div>
</div>
<div class="customerTableRow">
<div class="customerTableLeftCol">
<asp:Label ID="CustomerNewsSubscriberLabel"
runat="server" Text="News Subscriber:"></asp:Label>
</div>
<div class="customerTableRightCol">
<asp:CheckBox ID="CustomerNewsSubscriberCheckBox"
runat="server" />
</div>
</div>
<div class="customerTableFooter">
<asp:Button ID="CustomerInsertButton" runat="server"
Text="Insert" OnClick="CustomerInsertButton_Click" />
<asp:Button ID="CustomerCancelButton" runat="server"
Text="Cancel" OnClick="CustomerCancelButton_Click" />
</div>
</div>
/// <summary>
/// Populates UI controls
/// </summary>
/// <param name="sender">>/param>
/// <param name="e"></param>
protected void Page__LoadComplete(object sender, EventArgs e)
{
}
Résultats : au terme de cet exercice, vous aurez converti le formulaire Web par
défaut en page de contenu, ajouté une fonction de navigation à la page maître et
converti le formulaire Web en contrôle utilisateur. Par ailleurs, vous aurez créé une
page de contenu et inséré un contrôle utilisateur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Implémenntation de pages maîtres et de contrôles utilisateuur 5-77
Récap
pitulatif de l'atelier pratiq
que
Récapituulatif du m
module et
e élémen
nts clés à
retenir
Parcou
urir les question
ns et les répon
nses
1. Quelle est l'extensio
on de fichier d'une page maître ?
2. Quel attribut remplaace tout paramètrre de page maîtree spécifié dans le fichier
b.config ?
web
3. Quelle est l'extensio
on de fichier d'un contrôle utilisateeur ?
4. Quels sont les incon
nvénients des con
ntrôles utilisateurr ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Implémentation de pages maîtres et de contrôles utilisateur 5-79
Meilleures pratiques
Indiquez quelques-unes des meilleures pratiques s'appliquant au contexte de vos
propres situations professionnelles.
• Utilisez des pages maîtres, chaque fois qu'une disposition sera utilisée par au
moins deux pages.
• Appliquez les pages maîtres dans le fichier web.config, si celui-ci doit être
utilisé dans toutes ou pratiquement toutes les pages du site Web, ou dans
des zones spécifiques du site. Cela permettra de remplacer plus facilement
les pages maîtres ultérieurement.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-1
Module 6
Validation des entrées utilisateur
Table des matières :
Leçon 1 : Vue d'ensemble de la validation des entrées utilisateur 6-4
Leçon 2 : Contrôles de validation ASP.NET 6-11
Leçon 3 : Validation de formulaires Web 6-39
Atelier pratique : Validation des entrées utilisateur 6-45
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-2 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Vue d'en
nsemble du modu
ule
Lorsquee vous créez un ccontrôle d'entrée tel que le contrôlle TextBox, vous avez
certainees attentes ou exiggences quant au type de saisie effe fectuée dans ce co ontrôle
par l'utiilisateur. Dans le pire des cas, unee entrée incorrectee peut arrêter vottre
applicattion Web. Pour vvérifier que les entrées utilisateur satisfont
s à vos exiigences,
vous deevez les vérifier paar rapport à la vaaleur, à la plage ett au format des enntrées
attenduues. Pour effectuerr cette vérificationn, vous devez lierr au moins un contrôle de
validatioon des entrées au u contrôle d'entréée, puis définir less critères du conttrôle de
validatioon qui effectuera le test en fonctioon de vos exigencces.
Plusieurrs contrôles de vallidation des entréees sont disponiblees dans Microsoft® ®
ASP NET T. Vous pouvez les appliquer à un n formulaire Web b ASP.NET pour effectuer
e
la validaation des entrées côté client et côtéé serveur. Lorsquee vous utilisez la validation
v
côté clieent au lieu de la vvalidation côté seerveur, vous réduiisez le trafic de données
entre le client et le serveu ur, économisez lees ressources du serveur et amélio orez le
temps ded réponse de vottre application Web.W
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-3
Leçon 1
Vue d'en nsemble d
de la valid
dation de
es entrée
es
utilisateu
ur
Vous po ouvez effectuer laa validation des entrées côté clientt ou côté serveur pour
vérifier que l'utilisateur a indiqué des don nnées valides dan ns les contrôles d'entrée
d
d'un forrmulaire Web avaant que la requêtee ne soit traitée su ur le serveur. Grââce à la
validatio
on des entrées cô ôté client, vous po
ouvez filtrer les entrées
e incorrectees avant
leur envvoi au serveur. Laa validation côté serveur
s vous perm met, quant à elle,
d'effectu
uer des vérificatioons de validation sur le serveur et sur le client.
Ne pas valider
v les entréees utilisateur peutt entraîner un arrrêt brutal de l'app plication,
endomm mager celle-ci, êtrre à l'origine de manipulations
m maalveillantes, voire altérer la
base de données. La valiidation des entréees est un mécanissme puissant perrmettant
de recheercher les erreurss et, le cas échéan nt, d'afficher des messages
m à l'inten
ntion de
l'utilisatteur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-5
Objectifs de la leçon
Au terme de cette leçon, vous serez à même d'effectuer les tâches suivantes :
• décrire la validation des entrées ;
• décrire la validation des entrées côté client et côté serveur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-6 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Présentation de la
a validation des
d entrées
Points clés
La valid
dation des entréess améliore l'expériience de l'utilisateeur en matière de site Web.
Elle réd
duit le temps d'atttente des messagees d'erreur et dim minue la probabiliité de
retours incorrects et de bblocages de sites Web dus à des problèmes
p liés aux
x entrées
utilisateeur. Combinée à ddes messages d'errreur complets ett utiles, la validattion des
entrées permet d'améliorrer la capacité d'uutilisation d'un siite Web ainsi quee la
percepttion du client sur la qualité globalee de ce site.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-7
Avec ASP.NET, la validation des entrées côté client est toujours répétée côté
serveur, où les utilisateurs ne peuvent ni modifier, ni désactiver les contrôles de
validation.
• Code malveillant. Si les utilisateurs sont autorisés à ajouter du texte à une
page Web de façon illimitée via des contrôles d'entrée utilisateur ne possédant
pas de validation des entrées, ils ont la possibilité d'entrer du code malveillant.
Lorsque l'utilisateur envoie la demande suivante au serveur, ce code peut
perturber le serveur Web et toutes les applications connectées.
Valida
ation côté client et côté serveur
Points clés
La validdation des entréess peut avoir lieu à la fois côté client et côté serveur. Bien
B que
la validaation côté serveurr soit toujours reqquise par ASP.NET T, la validation cô
ôté client
est facultative pour certaains navigateurs. Les contrôles de validation d'ASP.NET
prennen nt en charge à la fois le côté clientt et le côté serveur. La validation côté
c client
utilise lees scripts JavaScriipt et Dynamic HT TML (DHTML). La L validation côtéé serveur
peut êtrre écrite dans tou us les langages Miicrosoft .NET Fraamework. Les valiidations
côté clieent et côté serveu ur utilisent toutess deux le même modèle
m de prograammation,
bien qu ue les variations en ntre les langages puissent engend drer des différencces
mineurees en matière de fonctions de valid dation.
Question : à quel moment publier une page sur le serveur, même avec des erreurs ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validattion des entrées utilisateuur 6-11
Leçon 2
Contrôle
es de valid
dation AS
SP.NET
Objectifs de la leçon
Au terme de cette leçon, vous serez à même d'effectuer les tâches suivantes :
• décrire les différents contrôles de validation ASP.NET ;
• décrire le contrôle RegularExpressionValidator ;
• décrire le contrôle CustomValidator ;
• associer des contrôles de validation ;
• ajouter des contrôles de validation à un formulaire Web ;
• positionner et configurer des contrôles de validation dans un formulaire Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validattion des entrées utilisateuur 6-13
Vue d'ensemble
d d
des contrôless de validatio
on ASP.NET
Points clés
Lors dee la création de fo ormulaires Web ASP.NET
A nécessittant des entrées utilisateur,
u
il est im
mportant de pouvoir vérifier la valiidité de ces entréees. ASP.NET offree un
ensemb ble de contrôles d de validation qui vous
v aident à recchercher facilemen nt et
efficacemment les erreurs d'entrée. En outrre, il est possible d'afficher
d les messsages
d'erreurr destinés à l'utilissateur, le cas échéant.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-14 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Contrôles de validation
Le tableau suivant répertorie les contrôles de validation inclus dans le framework
de pages ASP.NET.
Contrrôles de valid
dation ASP.N
NET de base
Points clés
Les con
ntrôles de validatiion de base sont les
l suivants : Req
quiredFieldValid dator,
CompareValidator et RangeValidator. Ces C contrôles effeectuent la validatiion par
rapportt à des valeurs fixes ou à un deuxième contrôle d'en
ntrée, et exposen
nt la
propriété publique ConttrolToValidate, qui
q identifie le co
ontrôle d'entrée à valider.
Contrô
ôle RequiredFieeldValidator
Le contrrôle RequiredFieeldValidator perm met de forcer un utilisateur à fourrnir une
entrée dans
d un contrôle d'entrée. Tous lees caractères sont considérés comm me une
réponsee valide pour ce ccontrôle de validaation. De plus, l'ab
bsence d'entrée ou
o un
espace vide
v ne sont pas considérés comm me non valides.
RequiredFieldVallidator n'est utiliisé que sur les contrôles
En génééral, le contrôle R
d'entréee requis pour term
miner un processsus demandé. Vou us pouvez par ex xemple
employeer le contrôle ReqquiredFieldValid dator pour les chaamps de nom d'uttilisateur
et de mot de passe sur u une page de connexion, mais pas pourp des informaations
secondaaires, telles qu'un
ne offre visant à devenir
d visiteur prrivilégié d'un site Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-16 Introduction au développement Web avec Microsoft® Visual Studio® 2010
<asp:RequiredFieldValidator id="NameRequiredFieldValidator"
runat="server" ControlToValidate="NameTextBox" InitialValue="Enter
your name" ErrorMessage="You must enter your name" Text="*" />
Contrôle CompareValidator
Le contrôle CompareValidator permet de comparer les entrées utilisateur à une valeur
spécifique ou à un contrôle d'entrée secondaire. Le contrôle CompareValidator est
souvent utilisé lorsque le risque d'erreurs typographiques est élevé, comme pour
les champs de mot de passe qui masquent l'entrée réelle de l'utilisateur.
Le contrôle CompareValidator considère un contrôle d'entrée vide comme valide. Par
conséquent, si vous devez vérifier une valeur, associez le contrôle CompareValidator
au contrôle RequiredFieldValidator. Le contrôle CompareValidator utilise les
propriétés communes suivantes :
• ValueToCompare. Cette propriété est référencée par rapport à une valeur
de constante. Elle est utilisée pour la validation par rapport à des valeurs non
modifiées, telles que la limite d'âge minimale. Le contrôle CustomValidator
permet d'effectuer des comparaisons par rapport à des valeurs susceptibles de
changer.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-17
Dans l'exemple de code suivant, un contrôle CompareValidator vérifie que les valeurs
des deux contrôles TextBox, PasswordTextBox et PasswordConfirmationTextBox,
correspondent.
Contrôle RangeValidator
Le contrôle RangeValidator permet de vérifier qu'une valeur d'entrée se trouve
dans une plage donnée. La plage mesurée est globale, et les valeurs minimale et
maximale sont considérées comme valides. Le contrôle RangeValidator sert
généralement à vérifier que la valeur entrée (par exemple, l'âge, la taille, le salaire
ou le nombre d'enfants) correspond à la plage attendue.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-18 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Contrrôle RegularE
ExpressionVa
alidator
Points clés
Le contrrôle RegularExprressionValidatorr permet de vérifieer qu'une entrée utilisateur
u
correspond à un modèlee prédéfini, tel qu u'un numéro de tééléphone, un cod de postal,
une URL ou une adresse de messagerie. Ce C contrôle de valiidation compare le l modèle
des caraactères, chiffres et symboles entréss par l'utilisateur avec un ou plusiieurs
modèles dans le contrôlee.
Dans la fenêtre Propriétéss, lorsque vous cliq
quez sur le boutonn représentant dees points
de susppension (…) pour la propriété ValiidationExpressio on, Visual Studio 2010
fournit un
u ensemble de m modèles d'expresssion régulière préédéfinis dans la bo oîte de
dialoguee Éditeur d'expreessions régulièrees. Ces modèles in ncluent les adressses de
messageerie et les URL, lees numéros de téléphone, les codees postaux et les numéros
de sécurrité sociale. Pour créer un modèlee, sélectionnez d'aabord un modèlee qui
ressembble aux fonctions ddu modèle voulu, puis sélectionnezz le modèle Person nnalisé.
Le premmier modèle sélecctionné pourra êtrre modifié afin dee devenir votre modèle
m
personnnalisé. Cette derniière fonctionnalitéé vous offre une base
b à partir de laq
quelle
créer vo
otre propre modèlle en modifiant dees modèles existaants selon vos bessoins.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-20 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Caractère Définition
? Correspond à 0 ou 1 littéral.
* 0 à n littéraux.
\ Caractère de commande.
<asp:RegularExpressionValidator id="EmailRegexValidator"
runat="server" ControlToValidate="EmailTextBox" ErrorMessage="Use the
format username@organization.xxx" ValidationExpression="\w+@\w+\.\w+"
Text="*" />
...
<script type="text/javascript">
//<![CDATA[
function WebForm_OnSubmit() {
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() ==
false) return false;
return true;
}
//]]>
</script>
...
</div>
<div>
<input name="EmailTextBox" type="text" id="EmailTextBox" />
<span id="EmailRegexValidator"
style="visibility:hidden;">*</span>
</div>
<script type="text/javascript">
//<![CDATA[
var Page_Validators = new
Array(document.getElementById("EmailRegexValidator"));
//]]>
</script>
<script type="text/javascript">
//<![CDATA[
var EmailRegexValidator = document.all ?
document.all["EmailRegexValidator"] :
document.getElementById("EmailRegexValidator");
EmailRegexValidator.controltovalidate = "EmailTextBox";
EmailRegexValidator.errormessage = "Use the format
username@organization.xxx";
EmailRegexValidator.evaluationfunction =
"RegularExpressionValidatorEvaluateIsValid";
EmailRegexValidator.validationexpression = "\\w+@\\w+\\.\\w+";
//]]>
</script>
<script type="text/javascript">
//<![CDATA[
function ValidatorOnSubmit() {
if (Page_ValidationActive) {
return ValidatorCommonOnSubmit();
}
else {
return true;
}
}
//]]>
</script>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-23
Caractère Définition
\. Point.
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
Caractère Définition
\w+ Correspond à une chaîne d'au moins un caractère.
(suite)
Caractère Définition
Contrrôle CustomV
Validator
Points clés
Le contrrôle CustomValiidator permet d'aappliquer votre lo ogique de validatiion
personn
nalisée et de commparer les entrées utilisateur avec une u variable, une formule
ou une entrée provenantt d'une seconde source.
s Le contrô ôle CustomValida ator est
généraleement utilisé pouur des tâches tellees que la vérificattion de mots de passe,
p
auquel cas
c l'entrée utilisaateur est comparée à un mot de passe stocké dans la base
de donnnées.
L'exemple de code suivant décrit les gestionnaires côté serveur et côté client pour
un contrôle CustomValidator. De plus, il vérifie que le nombre d'entrées du
contrôle est pair.
<script type="text/javascript">
function ClientValidationHandler(source, args)
{
args.IsValid = (args.Value % 2 == 0)
}
</script>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-27
[Visual Basic]
Protected Sub ServerValidationHandler(ByVal source as Object,
ByVal args as ServerValidateEventArgs)
[Visual C#]
protected void ServerValidationHandler(object source,
ServerValidateEventArgs args)
{
args.IsValid = (args.Value % 2 == 0)
}
Notez que la valeur du contrôle d'entrée est accessible côté client et côté serveur
grâce à la propriété Value du paramètre args côté client et côté serveur.
Il n'est pas nécessaire de définir la propriété ControlToValidate pour le contrôle
CustomValidator. Toutefois, si vous ne spécifiez pas de valeur pour la propriété
ControlToValidate, une chaîne vide est transmise aux fonctions de validation côté
client et côté serveur.
Assocciation de co
ontrôles de validation
Points clés
Une fon nction de validation ou un contrôlle unique n'est paarfois pas suffisan
nt pour
vérifier que l'utilisateur a entré les donnéées correctement dans un contrôlee d'entrée.
La plup
part du temps, le ccontrôle RequireedFieldValidatorr est associé à l'un
n des
autres contrôles
c de valid
dation, mais il exiiste d'autres cas de
d figure.
Par exemmple, le contrôle TextBox d'un nu uméro de téléphoone peut exiger une
u
entrée, doit
d être conform me à l'un des nommbreux modèles ded numéro de télééphone
et doit être
ê vérifié auprèss d'une base de données
d de numééros de téléphonee stockée.
Dans cee cas de figure, vo
ous devez lier le contrôle
c TextBox
x à un contrôle
RequireedFieldValidatorr, lier un contrôlee RegularExpresssionValidator avvec
plusieurrs modèles et lierr un contrôle CusstomValidator avvec un accès côtéé serveur
à une baase de données.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-29
<asp:RequiredFieldValidator id="PhoneRequiredFieldValidator"
runat="server" ErrorMessage="The telephone number is required."
ControlToValidate="PhoneTextBox" Text="*" />
<asp:RegularExpressionValidator
id="PhoneRegularExpressionValidator" runat="server"
ErrorMessage="The telephone number is not formatted as a correct
US phone number." ControlToValidate="PhoneTextBox"
ValidationExpression="((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}"
Text="*" />
<asp:CustomValidator id="PhoneCustomValidator"
OnServerValidate="PhoneServerValidationHandler" runat="server"
ErrorMessage="This telephone number is not recognized"
ControlToValidate="PhoneTextBox" Text="*" />
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-30 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Démoonstration : A
Ajout de con
ntrôles de validation à un
n
formu
ulaire Web
Points clés
Dans ceette démonstration
n, vous verrez comment ajouter des contrôles de validation
à un forrmulaire Web ASPP.NET.
Procéd
dure de démonsstration
1. Ouvvrez une session sur 10557A-GEN
N-DEV en tant qu
ue Stagiaire avecc le mot
de passe
p Pa$$w0rd.
2. Ouvvrez Visual Studiio 2010.
• Dans le menu D
Démarrer de 10557A-GEN-DEV, pointez
p sur Tous les
programmes, clliquez sur Microsoft Visual Studio 2010, puis surr
Microsoft Visua
al Studio 2010.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-31
<asp:RequiredFieldValidator ID="DueDateRequiredFieldValidator"
ControlToValidate="DueDateTextBox" runat="server"
ErrorMessage="The Due Date must be filled in."
Text="*"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="DueDateRangeValidator"
ControlToValidate="DueDateTextBox" runat="server"
ErrorMessage="The Due Date must be valid."
Text="*"></asp:RangeValidator >
[Visual Basic]
DueDateRangeValidator.MinimumValue =
DateTime.Now.ToShortDateString()
DueDateRangeValidator.MaximumValue = (DateTime.Now +
New TimeSpan(30, 0, 0, 0)).ToShortDateString()
[Visual C#]
DueDateRangeValidator.MinimumValue =
DateTime.Now.ToShortDateString();
DueDateRangeValidator.MaximumValue = (DateTime.Now +
new TimeSpan(30, 0, 0, 0)).ToShortDateString();
<asp:RegularExpressionValidator
ID="CustomerEmailAddressRegularExpressionValidator"
ControlToValidate="CustomerEmailAddressTextBox" runat="server"
ErrorMessage="*" ValidationExpression="\w+([-+.']\w+)*@\w+([-
.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
<asp:ValidationSummary ID="OrderValidationSummary"
runat="server"></asp:ValidationSummary>
Remarque : notez que la date du jour a été ajoutée à la zone Order Date.
Remarque : vous pouvez observer la présence d'un astérisque à côté de la zone Due
Date et d'un message d'erreur dans le résumé de validation situé dans la partie inférieure.
Remarque : vous pouvez observer la présence d'un astérisque à côté de la zone Due
Date. Celui-ci se trouve au même emplacement que celui affiché lors de la précédente
tentative d'enregistrement de la commande. Le message d'erreur est différent dans le
résumé de validation situé dans la partie inférieure.
Remarque : vous pouvez observer la présence d'un astérisque à côté de la zone Email
Address et d'un message d'erreur dans le résumé de validation situé dans la partie
inférieure.
Positionnement e
et configurattion de contrrôles de valid
dation
dans un
u formulairre Web
Points clés
Les conntrôles de validatiion des entrées peuvent afficher un message d'erreur en cas
de violaation des entrées. Il est important de positionner lees contrôles de vaalidation
des entrrées de manière à ce que l'utilisateeur sache à quel contrôle
c correspoond
l'entrée incorrecte. Dans Visual Studio 20 010, vous devez positionner
p le conntrôle
dation sur la pagee sur laquelle le teexte du message d'erreur doit app
de valid paraître.
Le codee suivant correspo
ond au balisage standard
s pour un
n contrôle de valid
dation
des entrrées.
<asp:V
ValidatorType id="ID of valida
ator" runat="se
erver"
Co
ontrolToValidat
te="ID of contro
ol"
Er
rrorMessage="Er
rror message for
r error summary
y"
Di
isplay="Static | Dynamic | Non
ne"
Te
ext="Text to di
isplay next to the
t input contr
rol">
</asp:ValidatorType>
>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-37
Dans Visual Studio 2010, par défaut, la valeur de la propriété Text est placée entre
les balises de début et de fin du contrôle de validation. Le code suivant illustre ce
scénario.
<asp:ValidatorType...>TextValue</asp:ValidatorType>
You can explicitly declare the Text property. The following code
illustrates this approach.
<asp:ValidatorType...Text="TextValue"></asp:ValidatorType> or
<asp:ValidatorType...Text="TextValue" />
Option Description
Dynamic Permet aux contrôles de validation d'être restitués sur la page dans le
cadre de l'enchaînement. Cette option permet d'éviter l'affichage
d'espaces vides sur la page lorsque les contrôles de validation des
entrées ne sont pas déclenchés. Elle peut parfois entraîner un
déplacement des contrôles sur le formulaire Web lorsque les
messages d'erreur apparaissent.
Leçon 3
Validatio
on de formulaires Web
Objecttifs de la leçon
Au term
me de cette leçon, vous serez à mêm
me d'effectuer less tâches suivantess :
• ajou
uter le contrôle V
ValidationSumm
mary ;
• valiider par program
mmation les formu
ulaires Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-40 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Ajoutt du contrôle
e ValidationS
Summary
Points clés
Le contrrôle ValidationS Summary affiche des messages d'eerreur lorsque la propriété
p
Page.IsV Valid retourne laa valeur false. Ch
haque contrôle dee validation de la page est
interroggé et le contrôle V
ValidationSumm mary agrège les messages
m ErrorMeessage.
Le contrrôle ValidationS Summary n'effecttue pas de validattions sur les entréées de
contenu u des formulairess Web. Il s'agit plu
utôt du contrôle de rapport utiliséé par les
autres contrôles
c de valid
dation d'une pagee.
Vous po ouvez utiliser ce ccontrôle de validaation pour conso olider les rapportss
d'erreurrs de toutes les errreurs de validatio
on qui se produissent sur une pagee, plutôt
que de demander
d à chaqque contrôle de validation
v d'effectu
uer cette opératio
on.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-41
<asp:ValidationSummary id="MyValidationSummary"
runat="server"
HeaderText="These errors were found:"
ShowSummary="True"
DisplayMode="List" />
Valida
ation des forrmulaires We
eb par progrrammation
Points clés
Les con ntrôles de validatiion ASP.NET exécutent la validatio on automatiquem ment
lorsqu'u un formulaire Weeb est publié sur le l serveur. Cette opération a lieu après
a
l'initialissation de la page et avant l'exécution du code de gestion
g des événemments
de contrrôle.
Vous po ouvez parfois app
pliquer votre prop
pre validation par programmation
n dans
les cas suivants
s :
• si vous
v ment de l'exécution ;
ajoutez des ccontrôles dynamiiquement au mom
• si vous
v définissez less valeurs de valid
dation lors de l'ex
xécution, telles qu
ue les
valeeurs MinimumVa alue ou Maximu umValue du conttrôle RangeValidator ;
• si vous
v devez détermminer la validité d'une
d page ou d'u
un contrôle indiviiduel
danns le gestionnairee d'événements Pa age_Load, par exxemple pour emp pêcher
l'accès de certaines rressources côté seerveur (comme une
u base de donn nées),
lorssqu'une page n'esst pas valide.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-43
[Visual Basic]
Me.Validate()
[Visual C#]
this.Validate();
Vous pouvez aussi appliquer votre propre validation par programmation lorsque
vous utilisez le contrôle RangeValidator et que vous définissez la propriété
MinimumValue au moment de l'exécution en fonction des valeurs lues à partir
d'un fichier de configuration.
Après l'exécution de la validation, vous pouvez vérifier la propriété IsValid de la
page. Si la propriété IsValid est définie sur la valeur false, vous devrez identifier les
contrôles pour lesquels la validation échoue. Pour cela, vous devrez vérifier la
propriété IsValid de chaque contrôle de validation. Lorsqu'un contrôle exécute
une vérification de la validation, la propriété IsValid est définie en conséquence.
Si une erreur est détectée et que la page est retournée à l'utilisateur, les messages
d'erreur apparaissent.
Les exemples de code suivants illustrent la façon dont vous pouvez valider une
page lors de la publication et identifier le contrôle de validation à l'origine de
l'erreur de validation.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-44 Introduction au développement Web avec Microsoft® Visual Studio® 2010
[Visual Basic]
[Visual C#]
// User postback?
if (this.IsPostBack)
{
// Validate page
this.Validate();
// Is page valid?
if (!this.IsValid)
{
// Loop through all validation controls to see which
// generated the error(s)
foreach (IValidator controlValidator in this.Validators)
{
if (!controlValidator.IsValid)
{
...
}
}
}
}
Question : comment vérifier que le contenu d'un contrôle ou d'une page est valide ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validattion des entrées utilisateuur 6-45
Atelier pratique
p : Validatio
on des en
ntrées
utilisateu
ur
Remarq que : pour exécuteer les tâches de cett atelier pratique, vous
v pouvez utilise
er le
langage de programmatio on Microsoft Visual Basic® ou Microsoft Visual C#®. Si S vous
utilisez Visual
V Basic comme langage de prog grammation, reporrtez-vous aux instrructions
fournies dans la section 1 du document de l'atelier pratique co orrespondant. Si vous
v
utilisez Visual
V C# comme llangage de progra ammation, reporte ez-vous aux instrucctions
fournies dans la section 2 du document de l'atelier pratique co orrespondant.
Présen
ntation de l'atellier pratique
Dans ceet atelier pratiquee, vous ajouterez et
e configurerez lees contrôles de vaalidation
dans unn contrôle utilisatteur afin de vérifier la validité des entrées utilisateu
ur d'un
projet Web.
W Vous utiliserrez du script côtéé client, ce qui vo ous évitera de vériifier
fréquemmment les entréess utilisateur auprèès du serveur. En n outre, vous exéccuterez
une valiidation côté serveeur afin de protégger le projet Web b contre l'usurpattion et le
code maalveillant.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-46 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Objectifs de l’atelier
Au terme de cet atelier pratique, vous serez à même d'effectuer les tâches suivantes :
Scéna
ario de l'ateliier pratique
Vous êtes développeur cchez Contoso, Ltd d, une grande enttreprise disposan nt d'une
base de clients mondialee. Votre organisattion gère ses inforrmations clients viav un
site Web b. Pour améliorerr la communicatiion, l'organisationn doit garder les
informaations clients de ssa base de donnéées à jour. Pour saatisfaire à cette ex
xigence,
vous deevez ajouter des ccontrôles de valid
dation au projet Customer
C Manageement et
les conffigurer sans générrer de surcharge administrative ou u de problèmes de d
perform
mances en raison de vérifications fréquentes
fr auprèss du serveur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-48 Introduction au développement Web avec Microsoft® Visual Studio® 2010
<asp:RequiredFieldValidator
ID="CustomerFirstNameRequiredFieldValidator"
ControlToValidate="CustomerFirstNameTextBox" runat="server"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator
ID="CustomerLastNameRequiredFieldValidator"
ControlToValidate="CustomerLastNameTextBox" runat="server"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-49
<asp:RequiredFieldValidator
ID="CustomerAddressRequiredFieldValidator"
ControlToValidate="CustomerAddressTextBox" runat="server"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator
ID="CustomerZipCodeRequiredFieldValidator"
ControlToValidate="CustomerZipCodeTextBox" runat="server"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator
ID="CustomerCityRequiredFieldValidator"
ControlToValidate="CustomerCityTextBox" runat="server"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator
ID="CustomerCountryRequiredFieldValidator"
ControlToValidate="CustomerCountryDropDownList" runat="server"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-50 Introduction au développement Web avec Microsoft® Visual Studio® 2010
<asp:RequiredFieldValidator
ID="CustomerWebAddressRequiredFieldValidator"
ControlToValidate="CustomerWebAddressTextBox" runat="server"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator
ID="CustomerCreditLimitRequiredFieldValidator"
ControlToValidate="CustomerCreditLimitTextBox" runat="server"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator
ID="CustomerEmailAddressRegularExpressionValidator"
ControlToValidate="CustomerEmailAddressTextBox" runat="server"
ErrorMessage="RegularExpressionValidator"></asp:RegularExpressionV
alidator>
<asp:RegularExpressionValidator
ID="CustomerWebAddressRegularExpressionValidator"
ControlToValidate="CustomerWebAddressTextBox" runat="server"
ErrorMessage="RegularExpressionValidator"></asp:RegularExpressionV
alidator>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-51
<asp:RangeValidator ID="CustomerCreditLimitRangeValidator"
ControlToValidate="CustomerCreditLimitTextBox" runat="server"
MinimumValue="500" MaximumValue="50000"
ErrorMessage="RangeValidator"></asp:RangeValidator>
<asp:ValidationSummary ID="CustomerValidationSummary"
runat="server"></asp:ValidationSummary>
Résultat : au terme de cet exercice, vous aurez ajouté des contrôles de validation à un
contrôle utilisateur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-52 Introduction au développement Web avec Microsoft® Visual Studio® 2010
''' <summary>
''' Redirects to home page
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Protected Sub CustomerCancelButton_Click(ByVal sender As Object,
ByVal e As System.EventArgs) Handles CustomerCancelButton.Click
' Redirect to home page
Response.Redirect("~/Default.aspx")
End Sub
Remarque : notez que le navigateur Web est redirigé vers le formulaire Web par défaut
au lieu d'afficher les messages d'erreur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-53
Remarque : notez la présence de l'indicateur d'erreur qui s'affiche à côté des zones
Email Address et Web Address en raison des adresses Web et de messagerie non
valides.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-55
Remarque : notez que la valeur de la zone Credit Limit est définie sur 0 et que le texte
de l'indicateur d'erreur de la zone Web Address n'est pas aligné sur les autres
indicateurs d'erreur. En outre, le message d'erreur de la zone Credit Limit est The Credit
Limit must be within the valid range.
Remarque : notez que l'emplacement de l'indicateur d'erreur pour la zone Credit Limit
a changé. Toutefois, le message d'erreur de la zone Credit Limit demeure The Credit
Limit must be within the valid range.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-56 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Remarque : notez que l'indicateur et les messages d'erreur ne s'affichent pas pour les
zones Email Address, Web Address et Credit Limit.
''' <summary>
''' Saves the current customer information and adds default values
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Protected Sub CustomerInsertButton_Click(ByVal sender As Object,
ByVal e As System.EventArgs) Handles CustomerInsertButton.Click
' Did page validation succeed?
If Not Page.IsValid Then
Return
End If
''' <summary>
''' Instantiates Customer object
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
If Page.IsPostBack Then
' Validate Page
Page.Validate()
<asp:RequiredFieldValidator
ID="CustomerCountryRequiredFieldValidator"
ControlToValidate="CustomerCountryDropDownList" runat="server"
ErrorMessage="A country must be selected." Text="*"
EnableClientScript="false"></asp:RequiredFieldValidator>
Remarque : notez la publication de la page Web avec les entrées. Notez également
qu'après la publication, l'indicateur d'erreur pour la liste Country et le message d'erreur
associé sont affichés.
<asp:RequiredFieldValidator
ID="CustomerCountryRequiredFieldValidator"
ControlToValidate="CustomerCountryDropDownList" runat="server"
ErrorMessage="A country must be selected."
Text="*"></asp:RequiredFieldValidator>
Résultats : au terme de cet exercice, vous aurez ajouté des contrôles de validation
côté serveur au contrôle utilisateur Customer.
Remarque : vous trouverez les corrigés des exercices sur le CD-ROM d'accompagnement
du cours.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-60 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Section 2 : Visual C#
Exercice 1 : Ajout de contrôles de validation
Dans cet exercice, les tâches principales sont les suivantes :
<asp:RequiredFieldValidator
ID="CustomerFirstNameRequiredFieldValidator"
ControlToValidate="CustomerFirstNameTextBox" runat="server"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator
ID="CustomerLastNameRequiredFieldValidator"
ControlToValidate="CustomerLastNameTextBox" runat="server"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-61
<asp:RequiredFieldValidator
ID="CustomerAddressRequiredFieldValidator"
ControlToValidate="CustomerAddressTextBox" runat="server"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator
ID="CustomerZipCodeRequiredFieldValidator"
ControlToValidate="CustomerZipCodeTextBox" runat="server"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator
ID="CustomerCityRequiredFieldValidator"
ControlToValidate="CustomerCityTextBox" runat="server"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator
ID="CustomerCountryRequiredFieldValidator"
ControlToValidate="CustomerCountryDropDownList" runat="server"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-62 Introduction au développement Web avec Microsoft® Visual Studio® 2010
<asp:RequiredFieldValidator
ID="CustomerWebAddressRequiredFieldValidator"
ControlToValidate="CustomerWebAddressTextBox" runat="server"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator
ID="CustomerCreditLimitRequiredFieldValidator"
ControlToValidate="CustomerCreditLimitTextBox" runat="server"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator
ID="CustomerEmailAddressRegularExpressionValidator"
ControlToValidate="CustomerEmailAddressTextBox" runat="server"
ErrorMessage="RegularExpressionValidator"></asp:RegularExpressionV
alidator>
<asp:RegularExpressionValidator
ID="CustomerWebAddressRegularExpressionValidator"
ControlToValidate="CustomerWebAddressTextBox" runat="server"
ErrorMessage="RegularExpressionValidator"></asp:RegularExpressionV
alidator>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-63
<asp:RangeValidator ID="CustomerCreditLimitRangeValidator"
ControlToValidate="CustomerCreditLimitTextBox" runat="server"
MinimumValue="500" MaximumValue="50000"
ErrorMessage="RangeValidator"></asp:RangeValidator>
<asp:ValidationSummary ID="CustomerValidationSummary"
runat="server"></asp:ValidationSummary>
Résultat : au terme de cet exercice, vous aurez ajouté des contrôles de validation à un
contrôle utilisateur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-64 Introduction au développement Web avec Microsoft® Visual Studio® 2010
/// <summary>
/// Redirects to home page
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void CustomerCancelButton_Click(object sender, EventArgs e)
{
// Redirect to home page
Response.Redirect("~/Default.aspx");
}
Remarque : notez que le navigateur Web est redirigé vers le formulaire Web par défaut
au lieu d'afficher les messages d'erreur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-65
Remarque : notez la présence de l'indicateur d'erreur qui s'affiche à côté des zones
Email Address et Web Address en raison des adresses Web et de messagerie non
valides.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-67
Remarque : notez que la valeur de la zone Credit Limit est définie sur 0 et que le texte
de l'indicateur d'erreur de la zone Web Address n'est pas aligné sur les autres
indicateurs d'erreur. En outre, le message d'erreur de la zone Credit Limit est The Credit
Limit must be within the valid range.
Remarque : notez que l'emplacement de l'indicateur d'erreur pour la zone Credit Limit
a changé. Toutefois, le message d'erreur de la zone Credit Limit demeure The Credit
Limit must be within the valid range.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-68 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Remarque : notez que l'indicateur et les messages d'erreur ne s'affichent pas pour les
zones Email Address, Web Address et Credit Limit.
/// <summary>
/// Saves the current customer information and adds default values
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void CustomerInsertButton_Click(object sender, EventArgs e)
{
// Did page validation succeed?
if (!Page.IsValid)
return;
// Instantiate Customer
instantiateCustomerObject();
// Populate the UI controls
populateUI();
}
<asp:RequiredFieldValidator
ID="CustomerCountryRequiredFieldValidator"
ControlToValidate="CustomerCountryDropDownList" runat="server"
ErrorMessage="A country must be selected." Text="*"
EnableClientScript="false"></asp:RequiredFieldValidator>
Remarque : notez la publication de la page Web avec les entrées. Notez également
qu'après la publication, l'indicateur d'erreur pour la liste Country et le message d'erreur
associé sont affichés.
<asp:RequiredFieldValidator
ID="CustomerCountryRequiredFieldValidator"
ControlToValidate="CustomerCountryDropDownList" runat="server"
ErrorMessage="A country must be selected."
Text="*"></asp:RequiredFieldValidator>
Résultats : au terme de cet exercice, vous aurez ajouté des contrôles de validation
côté serveur au contrôle utilisateur Customer.
Remarque : vous trouverez les corrigés des exercices sur le CD-ROM d'accompagnement
du cours.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-72 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Récap
pitulatif de l'atelier pratiq
que
Parcou
urir les question
ns et les répon
nses
1. Pouurquoi avez-vous ajouté le contrôlle RegularExpresssionValidator pour
p le
chaamp d'adresse de messagerie ?
2. Dan
ns quels cas utilissez-vous un contrrôle ValidationSu
ummary ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
6-74 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Récapitu
ulatif du m
module et
e élémen
nts à retenir
Parcou
urir les question
ns et les répon
nses
1. Quel contrôle utiliseerez-vous pour ex
xécuter les tâchess de validation su
uivantes ?
Problèmes et scénario
os réels
1. Vou us voulez vous asssurer qu'un conttrôle d'entrée est toujours rempli par
p
l'utiilisateur, mais vous souhaitez égallement qu'il respecte un format sp
pécifique.
Quelle est la méthod de d'ajout la plus simple ?
Ajoutez un contrôle RequiredFieldV
Validator et un co
ontrôle
gularExpressionV
Reg Validator.
2. Auccun contrôle de vvalidation intrinsèèque ASP.NET nee correspond à voos
bessoins en matière d
de validation. Quue pouvez-vous faaire pour résoudre ce
pro
oblème ?
Crééez un contrôle C
CustomValidatorr et ajoutez la logiique de validation
n sous
form
me de code.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Validation des entrées utilisateur 6-75
Meilleures pratiques
Indiquez quelques-unes des meilleures pratiques s'appliquant au contexte de vos
propres situations professionnelles.
• Toujours ajouter du code de validation côté serveur lors de l'utilisation de
contrôles de validation car le script côté client pourrait être désactivé ou un
utilisateur malveillant pourrait compromettre l'entrée utilisateur, et cette
dernière pourrait alors être envoyée au serveur.
• Toujours valider l'entrée utilisateur utilisée pour effectuer des opérations côté
serveur, telles que la recherche dans une base de données ou l'accès à des
ressources côté serveur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèmes liés aux applications Web Microsoft® ASP.NET 7-1
Module 7
Résolution des problèmes liés aux
applications Web Microsoft® ASP.NET
Table des matières :
Leçon 1 : Débogage dans ASP.NET 7-3
Leçon 2 : Traçage dans ASP.NET 7-23
Atelier pratique : Résolution des problèmes liés aux applications Web
Microsoft ASP.NET 7-36
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
7-2 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Vue d'en
nsemble du modu
ule
Lorsquee vous développeez une application n Web, il est diffiicile de détecter toutes les
erreurs éventuelles se troouvant dans le coode. Il peut s'agir d'erreurs survennues lors
ompilation, d'erreeurs logiques ou d'erreurs
de la co d d'exécution. Vous pouveez utiliser
les com
mpilateurs Microso oft® Visual Studio
o® 2010 pour ideentifier les erreurss
survenuues lors de la com
mpilation. Pour lees erreurs logiquees et d'exécution, utilisez
le déboggueur Visual Stud dio 2010, ou utiliisez Visual Studioo 2010 avec les objets
o
Debug ete Trace.
Le débo ogage est essentieel lors du dévelop
ppement car il peermet de vérifier qu'une
q
applicattion Web répond d aux exigences sp pécifiées. Au courrs du processus de
d
débogagge, vous pouvez iidentifier les erreurs et les corrigerr. Vous pouvez éggalement
effectueer un traçage de l''application pourr capturer ses info
ormations d'exécution et
analyserr ses performancces.
Ce moddule décrit les étapes requises pou
ur activer le traçagge et le débogage, et
expliqu
ue notamment com mment utiliser cees fonctions danss une application Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèm
mes liés aux applications Web
W Microsoft® ASP.NET 7-3
Leçon 1
Débogag
ge dans A
ASP.NET
Grâce au débogage, vouss pouvez recherch her les erreurs daans une application Web
ASP.NE ET. Le débogage cconsiste à identifiier et à résoudre les
l erreurs logiquues et
techniques dans une app plication Web. Poour la plupart dess opérations de débogage,
d
vous po ouvez exécuter le débogueur Visuaal Studio 2010 su ur l'ordinateur héébergeant
l'applicaation Web. Vous pouvez débogueer une application n Web en ajoutan nt des
points d'arrêt
d et en parco
ourant le code paas à pas en mode débogage. Alors que le
débogagge local permet dde déboguer les ap pplications sur votre ordinateur lo ocal, le
débogagge distant permet de déboguer un ne application Weeb exécutée sur un u
emplaceement distant.
Cette leçon décrit comm
ment effectuer un débogage local et un débogage diistant.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
7-4 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Objectifs de la leçon
Au terme de cette leçon, vous serez à même d'effectuer les tâches suivantes :
• décrire les types d'erreurs ;
• décrire le débogage ;
• décrire la classe Debug ;
• expliquer comment collecter les informations de débogage au moment de
l'exécution ;
• décrire les méthodes d'impression des informations de débogage ;
• décrire le débogage dans une application Web ;
• décrire le débogage distant dans une application Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèm
mes liés aux applications Web
W Microsoft® ASP.NET 7-5
Points clés
Lorsquee vous développeez des application ns, vous pouvez rencontrer
r différeents types
d'erreurrs. Pour pouvoir lles résoudre, vou
us devez identifierr le type d'erreur afin
d'apporrter la correction appropriée.
Il existee trois types d'erreeurs à gérer lors du
d développemen nt de vos applicaations :
les erreuurs de syntaxe, lees erreurs d'exécu ution et les erreurrs sémantiques.
Erreurs de syntaxe
Pour qu u'un compilateur puisse compiler le code et que l'aapplication soit ex xécutée,
la syntaaxe d'une applicattion doit être corrrecte. La syntaxe désigne la structture de
l'applicaation et les règless associées à cettee structure. Par ex
xemple, il peut s'aagir
d'accolaades entourant un n bloc de code daans Microsoft Vissual C#®
((!thi is.IsPostBack k) { Block of Code }) ou des d instructions Begin
B et
End corrrespondantes daans Microsoft Visual Basic® (Sub SubName() .. .. End
Sub.). Si
S vous omettez l'une des accoladees dans Visual C# # ou l'instruction End Sub
dans Visual Basic, une errreur de syntaxe se produit.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
7-6 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Les erreurs de syntaxe font partie de ce que l'on appelle les erreurs survenues lors
de la compilation. Visual Studio 2010 vous avertit des erreurs potentielles au
moment de la conception. Des notifications de syntaxe ou des tildes sous le code
indiquent que ce dernier ne sera pas compilé ou qu'une erreur peut se produire.
Vous pouvez identifier les erreurs de syntaxe afin de les résoudre lorsque vous
compilez l'application.
Erreurs d'exécution
Les erreurs d'exécution se produisent lorsque l'application est en cours d'exécution.
Ces erreurs sont également appelées exceptions. Par exemple, une application peut
dépendre d'un autre fichier au moment de l'exécution. Toutefois, si ce fichier n'est
pas disponible lorsque l'application tente d'y accéder, une exception est levée et
votre application doit décider s'il faut gérer cette exception. La gestion des
exceptions peut être implémentée en encapsulant du code dans une construction
Try...Catch/try...catch, comme dans l'exemple suivant.
[Visual Basic]
Try
' Place any code here, that are critical to your application,
' that potentially throws an exception
Catch
' Add any cleanup/resolve code here to handle the exception
' thrown, or code to log the exception details
Finally
' Add any code that must be executed whether an exception
' is thrown or not
End Try
[Visual C#]
try
{
// Place any code here, that are critical to your application,
// that potentially throws an exception
}
catch
{
// Add any cleanup/resolve code here to handle the exception
// thrown, or code to log the exception details
}
finally
{
// Add any code that must be executed whether an exception
// is thrown or not
}
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèmes liés aux applications Web Microsoft® ASP.NET 7-7
Erreurs sémantiques
Les erreurs sémantiques sont les plus difficiles à localiser et à corriger car
l'exécution de votre application semblera correcte et aucun message d'erreur
n'apparaîtra. Cependant, votre application ne fonctionnera peut-être pas comme
prévu. Par exemple, un utilisateur effectue un calcul et le résultat correct est affiché
à l'écran. Si le calcul et les opérations associées ne sont pas enregistrés dans le
stockage de données, un second utilisateur verra les mêmes données que celles
initialement affichées par le premier utilisateur. Cela signifie que la sémantique de
l'application est incorrecte. L'identification de ce type d'erreur peut s'avérer très
délicate et déroutante. En effet, elle requiert que vous suiviez l'entrée, la sortie et le
flux de la logique de l'application pour localiser le bogue.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
7-8 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Présentation du d
débogage
Points clés
Les erreeurs de programmmation sont généralement appeléees « bogues » et lee
processus de suivi assoccié est le débogage.
Lorsqu'un bogue est déttecté, vous devez d'abord décider s'il faut le corrigeer, puis
identifieer la source de l'eerreur et, pour fin
nir, corriger le boggue à l'aide des outils
fournis par Visual Studio o 2010.
Décisio
on concernant la correction du
d bogue
nt de déterminer si un bogue doit être
Un certain nombre de faacteurs permetten
corrigé :
• La correction
c du boggue est-elle trop coûteuse
c à ce stad
de du développem
ment ?
• S'aggit-il d'un défaut ggrave ou d'un pro
oblème mineur ?
• Est--il possible de con
ntourner ce bogu
ue ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèmes liés aux applications Web Microsoft® ASP.NET 7-9
Correction du bogue
Après avoir repéré la ou les lignes de code problématiques, vous devez les corriger
conformément à la spécification de la méthode ou classe en question que vous
utilisez. Vous devez déterminer comment corriger le bogue en fonction de son type.
Pour certaines erreurs, des corrections simples suffisent, comme la suppression
d'une ligne de code qui n'est pas nécessaire ; en revanche, pour d'autres, une
nouvelle expression ou un nouveau calcul est requis. Il existe également d'autres
bogues qui, après une recherche approfondie, exigent que vous reconceviez toute
une classe ou même un module.
Bien qu'il soit parfaitement possible de localiser et corriger un bogue manuellement,
il est plus pratique de les corriger en utilisant différents outils. Dans la plupart des
cas, l'utilisation d'un ou de plusieurs outils pour déboguer votre code représente un
gain de temps. Visual Studio 2010 vous fournit le débogueur Visual Studio 2010, et
les objets et constructions Microsoft .NET Framework permettant de corriger les
bogues. L'outil Visual Debugger vous permet de définir des points d'arrêt et de
parcourir les lignes de code une à une. Vous définissez un point d'arrêt sur une ligne
de code spécifique. Lorsque la ligne de code est atteinte au moment de l'exécution, le
code ouvre le débogueur. À ce stade, vous pouvez examiner le code pour le corriger,
puis continuer à parcourir le code qui suit, ligne par ligne, si nécessaire.
Classe
e Debug
Points clés
La classse Debug fournit un ensemble de méthodes et de propriétés
p permettant de
déboguer le code via l'im
mpression des infformations de déb bogage et la vérifi
fication
du codee avec les assertio
ons. Avec la classee Debug, vous po ouvez vérifier quee votre
code est fiable, sans que cela n'ait d'incidence sur les perfo ormances et la taiille du
code dee votre produit fin
nal. Un tel résultaat est possible carr, lors de la comppilation
en mod de Version finale, les appels vers lees méthodes et prropriétés de la claasse
Debug ne n sont pas comp pilés dans l'assemmbly. La classe Deebug est globalem ment
disponiible pour votre appplication lorsquee vous importez l'espace
l de nomss
System.Diagnostics. Parr conséquent, vou us n'avez pas bessoin de créer une instance
de la claasse. Vous ne pou
uvez pas créer d'iinstance de la classe Debug car ellle ne
contient aucun construccteur, et vous ne pouvez
p pas hériteer de cette classe car elle
est sealeed.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèmes liés aux applications Web Microsoft® ASP.NET 7-11
Méthode Description
Points clés
Tout enn vérifiant que votrre application suiit le chemin d'exéécution requis ou effectue
les actio
ons nécessaires, vo ous pouvez affich her les informationns de diagnostic sur
s les
demand des de page. Pour cela, activez la fo onctionnalité de trraçage pour votre page ou
applicattion. Lorsque vou us utilisez les classses Debug et TracceContext, vous pouvez
p
collecterr et afficher les informations de diaagnostic au momeent de l'exécution n:
• Classe Debug. Vous pouvez utiliser laa classe Debug po our extraire les
ormations de débogage. Les instrucctions utilisant la classe Debug ne sont
info
exéécutées que lorsqu ue vous compilez l'application en mode
m débogage et que
l'ap
pplication Web estt exécutée dans lee débogueur. Si vo ous créez une verrsion
finaale (Release), les in
nstructions ne seront pas incluses dans l'assembly compilé.
c
Aveec la classe Debug g, les messages so
ont envoyés sous formef de sortie à la
colllection actuelle dees écouteurs de trrace, qui, par défaaut, affiche la sortiie dans le
voleet Débogage de laa fenêtre Sortie daans Visual Studio 2010. Un écouteeur crée
unee sortie formatée à partir de la sortiie de débogage.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèmes liés aux applications Web Microsoft® ASP.NET 7-13
Remarque : pour utiliser la classe Debug, vous devez importer l'espace de noms
System.Diagnostics dans votre fichier de code ou préfixer l'espace de noms à l'appel de
méthode de classe.
Question : quelles sont les deux configurations par défaut dans Visual Studio 2010 ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
7-14 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Points clés
Pour im
mprimer des inforrmations de débo ogage, plusieurs méthodes
m sont à votre
v
disposittion, dont les méthodes Write et WriteLine.
W
• Wrrite. Écrit une chaaîne de texte danss les écouteurs dee trace. Cette métthode
con
ntient quatre surccharges : deux écrrivant une seule ligne
l de texte, et les
deu
ux autres écrivantt une ligne de tex xte et le nom de catégorie.
c Le nom m de
catéégorie peut servirr à regrouper les messages
m de sorttie.
• WrriteLine. Écrit une chaîne de textee dans les écouteu urs de trace, et ajo
oute un
sau
ut de ligne à la fin
n du texte de sortee que tout nouveeau texte suivant votre
v
app
pel soit écrit sur laa prochaine ligne.. Cette méthode contient
c quatre suurcharges :
deu
ux écrivant une seeule ligne de textte, et les deux auttres écrivant une ligne de
textte et le nom de caatégorie. Vous poouvez utiliser le nom
n de catégorie pour
regrrouper les messaages de sortie.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèmes liés aux applications Web Microsoft® ASP.NET 7-15
Les exemples de code suivants illustrent comment utiliser les méthodes Write et
WriteLine.
[Visual Basic]
Debug.Write("Writing a string of text...")
Debug.WriteLine("Writing a line of text...")
Debug.Write("Writing a string of text...", "Category 1")
Debug.WriteLine("Writing a line of text...", "Category 2")
[Visual C#]
Debug.Write("Writing a string of text...");
Debug.WriteLine("Writing a line of text...");
Debug.Write("Writing a string of text...", "Category 1");
Debug.WriteLine("Writing a line of text...", "Category 2");
[Visual Basic]
Debug.WriteIf(Page.IsPostBack, "Writing a string of text...")
Debug.WriteLineIf(Page.IsPostBack, "Writing a line of text...")
[Visual C#]
Debug.WriteIf(Page.IsPostBack, "Writing a string of text...");
Debug.WriteLineIf(Page.IsPostBack, "Writing a line of text...");
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
7-16 Introduction au développement Web avec Microsoft® Visual Studio® 2010
[Visual Basic]
Debug.Print("Printing a line of text...")
Debug.Print("Printing a line a text, Postback = {0}", Page.IsPostBack)
[Visual C#]
Debug.Print("Printing a line of text...");
Debug.Print("Printing a line a text, Postback = {0}",
Page.IsPostBack);
[Visual Basic]
Debug.Assert(Page.IsPostBack)
Debug.Assert(Page.IsPostBack, "Brief Message")
Debug.Assert(Page.IsPostBack, "Brief Message", "Detail description
message")
Debug.Assert(Page.IsPostBack, "Brief Message", "Detail description
message", objectArrayToFormat)
[Visual C#]
Debug.Assert(Page.IsPostBack)
Debug.Assert(Page.IsPostBack, "Brief Message")
Debug.Assert(Page.IsPostBack, "Brief Message", "Detail description
message");
Debug.Assert(Page.IsPostBack, "Brief Message", "Detail description
message", objectArrayToFormat);
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèmes liés aux applications Web Microsoft® ASP.NET 7-17
Une boîte de dialogue apparaît que vous exécutiez l'application avec ou sans
débogage, et que vous compiliez l'application en mode débogage ou en mode
Version finale. Cette boîte de dialogue est générée avec la surcharge de la méthode,
qui prend en compte les trois paramètres suivants : condition, message et description.
La première surcharge indiquée ci-dessus ne prend en compte qu'un paramètre
condition et n'affiche que la pile des appels. La surcharge suivante n'affiche que le
message et la pile des appels. La pile des appels indique le nom des fonctions
qu'elle contient, les types de paramètres et les valeurs de paramètre à un moment
précis.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
7-18 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Points clés
Si l'une de vos pages Weeb contient une erreur, utilisez le débogage
d pour id
dentifier
la sourcce du problème. L Lorsque vous sou uhaitez déboguerr une application Web,
vous deevez d'abord activver le débogage, puisp décider si vo ous devez générerr une
sortie des informations d de débogage pendant que votre ap pplication Web est
e en
cours d'exécution. Vous devez égalementt décider si vous souhaitez ajouterr des
points d'arrêt
d dans votree code, choisir l'en
ndroit où l'exécution doit être susspendue,
et, pourr finir, exécuter l'aapplication Web en mode débogaage. Si vous avez ajouté
a
des poin nts d'arrêt, vous ppouvez parcourirr le code pas à paas lorsque l'un d'eentre eux
est atteiint.
Activattion du déboga
age d'une appliccation Web
Si vous souhaitez déboguer votre applicaation Web, vous devez
d activer le débogage
dans le fichier web.confiig. Vous devez loccaliser l'élément compilation
c d'ouuverture
se trouvvant dans l'élément system.web et définir la valeurr de l'attribut debbug sur
true. Lees exemples de coode suivants illusstrent comment définir
d la valeur de
d
l'attribu
ut debug.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèmes liés aux applications Web Microsoft® ASP.NET 7-19
[Visual Basic]
<configuration>
<system.web>
<compilation debug="true" strict="false" explicit="true">
...
</system.web>
<configuration>
[Visual C#]
<configuration>
<system.web>
<compilation debug="true">
...
</system.web>
<configuration>
Débogage distantt
Points clés
Le débo ogage distant est lee processus de débbogage des appliccations Web exécu utées sur
un serveeur différent. Cettee opération vous permet
p de déboguuer les application
ns Web
sur plussieurs serveurs dissparates, à partir d'une
d même station n de travail. Vous pouvez
l'utiliser si vous ne parven nez pas à exécuterr votre application
n Web localement ou que
vous sou uhaitez tester l'app
plication pendantt son déploiementt sur un serveur Web.
W
Remotee Debugging M
Monitor
Lorsquee vous effectuez un n débogage distan nt, vous pouvez uttiliser Remote Deb
bugging
Monitorr, ou msvsmon.exe,, qui est une petitee application à laq
quelle Visual Studiio 2010 se
connectte. Vous pouvez in nstaller Remote Deebugging Monitorr sur l'ordinateur distant
d ou
l'exécuteer à distance à parrtir d'un dossier paartagé.
Par défaaut, Remote Debu ugging Monitor esst exécuté en tantt qu'application Windows®.
W
Pour efffectuer un débogaage dans ASP.NET T ou un autre envvironnement serveeur,
configurrez cette applicatiion de surveillancce de façon à ce qu u'elle soit exécutéée en tant
que servvice Windows. Po our ce faire, utiliseez l'assistant Conffiguration Visual Studio
S
2010 Reemote Debugger. Vous pouvez dém marrer cet assistan nt depuis le dossiier Visual
Studio Tools
T figurant danns le menu Déma arrer.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
7-22 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Leçon 2
Traçage dans ASP
P.NET
Objectifs de la leçon
Au terme de cette leçon, vous serez à même d'effectuer les tâches suivantes :
• décrire le traçage ;
• décrire la classe TraceContext ;
• effectuer une opération de traçage dans une application Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèm
mes liés aux applications Web
W Microsoft® ASP.NET 7-25
Points clés
Le traçaage est le processu us de réception des
d messages à caaractère informatif
concern nant l'exécution d d'une application Web au moment de l'exécution. Utilisez
U
le traçagge si l'une de vos pages Web contient une erreur et que vous souhaaitez
analyserr cette erreur, ou si vous voulez su uivre le chemin d'exécution
d et visu
ualiser le
temps écoulé
é pour les diifférentes méthoddes. Pour tracer une
u application Web,W vous
devez d'abord
d activer le traçage, puis décider si vous deveez obtenir une sorrtie des
informaations de trace lorrsque votre appliication Web est en cours d'exécutiion. Vous
devez éggalement déterm miner si vous souhhaitez utiliser le trraçage au niveau de la
page ouu au niveau de l'ap pplication.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
7-26 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Trace ASP.NET
ASP.NET offre une fonction appelée « traçage », qui vous permet d'afficher les
informations de diagnostic concernant une seule demande pour une page ASP.NET.
Pour cela, il vous suffit d'activer cette fonction pour la page ou l'application. Le traçage
vous permet également d'écrire des instructions de débogage directement dans le
code sans devoir les supprimer de votre application lorsque vous la déployez dans
les serveurs de production. Vous pouvez écrire des variables ou des structures dans
une page, déclarer si une condition est satisfaite ou simplement effectuer un traçage
dans le chemin d'exécution de votre page ou application.
Pour que ces messages et autres informations de traçage puissent être collectés et
affichés, vous devez activer le traçage pour la page ou l'application. Lorsque vous
activez le traçage, deux événements se produisent :
• ASP.NET ajoute une série de tableaux d'informations de diagnostic
immédiatement à la suite de la sortie de la page. Si vous avez activé le traçage
pour l'application, les informations sont également envoyées à une application
visionneuse de trace.
• ASP.NET affiche vos messages de diagnostic personnalisés dans la table
Informations de traçage des données de performances ajoutées.
Classe
e TraceConte
ext
Points clés
Vous po ouvez utiliser la cclasse TraceConttext pour écrire des
d messages de trace t sur
une pagge ou dans le jourrnal des traces daans la mémoire. PourP implémenter le
journal des traces, utiliseez la collection dee messages TraceeRecords. Il s'agit d'une
collectioon des enregistreements de trace asssociés à la demaande active. Vous n'avez
pas beso oin de créer une instance de la claasse TraceContex xt car celle-ci est
immédiiatement disponib ble lorsque vous utilisez un formuulaire Web ASP.N NET via
la proprriété Trace de la classe Page. En faait, la classe TracceContext est de type
System.Web.HttpConteext. Elle encapsulle toutes les inforrmations HTTP
concern nant une demand de HTTP (Hypertext Transfer Prottocol). Vous ne devez
donc jam mais créer d'instaance de cette classse car le construccteur prend en ch harge
l'infrastrructure .NET Fraamework. Cette cllasse n'est pas prrévue pour être uttilisée
directemment à partir du ccode. En outre, laa classe TraceCon ntext ne peut pass être
héritée car
c elle est sealedd.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
7-28 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Pour écrire des informations dans le journal des traces, utilisez l'une des méthodes
suivantes de la classe TraceContext :
• Write. Écrit un message de trace dans le journal des traces. La méthode Write
contient trois surcharges ; chacune d'entre elles écrit un message de trace dans
le journal des traces. La deuxième surcharge spécifie le nom de catégorie
indiquant la catégorie qui recevra le message de trace. La troisième surcharge
prend en compte un troisième paramètre, de type Exception, qui indique que
vous pouvez fournir une exception interceptée ou définie par l'utilisateur.
• Warn. La méthode Warn est semblable à la méthode Write. Toutefois,
contrairement à la méthode Write, le texte de tous les avertissements apparaît
en rouge dans le journal.
Les exemples de code suivants illustrent comment écrire les messages de trace.
[Visual Basic]
Trace.Write("Trace Message")
Trace.Write("Category 1", "Trace Message")
Trace.Write("Category 2", "Trace Message", New Exception("En Exception
was thrown, because..."))
[Visual C#]
Trace.Write("Trace Message");
Trace.Write("Category 1", "Trace Message");
Trace.Write("Category 2", "Trace Message", new Exception("En Exception
was thrown, because..."));
Si vous activez le traçage, la sortie sera ajoutée à la page dans laquelle le code a été
exécuté.
Sur la page des informations de trace, le paramètre de catégorie vous permet de
classer et regrouper les messages de trace. Par exemple, vous pouvez définir l'ordre
de tri des messages de trace afin d'afficher les messages de la même catégorie
ensemble. L'attribut TraceMode permet de spécifier l'ordre dans lequel vous
souhaitez que les messages de trace apparaissent.
Définissez l'attribut TraceMode sur SortByTime pour trier les messages de trace
dans l'ordre dans lequel ils sont traités.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèmes liés aux applications Web Microsoft® ASP.NET 7-29
Instruction TraceContext.IsEnabled
La classe TraceContext possède une propriété booléenne nommée IsEnabled, qui
vous permet d'appeler les méthodes Write et Warn uniquement lorsque le traçage
est activé. Les exemples de code suivants illustrent comment utiliser l'instruction
Trace.IsEnabled.
[Visual Basic]
If Trace.IsEnabled Then
Trace.Write("Tracing is enabled!")
End If
[Visual C#]
if (Trace.IsEnabled)
{
Trace.Write("Tracing is enabled!");
}
[Visual Basic]
Trace.IsEnabled = False
[Visual C#]
Trace.IsEnabled = false;
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
7-30 Introduction au développement Web avec Microsoft® Visual Studio® 2010
La capture d'écran suivante présente les informations de trace d'une page dans une
application Web :
Utilisez la classe TraceContext pour ajouter des messages à des catégories de trace
spécifiques et obtenir un ensemble d'enregistrements de trace à la fin de
l'exécution de la demande en vue d'un traitement personnalisé.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèm
mes liés aux applications Web
W Microsoft® ASP.NET 7-31
Traçag
ge d'une app
plication We
eb
Points clés
Vous po ouvez activer le trraçage au niveau de la page ou au niveau de l'appliication.
Pour activer le traçage auu niveau de la pagge, vous devez dééfinir l'attribut Trrace de la
directive Page sur la valeeur true pour le formulaire
f Web.
[Visua
al Basic]
<%@ Pa
age Language="V
VB" Trace="true"
" %>
[Visua
al C#]
<%@ Pa
age Language="C
C#" Trace="true"
" %>
Lorsquee vous utilisez le traçage au niveauu de la page, touss les messages de trace
sont ajo
outés à la fin de laa page Web, ce quui vous permet d'afficher
d rapidemment les
messagees de trace lorsqu ue vous affichez la page Web.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
7-32 Introduction au développement Web avec Microsoft® Visual Studio® 2010
<configuration>
...
<system.web>
<trace enabled="true" />
...
</system.web>
</configuration>
Si vous devez afficher les informations de trace lorsque l'application est en cours
d'exécution, utilisez les méthodes de la classe TraceContext.
Lorsque vous activez le traçage au niveau de l'application, vous activez également
le traçage pour toutes les pages de l'application Web. Avec ce type de traçage, vous
disposez également de plus de flexibilité lorsque vous écrivez les instructions de
trace. Par exemple, avec le traçage au niveau de la page, tous les messages de trace
sont ajoutés à la page. Par contre, avec le traçage au niveau de l'application, vous
pouvez écrire les messages de trace dans la page ou la mémoire. La visionneuse de
trace au niveau de l'application trace.axd a accès aux instructions de trace que
vous enregistrez dans la mémoire. Pour afficher la visionneuse de trace au niveau
de l'application, tapez l'URL de votre application et ajoutez-y trace.axd ; par
exemple, http://www.contoso.com/trace.axd.
Lorsqu'une page de votre application Web est demandée, cette page collecte les
informations de trace, puis exécute les instructions de trace qu'elle contient. Vous
pouvez afficher la sortie de trace dans la visionneuse de trace. Cette dernière
répertorie les demandes dans l'ordre dans lequel elles sont traitées, et vous pouvez
sélectionner une demande spécifique à partir de n'importe quelle page
d'application ayant été demandée.
Résultats de trace
Les résultats du traçage au niveau de la page sont ajoutés à la fin de la page .aspx
pour laquelle ils sont activés. Les résultats du traçage contiennent de nombreuses
informations, ainsi que les messages personnalisés que vous avez créés à l'aide des
instructions Trace.Write et Trace.Warn.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèmes liés aux applications Web Microsoft® ASP.NET 7-33
Catégories de trace
Les résultats du traçage contiennent plusieurs catégories d'informations. Le tableau
suivant répertorie toutes les catégories et fournit la description du type
d'informations qu'elles contiennent.
Catégorie Description
Arborescence du Répertorie tous les éléments situés sur la page, ainsi que leur
contrôle taille.
Fournit une représentation HTML de l'arborescence du
contrôle ASP.NET. Affiche l'ID unique de chaque contrôle, le
type d'exécution, le nombre d'octets nécessaires à l'affichage
et le nombre d'octets requis dans ViewState et ControlState.
Les trois colonnes affichant le poids de chaque contrôle
indiquent le nombre d'octets qu'un contrôle donné occupe
dans ViewState ou ControlState. Vous devez connaître le
nombre d'octets utilisés par chacun des contrôles,
particulièrement si vous écrivez vos propres contrôles. Vos
contrôles doivent renvoyer le moins d'octets possible pour
que le poids général de la page reste faible.
État de session Contient des informations sur les valeurs stockées dans l'état
de session, le cas échéant.
État de l'application Contient des informations sur les valeurs stockées dans l'état
d'application, le cas échéant.
(suite)
Catégorie Description
Collection Headers Affiche la liste des paires nom/valeur d'en-tête des messages
de demande et de réponse.
Collection Form Affiche la liste des contrôles, ainsi que leurs valeurs sur le
formulaire publié.
Dans la capture d'écran suivante, les demandes sont affichées dans la visionneuse
de trace :
Atelier pratique
p : Résolution des problèmess liés
aux appllications W
Web Miccrosoft ASSP.NET
Introdu
uction
Dans ceet atelier pratiquee, vous déboguereez une application Web ASP.NET afin de
détecterr les erreurs d'exéécution, en ajoutaant des points d'aarrêt et des espions. Vous
implém
menterez égalemen nt le traçage danss l'application Weeb pour afficher des
d
informaations, telles que l'état de session, l'état d'applicatio
on et les variabless serveur.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèmes liés aux applications Web Microsoft® ASP.NET 7-37
Objectifs
Au terme de cet atelier pratique, vous serez à même d'effectuer les tâches suivantes :
Scéna
ario de l'ateliier pratique
Vous êtes développeur cchez Contoso, Ltd d, une grande enttreprise disposan nt d'une
base de clients mondialee. Votre organisattion gère ses inforrmations clients via v un
site Web b. Pour conserver des information ns utilisateur corrrectes, vous devezz
déboguer l'application W Web de gestion dee la clientèle afin de détecter les errreurs
logiques dans ses fonctio onnalités. Pour cee faire, vous deveez ajouter les insttructions
de sortie, les points d'arrrêt et les espions appropriés. Vouss devez égalemen nt activer
le traçagge en utilisant le fichier web.configg afin d'identifierr les erreurs possiibles
dans le code après le dép ploiement de l'ap
pplication. La verssion de l'applicattion Web
terminéée dans le modulee précédent a été déployée dans un u serveur interm médiaire
où l'exéécution du débogage est impossiblle. Toutefois, il seemble qu'il existee un
problèmme lié aux perform mances lors du ch hargement ou dee l'affichage du
formulaaire Web InsertCu ustomer.aspx. Vo ous ne pouvez paas ajouter des
informaations de trace à cchaque page. Vou us devez par consséquent activer lee traçage
au niveaau de l'application, puis vérifier quue vous pouvez afficher
a les minuttages du
formulaaire Web InsertCu ustomer.aspx.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèmes liés aux applications Web Microsoft® ASP.NET 7-39
Imports System.Diagnostics
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
7-40 Introduction au développement Web avec Microsoft® Visual Studio® 2010
• Cliquez sur le bouton Balise active, puis sur Modifier les éléments.
• Dans la boîte de dialogue Éditeur de collections ListItem, cliquez sur
Ajouter.
• À partir du volet Propriétés ListItem, dans la zone Texte, entrez USA,
puis cliquez sur OK.
• Enregistrez et fermez le fichier du contrôle utilisateur.
• Exécutez l'application Web en mode de débogage.
• Vérifiez la sortie des méthodes Page_Load, Page_Unload et
instantiateCustomerObject en créant un client et en affichant le volet Sortie
des fenêtres de variable du débogueur.
Remarque : par défaut, la valeur de la zone Limite de crédit est définie sur 0.
Remarque : la valeur de la zone Limite de crédit est définie sur 50, ce qui est incorrect.
instantiateCustomerObject();
Remarque : le pas à pas détaillé dans l'instanciation de l'action d'objet Customer peut
prendre du temps.
• Effectuez un pas à pas principal dans chaque ligne de code figurant dans la
fenêtre de code Customer.vb, jusqu'à ce que vous atteigniez la ligne de code
suivante du constructeur qui initialise la propriété CreditLimit.
Me.CreditLimit = creditLimit
Me.customerCreditLimit = value + 50
Me.customerCreditLimit = value
Résultats : au terme de cet exercice, vous aurez activé le débogage pour le projet
Web CustomerManagement, ajouté des instructions de sortie de débogage au
contrôle utilisateur et corrigé un bogue dans les fonctionnalités de l'application Web
CustomerManagement.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
7-46 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Remarque : Faites défiler la fenêtre vers le bas pour voir toutes les sorties d'informations,
notamment l'arborescence du contrôle, l'état de session et d'application, la collection
Querystring et Form, et les variables serveur de la page Web InsertCustomer.aspx.
Vérifiez que vous pouvez voir la section Informations de traçage. Elle apporte des
informations sur la durée du chargement, de l'affichage et du déchargement du
formulaire Web.
Section 2 : Visual C#
Exercice 1 : Débogage d'une application Web
Dans cet exercice, les tâches principales sont les suivantes :
using System.Diagnostics;
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèmes liés aux applications Web Microsoft® ASP.NET 7-49
• Cliquez sur le bouton Balise active, puis sur Modifier les éléments.
• Dans la boîte de dialogue Éditeur de collections ListItem, cliquez sur
Ajouter.
• À partir du volet Propriétés ListItem, dans la zone Texte, entrez USA,
puis cliquez sur OK.
• Enregistrez et fermez le fichier du contrôle utilisateur.
• Exécutez l'application Web en mode de débogage.
• Vérifiez la sortie des méthodes Page_Load, Page_Unload et
instantiateCustomerObject en créant un client et en affichant le volet Sortie
des fenêtres de variable du débogueur.
Remarque : par défaut, la valeur de la zone Limite de crédit est définie sur 0.
Remarque : la valeur de la zone Limite de crédit est définie sur 50, ce qui est incorrect.
instantiateCustomerObject();
Remarque : le pas à pas détaillé dans l'instanciation de l'action d'objet Customer peut
prendre du temps.
• Effectuez un pas à pas principal dans chaque ligne de code figurant dans la
fenêtre de code Customer.cs, jusqu'à ce que vous atteigniez la ligne de code
suivante du constructeur qui initialise la propriété CreditLimit.
this.CreditLimit = creditLimit;
this.customerCreditLimit = value;
Résultats : au terme de cet exercice, vous aurez activé le débogage pour le projet
Web CustomerManagement, ajouté des instructions de sortie de débogage au
contrôle utilisateur et corrigé un bogue dans les fonctionnalités de l'application Web
CustomerManagement.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèmes liés aux applications Web Microsoft® ASP.NET 7-55
Remarque : Faites défiler la fenêtre vers le bas pour voir toutes les sorties d'informations,
notamment l'arborescence du contrôle, l'état de session et d'application, la collection
Querystring et Form, et les variables serveur de la page Web InsertCustomer.aspx.
Vérifiez que vous pouvez voir la section Informations de traçage. Elle apporte des
informations sur la durée du chargement, de l'affichage et du déchargement du
formulaire Web.
Récap
pitulatif de l'atelier pratiq
que
Parcou
urir les question
ns et les répon
nses
1. Quelles sont les étap
pes requises pourr activer le traçagge au niveau de laa page ?
2. Com ns un composant à l'aide
mment activerez--vous explicitemeent le traçage dan
du code ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
7-58 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Récapitu
ulatif du m
module et
e élémen
nts à retenir
Parcou
urir les question
ns et les répon
nses
1. Quelle est la différen
nce entre l'objet System.Diagnost
S tics.Trace et l'objjet
Sysstem.Diagnosticss.Debug ?
2. Quelle est la différen l page et le traçage au
nce entre le traçagge au niveau de la
niveeau de l'application ?
3. Com
mment activez-vo
ous le traçage au niveau
n de l'appliccation ?
4. Quels sont les typess d'erreurs que vo
ous devez gérer lo
ors du développeement de
voss applications ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Résolution des problèmes liés aux applications Web Microsoft® ASP.NET 7-59
Meilleures pratiques
Indiquez quelques-unes des meilleures pratiques s'appliquant au contexte de vos
propres situations professionnelles.
• Les messages écrits dans les écouteurs de trace ne devant pas être inclus dans
une version finale de votre application doivent toujours être écrits à l'aide de
l'objet Debug.
• Le traçage doit toujours être désactivé dans une application Web avant le
déploiement dans un serveur de productio.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans une application Web Microsoft® ASP.NET 4.0 8-1
Module 8
Gestion des données dans une application Web
Microsoft® ASP.NET 4.0
Table des matières :
Leçon 1 : Vue d'ensemble d'ADO.NET 8-3
Leçon 2 : Connexion à une base de données 8-16
Leçon 3 : Gestion des données 8-30
Atelier pratique : Gestion des données dans une application
Web ASP.NET 4.0 8-50
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
8-2 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Vue d'en
nsemble du modu
ule
Leçon 1
Vue d'en
nsemble d
d'ADO.NET
Objecttifs de la leçon
Au term
me de cette leçon, vous serez à mêm
me d'effectuer less tâches suivantess :
• déccrire ADO.NET ;
• déccrire le modèle d'o
objet ADO.NET ;
• déccrire ADO.NET En
ntity Framework.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
8-4 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Présentation d'AD
DO.NET
Points clés
ADO.NE ET fait partie de lla bibliothèque de
d classes de basee du .NET Framew work et
représen nte un ensemble de composants permettant
p d'accééder aux donnéess et de
les mannipuler. Bien qu'A ADO.NET permettte d'accéder aux données contenu ues dans
des souurces de données non relationnellees, son objectif prremier est l'accès et la
gestion des données stocckées dans des syystèmes de base de d données relatiionnels,
tels quee SQL Server 2008.
ADO.N
NET
ADO.NE ment conçu pour les connexions liiées aux données dans un
ET est spécifiquem
environnement déconneccté. C'est pourquo oi ADO.NET se réévèle un bon choiix pour
les applications Web basées sur Internet. ADO.NET
A utilise le format XML poour les
transmissions de donnéees entre la base dee données et votree application Web
b.
ADO.NE de deux couches : une couche décconnectée et une autre
ET est composé d
connecttée.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans une application Web Microsoft® ASP.NET 4.0 8-5
Couche déconnectée
La couche déconnectée consiste en plusieurs classes de stockage des données et
des relations. La classe DataSet est la classe principale représentant un cache de
données en mémoire. La classe DataSet contient une collection d'un ou de
plusieurs objets DataTable composés de lignes et de colonnes de données. Elle
contient également les informations de clé primaire, de clé étrangère, de contrainte
et de relation relatives aux données contenues dans les objets DataTable. Vous
pouvez considérer la classe DataSet comme une représentation de la base de
données en mémoire.
Couche connectée
La couche connectée gère le trafic de données vers et à partir de la source de
données. De plus, elle est propre à la source de données, telle que SQL Server ou
un fichier XML. La couche connectée est également appelée fournisseur de données.
ADO.NET est fourni avec plusieurs fournisseurs de données prêts à l'emploi,
notamment :
• Fournisseur de données .NET Framework SQL Server, pour l'accès aux bases
de données SQL Server 7.0 et versions ultérieures.
• Fournisseur de données .NET Framework OLE DB, pour l'accès à toute source
de données OLE DB pour laquelle vous disposez d'un fournisseur OLE DB.
• Fournisseur de données .NET Framework ODBC, pour l'accès à toute source
de données ODBC pour laquelle vous disposez d'un pilote ODBC.
Plusieurs fournisseurs tiers, tels qu'IBM et Oracle, ont créé des implémentations de
fournisseurs de données .NET Framework. La plupart des sources de données des
principaux fournisseurs facilitent l'accès aux données via ADO.NET.
Modè
èle d'objet A
ADO.NET
Points clés
Le mod dèle d'objet ADO.N NET fournit une infrastructure vo ous permettant d''accéder
aux donnnées de différenntes sources de do onnées. Le modèlle d'objet ADO.N NET se
composse de deux couch hes : la couche déconnectée, générralement constitu uée de la
classe DataSet
D et des claasses associées, ett la couche conneectée, également appelée
le fourn
nisseur de donnéees.
Couche déconnectée
La coucche déconnectée iinclut les classes DataTable, Data
aRow, DataColum mn,
Constraaint, DataRelatioon et DataView. Elle
E ne dépend pass d'une source dee données
et perm
met de gérer les doonnées en mémoiire. Par conséqueent, elle peut être utilisée
avec plu
usieurs sources dee données ou donnnées XML, ou peu
ut servir à gérer less données
locales de
d l'application. VVous pouvez également connecterr la couche décon nnectée à
une souurce de données à l'aide de la coucche connectée.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans une application Web Microsoft® ASP.NET 4.0 8-7
Type Description
Couche connectée
La couche connectée ADO.NET établit le lien entre la source de données et la
couche déconnectée, qui est un objet DataSet et/ou DataTable. Les types de
bases communs figurent dans l'espace de noms System.Data.Common.
La couche connectée inclut par exemple les classes DataAdapter, Connection,
Command et DataReader. Les fournisseurs de données .NET Framework sont
conçus pour la manipulation des données et pour un accès aux données rapide,
avant uniquement et en lecture seule.
• L'objet Connection fournit la connectivité à une source de données.
• L'objet Command permet d'accéder aux commandes de base de données,
utilisées pour renvoyer et modifier les données, exécuter des procédures
stockées, et envoyer ou extraire des informations relatives aux paramètres.
• La classe DataReader fournit un flux de données hautes performances à partir
de la source de données.
• La classe DataAdapter établit la passerelle entre l'objet DataSet et la source de
données. La classe DataAdapter utilise les objets Command pour exécuter
des commandes SQL sur la source de données, afin de charger l'objet DataSet
avec les données et de rapprocher les modifications apportées aux données de
l'objet DataSet dans la source de données.
Le tableau suivant répertorie les types de base communs fournis par la couche
connectée.
Nom du type Description du type
DbCommand Représente une instruction SQL ou une procédure stockée à
exécuter pour une source de données. Ce type est généralement
divisé en quatre objets de commande différents lors de la gestion
des données : un pour la sélection, un deuxième pour l'insertion,
un troisième pour la mise à jour et un quatrième pour la
suppression des données.
Les types répertoriés dans le tableau précédent sont tous des types de base
abstraits qui doivent être hérités. Par conséquent, vous devez utiliser les types
suivants pour les implémentations de source de données spécifiques :
• Avec le fournisseur de données .NET Framework SQL Server, utilisez les
classes SqlDataAdapter, SqlDataReader, SqlCommand et SqlConnection,
figurant toutes dans l'espace de noms System.Data.SqlClient.
• Avec le fournisseur de données .NET Framework OLE DB, utilisez les classes
OleDbDataAdapter, OleDbDataReader, OleDbCommand et OleDbConnection,
figurant toutes dans l'espace de noms System.Data.OleDb.
• Avec le fournisseur de données .NET Framework ODBC, utilisez les classes
OdbcDataAdapter, OdbcDataReader, OdbcCommand et OdbcConnection,
figurant toutes dans l'espace de noms System.Data.Odbc.
• Avec le fournisseur de données .NET Oracle, utilisez les classes OracleDataAdapter,
OracleDataReader, OracleCommand et OracleConnection, figurant toutes
dans l'espace de noms System.Data.OracleClient. Le fournisseur de données
.NET Oracle vous permet de vous connecter à une base de données Oracle
version 8.1.7 ou ultérieure.
Remarque : vous ne pouvez pas mélanger les types dans la couche connectée. Tous les
types utilisés pour la gestion des données avec une source de données unique doivent
provenir du même fournisseur de données .NET.
Vue d'ensemble
d d
d'ADO.NET Entity
E Framew
work
Points clés
Entity Framework
F représsente un ensemb
ble de technologiees dans ADO.NET T qui
prend ene charge le dévelloppement d'app plications logiciellles orientées don
nnées,
et fait partie de la platefo
orme de donnéess Microsoft.
Les arch hitectes et développpeurs d'applicatiions orientées données se démèneent afin
d'atteinddre deux objectifs très différents : ilss doivent modéliser les entités, les relations
r
et la loggique des problèm mes d'entreprise à résoudre, et ils doivent égalementt utiliser
les moteeurs de données p permettant de sto ocker et d'extraire les données. Les données
peuventt s'étendre sur plu usieurs systèmes ded stockage, compo ortant chacun son n propre
protocole. Même les applications utilisant un u seul système de stockage doiven nt trouver
l'équilibbre entre les exigences du système de stockage et l'ex xigence imposantt d'écrire
un codee d'application effificace et facile à géérer.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans une application Web Microsoft® ASP.NET 4.0 8-11
Entity Framework vous permet d'utiliser les données sous forme de propriétés et
d'objets propres au domaine (par exemple, les clients et leur adresse) sans vous
soucier des tables et colonnes de la base de données sous-jacente dans lesquelles les
données sont stockées. Ceci est possible lorsque vous élevez le niveau d'abstraction
applicable lors de l'utilisation des données, et si vous réduisez le code requis pour
créer et maintenir les applications orientées données. Dans la mesure où Entity
Framework est un composant du .NET Framework, les applications d'Entity
Framework peuvent être exécutées sur n'importe quel ordinateur, à condition que
le .NET Framework 4 y soit installé.
Modèles conceptuels
Depuis toujours, le modèle de conception standard pour la modélisation des
données consiste à diviser le modèle de données en trois parties : un modèle
conceptuel, un modèle logique et un modèle physique. Le modèle conceptuel
définit les entités et relations du système modélisé. Le modèle logique d'une base
de données relationnelle normalise les entités et relations dans des tables avec des
contraintes de clé étrangère. Le modèle physique s'intéresse aux fonctionnalités d'un
moteur de données particulier en indiquant les détails de stockage, tels que le
partitionnement et l'indexation.
Le modèle physique est affiné par les administrateurs de base de données afin
d'améliorer les performances, mais les programmeurs écrivant le code de
l'application restent dans le cadre du modèle logique en écrivant des requêtes
SQL et en appelant des procédures stockées. Vous pouvez vous servir des modèles
conceptuels comme d'outils pour capturer et communiquer les besoins d'une
application. En outre, ces modèles conceptuels sont souvent utilisés en tant que
diagrammes inertes étudiés et analysés au début d'un projet, puis abandonnés.
Beaucoup d'équipes de développement sautent l'étape de création d'un modèle
conceptuel et commencent directement par indiquer les tables, les colonnes et les
clés d'une base de données relationnelle.
Entity Framework donne vie aux modèles conceptuels en vous permettant
d'interroger les entités et relations dans le modèle conceptuel, tout en laissant
Entity Framework traduire ces opérations en commandes propres à la source
de données. Cela libère les applications des dépendances codées de manière
irréversible à une source de données particulière. Le modèle conceptuel, le modèle
de stockage et le mappage entre les deux sont exprimés dans une spécification
externe, appelée Entity Data Model (EDM). Vous pouvez modifier le modèle de
stockage et les mappages selon vos besoins, sans devoir apporter de modifications
au modèle conceptuel, aux classes de données ou au code d'application. Les
modèles de stockage étant propres au fournisseur, vous pouvez utiliser un modèle
conceptuel cohérent dans différentes sources de données.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
8-12 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Un EDM est défini par les trois fichiers de modèle et de mappage suivants, portant
les extensions de nom de fichier correspondantes :
• Fichier du langage de définition du schéma conceptuel (.csdl). Définit le
modèle conceptuel.
• Fichier du langage de définition du schéma de stockage (.ssdl). Définit le
modèle de stockage, également appelé modèle logique.
• Fichier du langage de spécification du mappage (.msl). Définit le mappage
entre le modèle de stockage et le modèle conceptuel.
Les outils EDM génèrent des classes de données extensibles basées sur le modèle
conceptuel. Il s'agit de classes partielles que le développeur peut étendre en
ajoutant des membres. Les classes générées pour un modèle conceptuel particulier
dérivent des classes de base qui fournissent les services d'objet pour matérialiser
les entités en tant qu'objets, et pour suivre et enregistrer les modifications. Ces
classes vous permettent d'utiliser les entités et relations en tant qu'objets liés par
des propriétés de navigation.
Contrôle EntityDataSource
Le contrôle EntityDataSource prend en charge les scénarios de liaison de données
basés sur EDM. La spécification EDM représente les données sous forme d'ensembles
d'entités et de relations. Entity Framework utilise EDM dans le mappage
objet-relationnel, ainsi que dans d'autres scénarios tels que les services de données
ADO.NET. Pour les utilisateurs habitués au modèle de conception des contrôles
de liaison de données ASP.NET, la surface de programmation du contrôle
EntityDataSource paraîtra semblable à celle des autres contrôles de source de
données.
Le contrôle EntityDataSource gère les opérations de lecture, de création, de mise
à jour et de suppression effectuées sur une source de données pour le compte de
contrôles liés aux données sur la page. EntityDataSource utilise des grilles
modifiables, des formulaires avec des fonctions de tri et de filtre contrôlées par
l'utilisateur, des listes déroulantes à liaison bidirectionnelle et des pages maîtres/
détails. Le contrôle EntityDataSource peut obtenir les valeurs de paramètre de
requête à partir des contrôles de page, des paramètres de requête ajoutés à l'URI de
la page, des cookies et d'autres objets de paramètre ASP.NET.
Outils EDM
Les outils EDM sont conçus pour vous aider à générer des applications Entity
Framework. Ils vous permettent de créer un modèle conceptuel à partir d'une base
de données existante, puis de le visualiser graphiquement et de le modifier. Vous
pouvez également créer un modèle conceptuel graphiquement pour commencer,
puis générer une base de données prenant en charge votre modèle. Dans les deux
cas, vous pouvez mettre à jour votre modèle automatiquement lorsque la base de
données sous-jacente est modifiée, et générer le code de couche objet de votre
application. La génération de la base de données et du code de couche objet est
personnalisable.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
8-14 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Composant Description
(suite)
Composant Description
Leçon 2
Connexio
on à une base de données
ADO.NE ET vous permet d de connecter les données contenu ues dans une source de
données (une base de do onnées, par exem
mple) aux objets et e contrôles de vo os
formulaaires Web. Vous p pouvez établir unne connexion à un ne source de don nnées à
l'aide dee l'environnemennt de développemment intégré (IDE) de Visual Studio 2010.
Vous po ouvez également utiliser les objetss DataAdapter ett DataReader pou ur établir
une com mmunication de d données entre le client et le serveu
ur. La sélection, l'insertion,
l
la mise à jour et la supprression de donnéées font partie dess tâches courantees que
vous po ouvez exécuter paar programmation n à l'aide d'ADO.NET.
Cette leçon explique com
mment traiter les données en proggrammation à l'aiide
d'ADO.N NET et commentt établir une connnexion afin d'accééder aux donnéess
stockées dans une base d
de données SQL Server.
Objecttifs de la leçon
Au term
me de cette leçon, vous serez à mêm
me d'effectuer less tâches suivantess :
• créeer une connexion
n à une source dee données ;
• actiiver le transport d
de données entree les clients et les serveurs.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans
d une application Webb Microsoft® ASP.NET 4.0 8-17
Création d'une co
onnexion
Points clés
L'IDE de
d Visual Studio 22010 vous permet d'établir une co onnexion à une so
ource
de donnnées en toute sim
mplicité, puis de vérifier
v la connexiion au moment de
d la
concepttion. Vous pouveez également créeer une connexion par programmattion.
Créatio
on d'une conneexion à l'aide de
d l'Explorateurr de serveurs
L'Exploorateur de serveurrs, intégré à l'IDEE de Visual Studio o 2010, vous perm met de
vous connecter aux sourrces de données, de créer des objeets de base de données,
d'explorrer les propriétéss des objets existaants et de prévisu
ualiser les donnéees.
Lorsquee vous explorez le serveur d'une source
s de donnéees, la connexion este
ouverte ; elle le reste tan
nt que la fenêtre a le focus. Cela peeut nuire à la disp
ponibilité,
particullièrement si le serrveur est distant et
e fortement utilisé.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
8-18 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Une fois que vous avez créé une connexion, l'Explorateur de serveurs affiche
la connexion dans Connexions de données. Dans l'Explorateur de serveurs,
développez la connexion, puis le dossier Tables pour afficher les tables dans la
connexion de base de données.
La connexion créée à l'aide de l'Explorateur de serveurs est utile si vous souhaitez
concevoir de nouvelles tables, ou modifier des tables existantes ou des procédures
stockées. La connexion créée permet également de déplacer des objets de table en
les faisant glisser directement vers un formulaire Web ; un contrôle GridView est
alors ajouté au formulaire avec un contrôle de source de données.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans une application Web Microsoft® ASP.NET 4.0 8-19
[Visual Basic]
Imports System.Data.SqlClient
[Visual C#]
using System.Data.SqlClient;
Une fois l'espace de noms importé, vous pouvez créer l'objet de connexion comme
suit.
[Visual Basic]
Dim orderConnection As New SqlConnection()
[Visual C#]
SqlConnection orderConnection = new SqlConnection();
Une fois l'objet de connexion créé, vous devez définir la chaîne de connexion.
Cette dernière dirige l'objet de connexion vers le serveur et la base de données
auxquels se connecter, comme indiqué dans les exemples de code suivants.
[Visual Basic]
orderConnection.ConnectionString =
"Data Source=DatabaseServer;Initial
Catalog=OrderDatabase;Integrated Security=True"
[Visual C#]
orderConnection.ConnectionString =
"Data Source=DatabaseServer;Initial
Catalog=OrderDatabase;Integrated Security=True";
Contactez votre administrateur de base de données pour obtenir ces détails. Si vous
connectez à SQL Server, la sécurité intégrée est souvent utilisée selon les spécifications.
Toutefois, ce n'est pas toujours le cas. C'est pourquoi vous devrez peut-être indiquer
les informations d'identification à l'aide des attributs User ID et Password.
Conseil : si vous avez créé une connexion à une base de données à l'aide de l'Explorateur
de serveurs, vous pouvez copier la chaîne de connexion et l'utiliser directement dans le
code. Ouvrez l'Explorateur de solutions, puis cliquez sur la connexion de données.
Ensuite, appuyez sur la touche F4 pour ouvrir la fenêtre Propriétés, si elle n'est pas déjà
ouverte, puis sélectionnez et copiez le texte de la propriété Chaîne de connexion. Enfin,
collez le texte copié dans votre code.
Une fois l'objet de connexion initialisé et instancié, il doit être ouvert avant toute
utilisation par les classes DataAdapter et/ou DataReader. Pour ce faire, procédez
comme suit.
[Visual Basic]
orderConnection.Open()
[Visual C#]
orderConnection.Open();
Lorsque vous avez terminé d'utiliser votre connexion, vous devez la fermer ou la
supprimer, comme suit.
[Visual Basic]
' Close connection
orderConnection.Close()
' Dispose of connection
orderConnection.Dispose()
[Visual C#]
// Close connection
orderConnection.Close();
// Dispose of connection
orderConnection.Dispose();
Vous devez fermer ou supprimer la connexion, car cela supprimera finalement les
ressources gérées et non gérées. Cependant, vous ne serez pas pénalisé par l'appel
de ces deux méthodes et celles-ci peuvent même rendre votre code plus simple à
lire du point de vue de la maintenance. Il s'agit souvent d'une préférence personnelle
ou d'un choix guidé par les conventions d'encodage à votre entreprise.
Une autre méthode garantissant la suppression d'un objet de connexion est d'inclure
cet objet dans une instruction Using/using, comme dans les exemples suivants.
[Visual Basic]
Using orderConnection As New SqlConnection()
orderConnection.ConnectionString = _
"Data Source=DatabaseServer;Initial
Catalog=OrderDatabase;Integrated Security=True"
orderConnection.Open()
...
orderConnection.Close()
End Using
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
8-22 Introduction au développement Web avec Microsoft® Visual Studio® 2010
[Visual C#]
using (SqlConnection orderConnection = new SqlConnection())
{
orderConnection.ConnectionString =
"Data Source=DatabaseServer;Initial
Catalog=OrderDatabase;Integrated Security=True";
orderConnection.Open();
...
orderConnection.Close();
}
Points clés
Une foiss que vous avez ccréé une connexion à la base de données,
d vous devvez
disposeer d'un objet pourr faciliter le transp
port et la synchroonisation des donnnées
entre le client et le serveu
ur. L'objet DataAAdapter s'avère allors utile. Cependdant, si
vous souhaitez uniquem ment extraire les données
d de la basse de données et ne pas
les mannipuler de quelqu ue manière que cee soit, optez pourr l'objet DataRead der.
DataAd
dapter
L'objet DataAdapter
D utillise l'objet Conneection pour se co
onnecter à une baase
de donn nées, ainsi que less objets de commmande pour émetttre les command des
de gestiion des données.
L'objet DataAdapter
D posssède quatre prop
priétés liées à l'ob
bjet de command
de :
• SeleectCommand. Ém T pour extraire les
met une instructiion SQL SELECT
don
nnées d'une sourcce de données.
• Upd dateCommand. Émet une instrucction SQL UPDA ATE pour mettre à jour
les données dans la source de donnéées chaque fois qu
ue des modificatiions sont
appportées au client.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
8-24 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Parmi ces quatre propriétés, seule SelectCommand doit être définie. Toutefois, si
vous tentez de mettre à jour, d'insérer ou de supprimer des données, et que vous
n'avez pas défini la propriété correspondante, une exception est générée. Chacune
de ces propriétés peut disposer d'instructions SQL ou constituer un appel de
procédures stockées dans la base de données. Les procédures stockées vous
permettent de réduire la quantité de code requise pour exécuter les opérations
SELECT, INSERT, UPDATE et DELETE. Vous pouvez également obtenir une
couche de sécurité supplémentaire, car le code SQL réel permettant d'exécuter
l'action se trouve sur le serveur. L'autorisation d'exécution peut être limitée aux
procédures stockées.
Remarque : les exemples présentés dans le reste de cette rubrique ont été créés avec
l'application de l'exercice d'atelier pratique, afin de vous montrer comment créer l'objet
DataAdapter manuellement pour qu'il s'adapte à une solution concrète générale.
[Visual Basic]
' Declare and instantiate data adapter
Dim ordersDataAdapter As New SqlDataAdapter()
[Visual C#]
// Declare and instantiate data adapter
SqlDataAdapter ordersDataAdapter = new SqlDataAdapter();
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans une application Web Microsoft® ASP.NET 4.0 8-25
[Visual Basic]
' Declare and instantiate command objects
Dim selectCommand As New SqlCommand("SELECT * FROM Orders",
orderConnection)
Dim deleteCommand As New SqlCommand("DELETE FROM Orders WHERE ID=@ID",
orderConnection)
Dim insertCommand As New SqlCommand("INSERT INTO Orders (CustomerID,
InvoiceDate, CreatedDate, CreatedBy) VALUES(@CustomerID, @InvoiceDate,
@CreatedDate, @CreatedBy)", orderConnection)
Dim updateCommand As New SqlCommand("UPDATE Orders SET
CustomerID=@CustomerID, InvoiceDate=@InvoiceDate,
"ModifiedDate=@ModifiedDate, ModifiedBy=@ModifiedBy WHERE ID=@ID",
orderConnection)
[Visual C#]
// Declare and instantiate command objects
SqlCommand selectCommand = new SqlCommand("SELECT * FROM Orders",
orderConnection);
SqlCommand deleteCommand = new SqlCommand("DELETE FROM Orders WHERE
ID=@ID", orderConnection);
SqlCommand insertCommand = new SqlCommand("INSERT INTO Orders
(CustomerID, InvoiceDate, CreatedDate, CreatedBy) VALUES(@CustomerID,
@InvoiceDate, @CreatedDate, @CreatedBy)", orderConnection);
SqlCommand updateCommand = new SqlCommand("UPDATE Orders SET
CustomerID=@CustomerID, InvoiceDate=@InvoiceDate,
"ModifiedDate=@ModifiedDate, ModifiedBy=@ModifiedBy WHERE ID=@ID",
orderConnection);
[Visual Basic]
' Declare and instantiate parameter objects
Dim deleteIDParameter As New SqlParameter("@ID",
SqlDbType.UniqueIdentifier, 0, "ID")
insertCommand.Parameters.Add(insertInvoiceDateParameter)
...
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans une application Web Microsoft® ASP.NET 4.0 8-27
[Visual C#]
// Declare and instantiate parameter objects
SqlParameter deleteIDParameter = new SqlParameter("@ID",
SqlDbType.UniqueIdentifier, 0, "ID");
updateCommand.Parameters.Add(updateIDParameter);
...
insertCommand.Parameters.Add(insertInvoiceDateParameter);
...
[Visual Basic]
[Visual C#]
Pour lire une ligne de l'objet DataReader, vous devez appeler la méthode Read,
qui renvoie une valeur booléenne indiquant si le curseur se situe dans une ligne
valide. Si le curseur ne se trouve pas dans une ligne valide, il indique que l'objet
DataReader ne contient plus de ligne. Par conséquent, si vous souhaitez lire en
boucle les lignes d'un objet DataReader, vous pouvez uniquement appeler la
méthode Read, car l'objet DataReader est une construction avant uniquement.
(Bien que vous puissiez fermer et rouvrir l'objet, c'est une opération lourde en
matière de ressources serveur.) Enfin, veillez à appeler la méthode Close sur l'objet
DataReader pour permettre la réutilisation de l'objet de connexion à d'autres fins.
L'objet DataReader est en fait utilisé dans les coulisses par l'objet DataAdapter
pour extraire les données et le schéma de la source de données lors du remplissage
d'un DataSet ou DataTable.
Pour extraire les données d'une seule table de base de données sans créer les
différents objets de commande manuellement, vous pouvez utiliser la classe
CommandBuilder.
Leçon 3
Gestion des
d donn
nées
Objectifs de la leçon
Au terme de cette leçon, vous serez à même d'effectuer les tâches suivantes :
• extraire des données simples à l'aide de la classe DataReader ;
• extraire des données non simples à l'aide des classes DataSet et DataTable ;
• manipuler des données à l'aide de l'objet DataAdapter ;
• lier des données à des contrôles serveur à l'aide de l'IDE de Visual Studio 2010.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
8-32 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Extracction de don
nnées simple
es
Points clés
Lorsquee vous devez extrraire une valeur unique,
u telle qu'un
n mot de passe ou o le
nombree de lignes d'une base de données, vous pouvez utiiliser la méthode
ExecuteeScalar de la classse SqlCommand d. Si vous souhaittez extraire des données
d
de la baase de données qu ui n'apparaîtront que pour les utillisateurs, la classee
DataReeader représente u un bon choix de conteneur pour les l données extraaites.
SELECT
T * FROM Orders
s;SELECT * FROM Customers
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans une application Web Microsoft® ASP.NET 4.0 8-33
[Visual Basic]
' Declare and instantiate connection
Dim orderConnection As New SqlConnection()
' Initialize connection
orderConnection.ConnectionString = "..."
' Declare and instantiate command object
Dim selectCommand As New SqlCommand("SELECT * FROM Orders",
orderConnection)
[Visual C#]
// Declare and instantiate connection
SqlConnection orderConnection = new SqlConnection();
// Initialize connection
orderConnection.ConnectionString = "...";
// Declare and instantiate command objects
SqlCommand selectCommand = new SqlCommand("SELECT * FROM Orders",
orderConnection);
// Open connection
orderConnection.Open();
// Close datareader
ordersDataReader.Close();
// Close connection
orderConnection.Close();
La propriété HasRows de l'objet DataReader vérifie si des lignes ont été renvoyées.
Si aucune ligne n'a été renvoyée, vous pouvez en informer l'utilisateur ou exécuter
une action appropriée. Si la propriété HasRows a la valeur True, les lignes sont
lues en boucle à l'aide de la méthode Read, qui avance à la ligne suivante en
commençant par la première ligne lorsqu'elle est appelée la première fois. Si la
méthode Read renvoie la valeur False, cela signifie qu'il n'existe plus aucune ligne
et que vous n'avez plus accès aux données contenues dans l'objet DataReader. Si
vous tentez d'y accéder, une exception est générée.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans une application Web Microsoft® ASP.NET 4.0 8-35
Si vous devez extraire une seule valeur, au lieu d'utiliser la méthode ExecuteReader,
vous pouvez tout simplement utiliser la méthode ExecuteScalar. La méthode
suivante renvoie une valeur scalaire unique, telle que la valeur renvoyée par cette
instruction SELECT.
Si un seul client portant le nom « Weber » est trouvé, une entrée unique indiquant
le nom « Weber » est renvoyée. Cependant, si plusieurs clients portant le nom
« Weber » sont trouvés, seule la première entrée détectée est renvoyée. L'ID
renvoyé dépend du mode de tri des lignes dans la table Orders. Si l'instruction
SELECT renvoie plusieurs champs (par exemple, une ligne entière), la méthode
ExecuteScalar renvoie la première colonne de la ligne. La méthode ExecuteScalar
renvoie la valeur du type System.Object. Par conséquent, vous devrez probablement
effectuer une conversion de type sur la valeur de retour avant de pouvoir l'utiliser.
Les exemples de code suivants illustrent la méthode ExecuteScalar.
[Visual Basic]
' Declare and instantiate command object
Dim selectCommand As New SqlCommand("SELECT ID FROM Orders WHERE
CreatedBy='Weber'", orderConnection)
[Visual C#]
// Declare and instantiate connection
SqlConnection orderConnection = new SqlConnection();
// Initialize connection
orderConnection.ConnectionString = "...";
// Declare and instantiate command objects
SqlCommand selectCommand = new SqlCommand("SELECT ID FROM Orders WHERE
CreatedBy='Weber'", orderConnection);
// Open connection
orderConnection.Open();
// Close connection
orderConnection.Close();
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans
d une application Webb Microsoft® ASP.NET 4.0 8-37
Extracction de don
nnées non sim
mples
Points clés
Si vous devez extraire dees données non simples,
s telles que le contenu d'unne
ntière ou d'un sou
table en us-ensemble de lignes d'une table,, les classes DataS
Set
ou DataaTable représentent un excellent choix dans un sccénario déconneccté.
Vous po ouvez appliquer ll'intégrité des don
nnées dans une classe
c DataSet à l'aide
l
des conntraintes. La classe DataSet vous permet
p de stockerr les données locales
(à ajoutter manuellementt) ou d'importer des
d documents XML.
X Elle vous peermet
égalemeent de stocker un ne copie ou un cache de données, ou encore un sou us-
ensemb ble de ceux-ci, danns une source de données sur un serveur différentt.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
8-38 Introduction au développement Web avec Microsoft® Visual Studio® 2010
[Visual Basic]
Dim ordersDataSet As New DataSet("OrdersDataSet")
[Visual C#]
DataSet ordersDataSet = new DataSet("OrdersDataSet");
Remplissage du DataSet
Une fois que vous avez créé un objet DataSet, vous pouvez le remplir à l'aide d'un
objet DataAdapter. Vous pouvez appeler la méthode Fill sur l'objet DataAdapter,
puis indiquer le nom de l'objet DataTable créé pour vous dans le DataSet. Les
exemples de code suivants créent et remplissent la table Orders. Le schéma de la
table Orders dans la base de données est automatiquement copié vers l'objet
Orders DataTable.
[Visual Basic]
ordersDataAdapter.Fill(ordersDataSet, "Orders")
[Visual C#]
ordersDataAdapter.Fill(ordersDataSet, "Orders");
Accès à un DataTable
Après avoir placé des données dans un objet DataSet, vous pouvez accéder à
celles-ci par programmation. Comme l'indiquent les exemples de code suivants,
chaque objet DataSet est composé d'un ou de plusieurs objets DataTable
auxquels vous pouvez faire référence par leur nom ou leur position ordinale.
[Visual Basic]
' Access Orders table by name
ordersDataSet.Tables("Orders")
' Access Orders table by ordinal position
ordersDataSet.Tables(0)
[Visual C#]
// Access Orders table by name
ordersDataSet.Tables["Orders"];
// Access Orders table by ordinal position
ordersDataSet.Tables[0];
Les classes DataRow et DataColumn sont les composants principaux d'une classe
DataTable, dans laquelle les objets DataColumn composent la structure du
DataTable et les objets DataRow contiennent les données réelles. Vous pouvez
utiliser un objet DataRow, ainsi que ses propriétés et méthodes, pour extraire et
évaluer les valeurs que contient un objet DataTable. Le DataRowCollection
représente les objets DataRow réels contenus dans l'objet DataTable et le
DataColumnCollection contient les objets DataColumn définissant le schéma de
l'objet DataTable. La propriété Rows de l'objet DataTable fournit un accès par
programmation au DataRowCollection. La propriété Columns de l'objet
DataTable fournit un accès par programmation au DataColumnCollection.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
8-40 Introduction au développement Web avec Microsoft® Visual Studio® 2010
Les exemples de code suivants extraient les noms de colonne de l'objet DataTable
nommé Orders, contenu dans l'objet ordersDataSet.
[Visual Basic]
For Each col As DataColumn In ordersDataSet.Tables("Orders").Columns
Response.Write(col.ColumnName)
Next
[Visual C#]
foreach (DataColumn col in ordersDataSet.Tables["Orders"].Columns)
{
Response.Write(col.ColumnName);
};
[Visual Basic]
ordersDataSet.Tables("Orders").Rows.Count
ordersDataSet.Tables("Orders").Columns.Count
[Visual C#]
ordersDataSet.Tables["Orders"].Rows.Count;
ordersDataSet.Tables["Orders"].Columns.Count;
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans une application Web Microsoft® ASP.NET 4.0 8-41
En général, n'utilisez pas l'index pour localiser une ligne dans l'objet DataTable,
car cela ne vous garantit pas d'accéder à la bonne ligne. Alors que la colonne est
accessible car elle est dérivée de la source de données, les lignes peuvent être triées
de différentes façons ou marquées comme supprimées ; il est donc difficile de
savoir exactement à quelle ligne accéder. Vous pouvez lire les lignes en boucle et,
lorsque vous trouvez la bonne ligne, extraire les valeurs des différentes colonnes.
Vous pouvez également utiliser la méthode Find de l'objet DataRowCollection,
exposé par la propriété Rows, pour localiser une ou plusieurs lignes à l'aide des
clés primaires, comme indiqué ci-dessous.
[Visual Basic]
' Apply the full schema from the data source
ordersDataAdapter.FillSchema(ordersDataSet, SchemaType.Source,
"Orders")
' Get the data row
Dim ordersDataRow As DataRow =
ordersDataSet.Tables("Orders").Rows.Find("a05c7f53-9c4e-de11-aa78-
0003ffa70544")
[Visual C#]
// Apply the full schema from the data source
ordersDataAdapter.FillSchema(ordersDataSet, SchemaType.Source,
"Orders");
// Get the data row
DataRow ordersDataRow =
ordersDataSet.Tables["Orders"].Rows.Find("a05c7f53-9c4e-de11-aa78-
0003ffa70544");
Manip
pulation dess données
Points clés
Si vous devez manipulerr les données conntenues dans votrre base de données,
que ce soit
s localement ou directement su ur le serveur, vouss pouvez utiliser l'objet
DataAddapter. Vous pouvvez également acccéder aux comm mandes de la base de
données et manipuler lees données à l'aide de l'objet Comm mand.
Manipu
ulation des don
nnées à l'aide d'un
d objet Data
aAdapter
Les exem
mples de code su
uivants illustrent la procédure d'in
nsertion locale d'u
une
nouvelle ligne de données.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans une application Web Microsoft® ASP.NET 4.0 8-43
[Visual Basic]
' Create new row locally
Dim newOrderDataRow As DataRow =
ordersDataSet.Tables("Orders").NewRow()
newOrderDataRow("ID") = Guid.NewGuid()
newOrderDataRow("CustomerID") = currentCustomer.ID
newOrderDataRow("InvoiceDate") = DateTime.Now
newOrderDataRow("CreatedDate") = DateTime.Now
newOrderDataRow("CreatedBy") = currentUser.Name
[Visual C#]
// Create new row locally
DataRow newOrderDataRow = ordersDataSet.Tables["Orders"].NewRow();
newOrderDataRow["ID"] = Guid.NewGuid();
newOrderDataRow["CustomerID"] = currentCustomer.ID;
newOrderDataRow["InvoiceDate"] = DateTime.Now;
newOrderDataRow["CreatedDate"] = DateTime.Now;
newOrderDataRow["CreatedBy"] = currentUser.Name;
Vous pouvez modifier les données existantes localement, comme l'indiquent les
exemples de code suivants.
[Visual Basic]
' Find row
Dim orderDataRow As DataRow = _
ordersDataSet.Tables("Orders").Rows.Find("a05c7f53-9c4e-de11-aa78-
0003ffa70544")
[Visual C#]
// Find row
DataRow orderDataRow =
ordersDataSet.Tables["Orders"].Rows.Find("a05c7f53-9c4e-de11-aa78-
0003ffa70544");
Vous pouvez supprimer les données existantes localement, comme l'indiquent les
exemples de code suivants.
[Visual Basic]
' Find row
Dim orderDataRow As DataRow = _
ordersDataSet.Tables("Orders").Rows.Find("20389eb1-f24f-de11-aa78-
0003ffa70544")
[Visual C#]
// Find row
DataRow orderDataRow =
ordersDataSet.Tables["Orders"].Rows.Find("20389eb1-f24f-de11-aa78-
0003ffa70544");
Remarque : Les exemples de code dans cette rubrique supposent que vous avez
configuré les objets Command pour les propriétés InsertCommand, UpdateCommand
et DeleteCommand de l'objet DataAdapter.
Après avoir manipulé les données localement, vous devrez peut-être les envoyer au
serveur. Le code suivant illustre cette opération.
[Visual Basic]
' Update data source
ordersDataAdapter.Update(ordersDataSet, "Orders")
[Visual C#]
// Update data source
ordersDataAdapter.Update(ordersDataSet, "Orders");
Points clés
Pour géérer les données aavec efficacité, Vissual Studio 2010 vous permet de créer
une connnexion de base d de données admiinistrativement, ainsi
a qu'un contrôôle
serveur GridView sur un n formulaire Web b. Vous pouvez ennsuite ajouter un
n objet
SqlDataaSource au formu ulaire Web et lierr le contrôle Grid
dView à la base de
données en toute simplicité.
Afficha
age des donnéees sur un formu
ulaire Web
Une foiss que vous avez ccréé une connexion à une base dee données, l'Explo orateur
de serveeurs vous permett d'ajouter des doonnées directemeent à un formulairre Web.
Dans l'EExplorateur de seerveurs, si vous déplacez une tablee en la faisant glissser vers
l'éditeurr de texte en mod
de Création, Visuual Studio 2010 crrée des contrôless
GridVieew et SqlDataSou urce par défaut :
• Conntrôle GridView.. Affiche les valeu
urs d'une source de d données dans une
tablle où chaque colo
onne représente un u champ et chaq que ligne représeente
un enregistrement. UUn utilisateur peu ut, s'il le souhaitee, sélectionner, trier et
modifier les élémentts affichés dans lee contrôle.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans une application Web Microsoft® ASP.NET 4.0 8-47
<configuration>
...
<appSettings/>
<connectionStrings>
<add name="OrderConnectionString1" connectionString="Data
Source=DatabaseServer;Initial Catalog=OrderDatabase;Integrated
Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
...
</configuration>
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
8-48 Introduction au développement Web avec Microsoft® Visual Studio® 2010
À ce stade, vous pouvez afficher le formulaire Web dans un navigateur pour faire
apparaître les données de la source de données.
Le contrôle GridView inclut les propriétés principales suivantes, que vous pouvez
également définir dans la fenêtre Propriétés :
• AllowPaging. Active la pagination dans le contrôle.
• AllowSorting. Active le tri dans le contrôle.
• Columns. Affiche l'ensemble de colonnes qui doit apparaître dans le contrôle.
• DataSourceID. Affiche l'ID de contrôle d'une source de données.
• PageSize. Nombre de lignes d'une source de données à afficher par page.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans une application Web Microsoft® ASP.NET 4.0 8-49
Vous pouvez définir les propriétés dans la fenêtre Propriétés et en mode Création.
Le contrôle SqlDataSource vous permet d'établir une connexion à la base de
données avec très peu de code, voire aucun. Le contrôle SqlDataSource est
également le contrôle par défaut lorsque vous déplacez une table en la faisant
glisser de l'Explorateur de serveurs vers un formulaire Web. Toutefois, vous
pouvez également utiliser d'autres contrôles serveurs, tels que LinqDataSource.
Le contrôle LinqDataSource expose LINQ aux développeurs Web à travers
l'architecture du contrôle de source de données ASP.NET. LINQ fournit un
modèle de programmation unifié pour la requête et la mise à jour de données
à partir de différents types de sources de données. En outre, il étend les
fonctionnalités de données directement dans les langages de programmation
du .NET Framework, tels que Visual Basic et Visual C#. LINQ simplifie
l'interaction entre la programmation orientée objet et les données relationnelles
en appliquant les principes de la programmation orientée objet aux données
relationnelles.
Atelier pratique
p : Gestion des donn
nées danss
une appllication W
Web ASP..NET 4.0
Introdu
uction
Dans ceet atelier pratiquee, vous connecterez l'application Web
W ASP.NET à une u
base de données SQL Seerver à l'aide du contrôle
c serveur, puis
p lierez le conntrôle
utilisateeur contenu danss l'application à une source de donnnées. De plus, vo
ous
modifieerez la base de doonnées source et vérifierez
v les mod
difications apporttées.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans une application Web Microsoft® ASP.NET 4.0 8-51
Objectifs
Au terme de cet atelier pratique, vous serez à même d'effectuer les tâches suivantes :
• établir une connexion à une base de données SQL Server à l'aide du contrôle
SqlDataSource ;
• lier un contrôle utilisateur à une source de données ;
• modifier la base de données source et vérifier les modifications.
Scéna
ario de l'ateliier pratique
Vous êtes développeur cchez Contoso, Ltd d, une grande enttreprise disposan nt d'une
base de clients mondialee. Votre organisattion gère ses inforrmations clients viav un
site Web b. Vous êtes resp
ponsable de la gesstion des informaations utilisateur dans
votre orrganisation. Pour mener à bien cettte tâche, vous deevez ajouter des
fonctionnnalités pour quee les tâches d'accèès aux données simples
s puissent extraire
e
les donnnées rapidement sans utiliser trop p de code. Pour minimiser
m les risq
ques de
créer unn code susceptiblle d'engendrer dees erreurs lorsquee vous accédez au ux
données de la base de do onnées, vous devvez ajouter un con ntrôle de source de
données au contrôle utillisateur et le conffigurer. Par ailleurrs, vous devez ajoouter et
lier un contrôle
c serveur aau contrôle utilissateur pour l'affich
hage de donnéess
spécifiq
ques de la base dee données.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans une application Web Microsoft® ASP.NET 4.0 8-53
Remarque : assurez-vous que les lignes renvoyées incluent les valeurs des colonnes ID et
Name pour les différents pays.
<asp:ListItem>USA</asp:ListItem>
DataSourceID="CountriesSqlDataSource"
DataValueField="ID"
DataTextField="Name"
ConfigurationManager.ConnectionStrings("CustomerManagementConnecti
onString").ConnectionString
customerManagementDataAdapter.FillSchema(customerManagementDataSet,
SchemaType.Source, "Customers")
customerManagementDataAdapter.MissingSchemaAction =
MissingSchemaAction.AddWithKey
customerManagementDataAdapter.MissingMappingAction =
MissingMappingAction.Passthrough
' Populate Customers DataTable
customerManagementDataAdapter.Fill(customerManagementDataSet,
"Customers")
customerManagementDataSet.Tables("Customers").Rows.Add(newCustomer
DataRow)
• City : Manchester
• Country : Royaume-Uni
• Phone : 0161-123 555
• Email Address : kim@litwareinc.com
• Web Address : http://www.litwareinc.com
• Credit Limit : 50 000
• News Subscriber : Oui
• Vérifiez que le nouveau client a été ajouté dans la source de données à l'aide
du nouveau formulaire Web Customers.
• Fermez Internet Explorer.
Section 2 : Visual C#
Exercice 1 : Connexion à une source de données
Dans cet exercice, les tâches principales sont les suivantes :
1. Ouvrir un projet Web ASP.NET existant.
2. Ajouter une base de données SQL Server 2008 Express.
3. Ajouter un contrôle de source de données au contrôle utilisateur.
4. Configurer un contrôle de source de données.
Remarque : assurez-vous que les lignes renvoyées incluent les valeurs des colonnes ID et
Name pour les différents pays.
<asp:ListItem>USA</asp:ListItem>
DataSourceID="CountriesSqlDataSource"
DataValueField="ID"
DataTextField="Name"
ConfigurationManager.ConnectionStrings["CustomerManagementConnecti
onString"].ConnectionString;
// Open connection
customerManagementConnection.Open();
// Declare and instantiate data adapter
SqlDataAdapter customerManagementDataAdapter = new
SqlDataAdapter();
insertCommand.Parameters.Add(insertWebAddressParameter);
insertCommand.Parameters.Add(insertCreditLimitParameter);
insertCommand.Parameters.Add(insertNewsSubscriberParameter);
insertCommand.Parameters.Add(insertCreatedDateParameter);
insertCommand.Parameters.Add(insertCreatedByParameter);
customerManagementDataAdapter.FillSchema(customerManagementDataSet,
SchemaType.Source, "Customers");
customerManagementDataAdapter.MissingSchemaAction =
MissingSchemaAction.AddWithKey;
customerManagementDataAdapter.MissingMappingAction =
MissingMappingAction.Passthrough;
// Populate Customers DataTable
customerManagementDataAdapter.Fill(customerManagementDataSet,
"Customers");
customerManagementDataSet.Tables["Customers"].Rows.Add(newCustomer
DataRow);
Remarque : vous trouverez les corrigés des exercices sur le CD-ROM d'accompagnement
du cours.
Récap
pitulatif de l'atelier pratiq
que
Parcou
urir les question
ns et les répon
nses
1. Com
mment activer la pagination d'un contrôle GridVieew ?
2. Com
mment se conneccter à une base dee données SQL Server
S ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
8-76 Introductionn au développement Webb avec Microsoft® Visuall Studio® 2010
Récapitu
ulatif du m
module et
e élémen
nts à retenir
Parcou
urir les question
ns et les répon
nses
1. Com
mment créer une connexion à unee base de donnéess dans Visual Studio 2010 ?
2. Quel objet permet d de faciliter le transsport de la source de données à un
u objet
DattaSet, et inversem
ment ?
3. Quelle est la princip
pale différence en
ntre un DataSet ett un objet DataR
Reader ?
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT
Gestion des données dans une application Web Microsoft® ASP.NET 4.0 8-77
Meilleures pratiques
Indiquez quelques-unes des meilleures pratiques s'appliquant au contexte de vos
propres situations professionnelles.
• Les objets de connexion doivent toujours être supprimés de manière explicite.
• Utilisez un objet DataTable lorsque vous devez uniquement utiliser le
contenu d'une seule entité de base de données localement, et non un objet
DataSet. Cela permet de sauvegarder les ressources.
• Autant que possible, placez la chaîne de connexion dans le fichier web.config,
ce qui la rend accessible à l'ensemble de l'application Web et permet à un
administrateur de modifier le fichier simplement, sans devoir recompiler le code.
UTILISATION RÉSERVÉE À L'INSTRUCTEUR MCT UNIQUEMENT