Anda di halaman 1dari 47

R APPORT DE STAGE DE M ASTER M2 INFORMATIQUE

DPARTEMENT DE MATHMATIQUES ET INFORMATIQUE


UNIVERSIT DE LA RUNION

A NNE U NIVERSITAIRE : 2013-2014

Dveloppement dune application


ASP.NET avec Base de donnes SQL
Server

Encadrants :
M. Alain DORSEUIL
M. Hugues ROUGEMONT

Auteur :
Emmanuel SAMBASSOUREDY
31001648

JUIN

2014

Remerciements
Je tiens remercier dans un premier temps mes encadrants, M. Alain DORSEUIL et
M. Hugues ROUGEMONT, de mavoir accueilli dans la socit et pour mavoir permis
de raliser ce stage, ainsi que pour leurs conseils sur les objectifs atteindre.
Je tiens exprimer ma gratitude au stagiaire de lcole SUPINFO Anthony PICARD,
au dveloppeur Esteban SARO qui ont su maintenir une ambiance propice au travail et
lchange de connaissances.
Je remercie galement les autres membres de run [in] box, M. Dany BIGEY , M.
Yoann CAVALLIN, M. Vincent HERLIN et Mme Aurlie ZAGARIA, pour leur accueil.
Jexprime ma profonde gratitude toute lquipe enseignante de lUniversit de la
Runion qui mont permis darriver ce niveau dtude.

Rsum
Dans le cadre dune refonte dun outil informatique de gestion de la scurit et de
la qualit, une socit de stockage et distribution de produits hydrocarbures dangereux
a missionn la socit run [in] box pour le dveloppement dune application de type
Web autour des technologies Microsoft ASP.NET avec une gestion des donnes sous le
moteur SGBD SQL Server.
Le prsent rapport a pour but de prsenter le contexte mtier du dveloppement en passant par un rapide portrait de la socit run [in] box, un rcapitulatif des technologies
existantes permettant la ralisation avance dapplication Web hautement interactive,
pour finir par les aspects techniques mise en uvre pour la conception des modules de
traitement et de linterface utilisateur.
Mots cls : Application web, Framework .NET, ASP.NET WebForms, ViewState, SQL Server, M-Files, jQueryUI

Abstract
In the context of an overhaul of a software tool for managing the safety and quality,
a storage and distribution of hazardous products company has commissioned the company run [in] box for the development of a web-based application around the Microsoft
ASP.NET technology using SQL Server DBMS engine as data management .
This report aims to present the context of software development through a quick picture
of the company run [in] box, then by a summary of existing technologies for highly interactive Web application implementation and finally the technical implementation for
the design of the processing modules and the user interface.
Keywords : Web-based application, .NET Framework, ASP.NET WebForms, ViewState,
SQL Server, M-Files, jQueryUI

Table des matires


1

Introduction

Lentreprise daccueil
2.1 run [in] box . . . . .
2.1.1 Ses activits .
2.1.2 Ses objectifs
2.2 Lquipe . . . . . . .

.
.
.
.

7
7
7
7
9

.
.
.
.
.
.
.

10
11
11
12
13
13
14
16

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

18
18
18
18
19
20
21
22
22
22
23
23
24
24
25
25
26
26
27
28
28

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

La mission
3.1 Cahier des spcifications . . . . . . . . . . .
3.2 Contraintes . . . . . . . . . . . . . . . . . .
3.3 Objectifs . . . . . . . . . . . . . . . . . . . .
3.4 Gestion de projet . . . . . . . . . . . . . . .
3.4.1 Processus de dveloppement du projet
3.4.2 Gestion des lments de recettes . . .
3.4.3 Workflow . . . . . . . . . . . . . . .

.
.
.
.

.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.

Approfondissements
4.1 Contexte technologique . . . . . . . . . . . . . . . . . . . . . .
4.1.1 Dfinition dune application web . . . . . . . . . . . . .
4.1.2 Langages et frameworks . . . . . . . . . . . . . . . . .
4.1.2.1 PHP . . . . . . . . . . . . . . . . . . . . . .
4.1.2.2 Java . . . . . . . . . . . . . . . . . . . . . .
4.1.2.3 ASP.NET . . . . . . . . . . . . . . . . . . .
4.1.2.4 Ruby . . . . . . . . . . . . . . . . . . . . . .
4.1.2.5 Python . . . . . . . . . . . . . . . . . . . . .
4.1.3 Langage de programmation slectionn . . . . . . . . .
4.2 Outils et technologies utiliss . . . . . . . . . . . . . . . . . . .
4.2.1 Environnement de dveloppement . . . . . . . . . . . .
4.2.2 Systme de gestion de base de donnes . . . . . . . . .
4.2.3 Suivi des lments de recette . . . . . . . . . . . . . . .
4.3 Une application ASP.NET WebForms . . . . . . . . . . . . . .
4.3.1 Framework .NET . . . . . . . . . . . . . . . . . . . . .
4.3.2 Serveur IIS . . . . . . . . . . . . . . . . . . . . . . . .
4.3.3 Architecture dune application ASP.NET . . . . . . . .
4.3.3.1 Cycle de vie dune page ASP.NET WebForms
4.3.3.2 Gestion des vnements . . . . . . . . . . . .
4.3.3.3 le ViewState . . . . . . . . . . . . . . . . . .

.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

4.4

4.5

Mthodologie de production . . . . . . . . . . . . . . . . .
4.4.1 Ordre de dveloppement des crans de lapplication
4.4.2 Mthode de dveloppement pour une page ASP.NET
4.4.3 Traitement des indicateurs . . . . . . . . . . . . . .
4.4.4 Dploiement des itrations . . . . . . . . . . . . . .
Difficults rencontres . . . . . . . . . . . . . . . . . . . .
4.5.1 Problme dexcution de script ct serveur . . . . .
4.5.2 Problme de publication avec des boutons ASP.NET
fentre jQueryUI . . . . . . . . . . . . . . . . . . .
4.5.3 Problme de tri . . . . . . . . . . . . . . . . . . . .

. . .
. . .
. . .
. . .
. . .
. . .
. . .
dans
. . .
. . .

. . .
. . .
. . .
. . .
. . .
. . .
. . .
une
. . .
. . .

29
29
31
33
34
34
34
36
37

Conclusion et Perspectives

40

Bibliographie
6.1 Rfrences bibliographiques . . . . . . . . . . . . . . . . . . . . . . .
6.2 Webographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41
41
41

A Annexes
A.1 Techniques de gestion dtat fournies par HTTP . . . . . . . . .
A.1.1 Les cookies . . . . . . . . . . . . . . . . . . . . . . . .
A.1.2 Les champs cachs . . . . . . . . . . . . . . . . . . . .
A.1.3 Paramtres dURL . . . . . . . . . . . . . . . . . . . .
A.2 Liste des contrles WebForms les plus utiliss dans lapplication
A.3 Infrastructure dtaille du datacenter de run [in] box . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

42
42
42
43
44
45
46

Table des figures


1
2
3
4
5
6
7
8
9
10
11
12

Infrastructure du datacenter de lentreprise . . . . . . . . . . . . . . .


Organigramme de run [in] box . . . . . . . . . . . . . . . . . . . . .
Plan de lapplication et de ses fonctionnalits . . . . . . . . . . . . .
Processus mis en uvre pour le dveloppement de lapplication Web .
Aperu de lcran des lments de recettes du logiciel M-Files . . . .
Aperu du cheminement du changement dtat dun lment de recette
Schma de larchitecture du framework .NET . . . . . . . . . . . . .
Cycle de vie dune page ASP.NET WebForms . . . . . . . . . . . . .
Dpendance des fonctionnalits de lapplication . . . . . . . . . . . .
Cheminement du dveloppement dune page ASP.NET . . . . . . . .
Ecran type de lapplication web . . . . . . . . . . . . . . . . . . . .
Aperu de lcran des donnes auxiliaires . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.

8
9
13
14
15
16
26
27
30
31
32
38

1 Introduction
Ce rapport de stage est crit par Emmanuel SAMBASSOUREDY dans le cadre du
stage de fin dtude du master informatique de lUniversit de la Runion. Ce stage a
t encadr par :
M. Alain DORSEUIL, Directeur de la socit run [in] box.
M. Hugues ROUGEMONT, Directeur technique de la socit run [in] box.
Les technologies de linformation et de la communication font partie intgrante de
notre quotidien. En effet, le monde est de plus en plus connect, que ce soit par les
ordinateurs de bureau, ordinateurs portables ou encore des smartphones ou tablettes.
Lavnement de ces dispositifs qui ont la particularit dtre simples dutilisation et pratiques transporter, ont favoris lvolution du dveloppement des applications informatiques vers les technologies orientes Web. De plus, celles-ci trouvent galement une
large application dans le monde de lentreprise o il faut pouvoir dvelopper, dployer
et maintenir rapidement des outils informatiques sur un nombre important de postes
utilisateurs sur diffrentes plateformes. Ainsi, beaucoup dentreprises se tournent vers
ce genre dapplication et beaucoup dditeurs mettent au point diffrents frameworks
aidant la conception rapide et efficace doutils mtiers.
Ce stage a t lobjet de la refonte dune application vieillissante qui nest plus maintenue, vers des technologies modernes et orientes Web. Cette demande a t mise par
une entreprise qui assure la gestion et le stockage de matires dangereuses lle de la
Runion. Lobjectif de cette application est damliorer la ractivit des salaris de lentreprise face aux dangers qui peuvent intervenir dans leurs quotidien. En effet, celui-ci
est destin apporter des solutions en amont des problmes pour prserver les risques
daccident ainsi que leurs consquences. Ma mission principale durant ces six mois a
t de raliser cette refonte en application web.
Dans un premier temps, je vais dcrire ltablissement qui ma accueilli, ses activits
ainsi que ces objectifs, puis dans un second temps, je prsenterai en dtail la mission qui
ma t confie par lentreprise, o je montrerai les diffrents objectifs fixs, ainsi que
la mthodologie applique pour le dveloppement du projet. Je continuerai ensuite par
les diffrents approfondissements effectus, notamment un aperu de la mthodologie
applique pour la ralisation de lapplication, mais aussi les difficults rencontres. Pour
conclure, je dresserai un bilan de ce qui a t ralis et prsenterai les perspectives
davenir du projet.

2 Lentreprise daccueil
2.1

run [in] box

run [in] box, Socit de Services en Ingnierie Informatique cre en 2003, est spcialise dans la gestion de flux documentaires scuriss, lhbergement, linfogrance
et lintgration de solutions dcisionnelles et collaboratives. Initialement cre pour rpondre une stratgie de mutualisation informatique dans le secteur de la Sant, la SS2I
run [in] box adresse aujourdhui lensemble des secteurs dactivits de lle.

2.1.1

Ses activits

La socit propose des solutions dhbergement sur mesure pour divers secteurs
dactivits tels que :
Les professionnels de sant
La grande distribution et commerces divers
Les banques, les assurances et le juridique
Les collectivits et les grands comptes

2.1.2

Ses objectifs

Base la Runion, lentreprise travaille avec diffrents partenaires logiciels europens. De plus, elle sest engage dans un processus continu damlioration de la qualit
avec comme objectif final la satisfaction du client.
Elle sengage donc assurer :
La qualit et la scurit
Lentreprise est dans une dmarche de processus Qualit selon la norme ISO 9001 1 .
La confidentialit
run [in] box est ce jour la seule SS2I runionnaise avoir obtenu un agrment du
Ministre des Affaires Sociales et de la Sant pour lhbergement de donnes de sant
caractre personnel. Cette dmarche dagrment a notamment permis de proposer
dautres secteurs dactivit que la Sant des conditions de confidentialit bien au-del
des standards du march de lhbergement classique.
1. ISO 9001 : La norme ISO 9001 dfinit une srie dexigences concernant la mise en place dun
systme de management de la qualit dans un organisme.

Une haute-disponibilit des donnes


Le datacenter de run [in] box est constitu de deux sites distants en mode actif-actif et
relis par fibre optique. Diffrents niveaux de SLA peuvent tre proposs en fonction
des ncessits des applications et de la typologie de clients.
run [in] box propose sept niveaux dinfogrance, le niveau [in] 7 correspondant par
exemple lexploitation dapplications en mode SaaS 2 . Le niveau [in] 0 des services
dinfogrance de run [in] box consiste la mise disposition des clients dune infrastructure offrant :
De lnergie, via des rseaux lectriques spars, onduls et secourus par deux
groupes lectrognes
Des units de climatisation redondantes
Des dispositifs de scurit incendie
Un accs scuris : contrle daccs avec badge sans contact et systme didentification biomtrique, scurit anti-intrusion avec supervision par vido surveillance
Des accs rseau
Une linfrastructure dhbergement informatique
La figure no 1 illustre linfrastructure du datacenter de lentreprise (une version dtaille de ce schma est disponible en annexe la page no 46).

F IGURE 1 Infrastructure du datacenter de lentreprise

2. Software as a Service (SaaS) : Il sagit dun modle dexploitation des logiciels, o ceux-ci sont
installs sur des serveurs distants plutt que sur la machine de lutilisateur.

Au-del de lhbergement & infogrance, run [in] box propose diffrentes solutions
axes sur :
Linformatique dcisionnelle 3
Lautomatisation des flux documentaires
La gestion et le suivi de projets en mode collaboratif
run [in] box propose galement une solution de coffre-fort lectronique valeur probante qui peut tre mise en uvre dans le cadre des projets dcisionnels et collaboratifs.

2.2

Lquipe

Lquipe compte actuellement sept personnes organise selon trois ple essentiels :
commercial, dveloppement/infogrance et datacenter (illustrs par la figure no 2). Lentreprise rpond aux problmatiques des client selon trois axes :
La rponse aux problmatiques mtier via des solutions dcisionnelles,
La rponse aux problmatiques de gestion de projets et de travail collaboratif
des quipes,
La rponse aux problmatiques de valorisation du patrimoine documentaire de
lentreprise (GED, valeur probante, etc.).

F IGURE 2 Organigramme de run [in] box


Durant ce stage jai intgr le ple dveloppement/infogrance.

3. Informatique dcisionnelle : Il sagit de linformatique lusage des dcideurs et des dirigeants des
entreprises. Elle dsigne les moyens, les outils et les mthodes qui permettent de collecter, consolider,
modliser et restituer les donnes, matrielles ou immatrielles, dune entreprise en vue doffrir une aide
la dcision et de permettre un dcideur davoir une vue densemble de lactivit traite.

3 La mission
Ce stage sinscrit dans un projet de refonte dun logiciel de type client/serveur vers
une application web accessible en intranet. Cette refonte a t formule par une entreprise de gestion et de stockage de matires dangereuses. Elle permettra aux salaris
de cette entreprise damliorer leur rendement tout en garantissant un niveau de scurit permanent. En effet, la nature des produits quelle stocke et quelle manipule la
conduite faire de la scurit une priorit. Elle dploie donc beaucoup defforts pour
maintenir son niveau de comptence et sensibiliser ses effectifs pour que tout se droule
dans les meilleures conditions. Ainsi, il a t mis en place un processus de remonte
et danalyse des vnements indsirables pour se prmunir des consquences de situations dangereuses qui pourraient provoquer un accident. Ce processus a pour objectif
dapporter des solutions en amont des problmes pour viter ou mieux matriser ces
situations. Un processus de suivi dindicateurs de scurit tels que le nombre de jours
sans accident, ou le nombre de remonte dvnement par exemple a galement t mis
en place.
Le client dispose dun logiciel de gestion des indicateurs de performance dvelopp
sur mesure qui permet :
La gestion et la valorisation dune base dindicateurs relatifs la scurit.
La gestion des rapports daccident et le suivi du processus de recommandations
qui en dcoulent.
La gestion des rapports daudit et leur questionnaire.
Cette solution fonctionne en mode client/serveur et repose sur les technologies suivantes :
SGBD-R Oracle 8.1 pour la base de donnes.
Visual Basic 6.0 pour les interfaces ralises.
Business Objects 5.1.2 pour la partie informatique dcisionnelle.
Un complment Web ce logiciel a t ensuite ralis et intgr au rseau intranet
de lentreprise. Celui-ci permet le suivi des performances ainsi que la saisie des recommandations propres lentreprise cliente.
Bien que la solution naie pas volu depuis et nest pas couverte par un contrat de maintenance, elle reste tout de mme utilise par trois utilisateurs principaux et par environ
40 oprateurs en intranet.

10

Un cahier des spcifications techniques et fonctionnelles a t fourni la socit


run [in] box expliquant en dtail lexpression des besoins de lentreprise concernant
cette nouvelle application.
Jai t charg de mener bien laspect dveloppement sur le projet au sein de lentreprise run [in] box.

3.1

Cahier des spcifications

Pour raliser ce projet, un cahier des spcifications techniques et fonctionnelles a t


fourni par le client. Ce document constitue une synthse de laudit technique et dcrit
toutes les prestations attendues dans le cadre du projet de refonte de lapplication. Il
prsente les besoins fonctionnels ainsi que lensemble des rgles techniques respecter
lors de la ralisation.
Celui-ci contient :
Les contraintes fixes par le client
La nouvelle architecture de donnes
Les maquettes des futurs crans du logiciel transactionnel accompagnes de
leurs rgles de gestion
Une reprsentation schmatique des calculs des indicateurs de performance
Les lments initiaux pour la mise en place de loutil de Business Intelligence
Un plan de migration
Les prestations attendues du soumissionnaire

3.2

Contraintes

Le client a list dans le cahier des spcifications ses attentes pour la nouvelle solution :
Un seul logiciel transactionnel en mode Web : ralisation de la nouvelle solution
avec les outils de dernire gnration :
Interfaces raliser en mode Web regroupant tous les crans de la solution
existante ( client / serveur et Intranet ) dans un seul noyau .
Usage de loutil de SGBD-R Microsoft SQL Server
Usage dun outil de Business Intelligence de dernire gnration
Compatibilit avec les systmes dexploitation Windows Server 2008 R2,
Windows Server 2012 et Windows Server 2012 R2
Dveloppement des interfaces graphiques en mode Web laide un langage de programmation diffrent du langage JAVA
Compatibilit avec les navigateurs standards du march (Internet Explorer 8
10, Google Chrome, Firefox,. . . )

11

Des crans rpondants aux besoins actuels, dynamiques et volutifs : les crans
seront toujours axs sur les concepts mtiers , auxquels sajouteront de nouvelles fonctionnalits et ouverts aux volutions futures. Les nouveaux crans
seront plus conviviaux, intuitifs et faciles dutilisation.
Une maintenance corrective, adaptative et volutive de la solution globale : sappuyer sur un prestataire en cas de problme sur lapplication. Par exemple, lorsque
lapplication ne fonctionne plus ou lorsquil sagit de faire voluer le logiciel :
dun point de vue fonctionnel selon les corrections ou les volutions mtier
apporter
dun point de vue technique afin de suivre les volutions technologiques (tels
que les tests de compatibilit du logiciel sous une nouvelle version de systme dexploitation, de base de donnes et adaptations ventuelles pour que
lapplication fonctionne sous des versions plus rcentes de logiciels)

3.3

Objectifs

Pour mener bien ce projet, plusieurs objectifs ont t identifis :


Dfinir une plateforme cible pour lexcution de lapplication,
Dvelopper lensemble des fonctionnalits de lapplication,
Crer les procdures stockes pour le traitement des indicateurs
Mettre en uvre dune structure de base de donnes suivant un modle
La figure no 3 illustre le plan de lapplication ainsi que les diffrentes fonctionnalits
dvelopper.

12

F IGURE 3 Plan de lapplication et de ses fonctionnalits

3.4

Gestion de projet

Durant ce stage jai t amen travailler en coopration avec un stagiaire issu de


lcole informatique SUPINFO sous la coordination du directeur de run [in] box, M.
DORSEUIL Alain.

3.4.1

Processus de dveloppement du projet

Le dveloppement du projet se repose sur une approche agile. En effet cette approche permet au client davoir rgulirement un rendu des fonctionnalits de lapplication tout au long de la dure du projet. La figure no 4 offre un aperu de cette approche.
Chaque tape du processus est dfinie en concertation avec le client et le planning des
livrables correspondants est dfini conjointement.

13

F IGURE 4 Processus mis en uvre pour le dveloppement de lapplication Web


Les caractristiques des principales de ces phases sont :
Spcifications fonctionnelles :
Recueil des besoins en fonction des diffrents acteurs sur site jusqu validation
client. Mise en uvre doutils de travail collaboratif
Modlisation (Analyse / Conception) :
Prsentation sous forme de diagrammes des interfaces de saisies, des units de
traitement et des tats.
Tests et validation :
Validation sur la base dun document de recette issu des spcifications
Lintrt de cette dmarche est de procder des livraisons successives nous permettant de rester en contact permanent avec les principaux utilisateurs du logiciel en cours
de dploiement. Cette dmarche permet daboutir une meilleure satisfaction client
quune approche classique de type Audit / Cahier des charges.

3.4.2

Gestion des lments de recettes

Ds la mise disposition dune itration du livrable, il est essentiel de procder


des vrifications de manire contrler la conformit du rsultat avec le cahier des
spcifications. Pour chaque itration, le client effectue des tests de lapplication et communique la liste des anomalies rencontres, ou encore, des changements non prsents
dans le document des spcifications lors du test, via le logiciel M-Files. A la prochaine
itration, le client prendra le soin de vrifier que tous les lments de recette traits
soient conforme ses attentes. La figure no 5 prsente une vue densemble de lcran de
gestion de ces lments o client peut crer ou dfinir ltat dun lment de recette.

14

F IGURE 5 Aperu de lcran des lments de recettes du logiciel M-Files


Ces lments sont classs en quatre catgories :
Ecart STF
Un lment de recette est plac dans cette catgorie, sil ne respecte pas une rgle de
gestion mentionne dans le cahier des spcifications techniques et fonctionnelles. Cela
est gnralement d une mauvaise comprhension de ces rgles.
Correctif STF
Les lments de recette de ce type sont, comme leur nom indique, des corrections de
certaines rgles de gestion formules dans le document, apportes par le client.
Evolution STF
Comme nous lavons dit prcdemment, le contenu du cahier des spcifications techniques et fonctionnelles peut subir des modifications ou des ajouts de fonctionnalits
supplmentaires sur la demande du client. Cette catgorie concerne tous les lments de
recettes lis ces ajouts.
Dysfonctionnement bloquant
Il peut arriver que certaines fonctionnalits encore en cours de validation, gnrent des
messages derreurs. Par scurit les exceptions non gres bloquent la page en cours,
cela permet au reste du code de ne pas continuer sexcuter. Lorsque cela arrive, un
lment de recette est cr dans cette catgorie.

15

3.4.3

Workflow

Afin doptimiser la communication de lavancement des lments de recette avec le


client, le logiciel M-Files fournit un systme de Workflow 4 paramtrable. Le statut des
lments de recette suit le cheminement montr sur la figure no 6 :

F IGURE 6 Aperu du cheminement du changement dtat dun lment de recette


Chaque lment de recette post dans lapplication M-Files possde ltat Dclar.
Une fois que le dveloppeur a pris soin de lire la description de llment, il peut soit le
passer dans ltat Pris en compte pour indiquer quil travaille sur le sujet, ou soit le passer en en attente avec un commentaire dans le cas o il na pas toutes les informations
relatives lment (tel que le manque de prcision lors de la dclaration dun cart
STF par exemple). Une fois que les informations supplmentaires sont apportes par le
client, llment de recette passe alors ltat Pris en compte et le dveloppeur vrifie sil est possible de traiter llment. Si llment est traitable, alors le dveloppeur
effectue le traitement demand et passera llment ltat de Trait . En revanche, si
la description donne par le client nest pas assez prcise, llment concern sera mis
en attente avec un commentaire indiquant au client de fournir plus de prcision sur la
nature du problme. Une fois que les informations supplmentaires sont apportes, le
dveloppeur peut alors effectuer le traitement de llment.
Une fois que llment de recette est trait, il ne reste plus quau client de le valider
ou non, en cas de validation, llment reoit ltat Recett sinon, il passe ltat Non
trait si la demande du client na pas t satisfaite. Llment repassera alors en Pris en
compte et sera retrait par le dveloppeur.
4. Workflow : Il sagit de la reprsentation dune suite de tches ou doprations effectues par une
ou plusieurs personnes.

16

Il est possible que la mise en place dune fonctionnalit perturbe le fonctionnement


dune autre ou que la correction dune erreur entrane la cration dun autre dysfonctionnement. Si le client observe un de ces deux cas pour un lment Recett , il doit changer
ltat de celui-ci en Rgression pour indiquer aux dveloppeurs quil sagit dun dysfonctionnement prsent sur un lment de recette dj valid.

17

4 Approfondissements
4.1

Contexte technologique

Dans cette partie, je vais dresser un inventaire des diffrentes technologies existantes
pour la mise en uvre dapplications web.

4.1.1

Dfinition dune application web

Une application web est une application qui sexcute par le biais dun navigateur
Web et donc dveloppe par un langage de programmation compatible avec les navigateurs ct client (telle que la combinaison du JavaScript, HTML et du CSS) et excutable
au niveau dun serveur HTTP ct serveur.
Les applications web se sont popularises grce la forte prsence des navigateurs
web dans le monde et leur facilit dutilisation. La possibilit de maintenir jour les
applications web, sans perturber les milliers dutilisateurs, est la raison principale de
cette popularit tout comme la compatibilit intrinsque entre les diffrents systmes
dexploitations.
Dans la ralisation dune application web, la gestion dun contexte utilisateur est
essentielle si on souhaite offrir une exprience personnalise lors de leur navigation sur
les pages dun site. Cela permet lapplication de dterminer par exemple avec quel
utilisateur elle communique, et ainsi, dafficher lcran des informations auxquelles
dautre utilisateur nont pas accs.

4.1.2

Langages et frameworks

Dans cette partie je vais prsenter diffrents langages de programmation qui pourraient tre utiliss dans le cadre du dveloppement dapplication web, ainsi que quelques
frameworks qui permettraient de rpondre aux besoins.
Un framework (littralement Cadre de travail en franais) est un ensemble de
bibliothques 5 conus dans le but de simplifier le travail des dveloppeur en leur fournissant les composant ncessaires pour crer les fondations, larchitecture et les grandes
lignes dun logiciel. Il sagit dune boite outils ralise par des dveloppeurs pour des
5. Bibliothque logicielle : une bibliothque logicielle est une collection de fonctions, qui peut tre
dj compile et prte tre utilise par des programmes.

18

dveloppeurs. Cependant, cette boite outils nest pas conu pour quon lutilise tel
quel, il est ncessaire dutiliser un langage de programmation pour pouvoir exploiter
tous ses lments.
Le principal objectif dun framework est damliorer la productivit des dveloppeurs : il leur offre la possibilit dutiliser tel ou tel composants pour plus daisance
dans le dveloppement du logiciel. Par exemple, la rcupration de donnes depuis une
base de donnes et son affichage dans un tableau en HTML est un des composants que
fourni le framework .NET. Cela permet de ne pas constamment rinventer la roue et de
gagner du temps pour le reste du dveloppement.
Un autre objectif du framework est de rendre le code source structur, lisible et rutilisable par dautres dveloppeurs. De plus, un framework doit tre souple et modulable
pour pouvoir tre utilis dans diffrents types de projets.
Comme nous lavons dit prcdemment, le principal avantage de lutilisation dun
framework est le gain en productivit, le code est organis et lisible. De plus les composants du framework permettent au dveloppeur de ne pas se rpter dans son code pour
effectuer les actions de bases qui sont souvent rcurrentes durant le dveloppement dun
programme tel que lexcution dune requte visant rcuprer des donnes depuis une
base et la gestion de leur affichage.
Le principal inconvnient dun framework est la courbe dapprentissage qui est plus
leve, car pour matriser un framework, une priode de formation doit tre prise en
compte.

4.1.2.1

PHP

Le PHP (Hypertext Preprocessor ) est un langage de scripts Open Source, essentiellement utilis pour la production de pages Web dynamiques la vole. Il peut tre
simplement intgr une page HTML.
Le code est excut sur le serveur qui soccupera de gnrer les lments HTML,
XHTML ou encore CSS, mais aussi les donnes telles que les images qui seront ensuite
renvoys au navigateur puis interprts. Il est galement noter que le client ne reoit
que le rsultat du script, sans aucun moyen davoir accs au code qui a produit ce rsultat.
Le PHP a pour point fort le fait quil soit libre et trs rpandu, possde une grande
communaut et est facile daccs. Cependant, ntant pas un langage strict, il faut tre
rigoureux lors du dveloppement notamment en terme de gestion des variables.
Frameworks PHP
Voici une liste des frameworks PHP les plus populaires lheure actuelle. Lavantage des frameworks populaire vient du fait que la communaut lie au framework est
trs active et permet donc de trouver de laide rapidement.

19

CakePHP 2
Code Igniter
Symfony2
Yii
Zend Framework 2

Lensemble de ces frameworks prennent en compte nativement les lments suivants :


Le modle MVC : modle vue contrleur, permet de structurer lapplication en
sparant la partie prsentation (vue), la partie base de donnes (modle) et la
partie applicative (contrleur).
Une gestion de templates (gabarits) : La gestion de gabarit permet de distinguer
la prsentation du code applicatif .
Une gestion du cache : permet de stocker des pages afin doptimiser leur temps
de chargement. .
Une gestion des SGBDR(Systme de gestion de bases de donnes relationnelles :
qui permet de grer plusieurs type de base de donnes telles que MySQL , PostgreSQL ou encore Oracle selon les besoins.
Lintgration de lORM : Mapping de relation objet qui permet la gestion de la
base de donnes sous forme dobjets.
Lintgration du Scaffolding (chafaudage) : Permet la cration dun espace
dadministration de lapplication sans aucun dveloppement, uniquement partir de lORM.
Utilisation de conventions : Oblige les dveloppeurs utiliser les mmes conventions de codage afin davoir un code uniforme.

4.1.2.2

Java

Java est un langage de programmation oriente objet sous licence GNU GPL, mis
au point par la firme Sun Microsystems. Il a t initialement conu pour tre intgr
dans les appareils lectromnagers, afin de pouvoir les contrler, les rendre interactifs,
mais surtout de permettre une communication entre eux. Ce qui en fait un de ses points
forts : la portabilit. En effet, les programmes crits en Java sont portables sur plusieurs
systmes dexploitation, tels que UNIX, Windows, Mac OS ou GNU/Linux avec peu ou
pas de modifications.
Il est possible de dvelopper des applications client-serveur en Java. Du ct client il
existe les applets, ce sont des applications Java qui fonctionnent via un navigateur web,
grce une machine virtuelle Java. Celles-ci sont utilises pour fournir des fonctionnalits interactives qui ne peuvent pas tre fournis par le langage HTML.
Du ct serveur nous avons les servlets, qui reoivent les requtes du navigateur
client, effectuent des traitements et lui renvoient les rsultats. Elles sont principalement
utilises dans la gnration de pages html dynamique utilisant le protocole de communication HTTP.
Java a pour avantages dtre libre, multi-plateforme et possde un grand nombre de
librairies disponibles.

20

Frameworks Java
Nous avons relev quelques frameworks populaire pour Java :
Spring 3 MVC Framework bas sur larchitecture MVC sous licence Apache
JSF (Java Server Faces) Framework bas sur larchitecture MVC
Apache Struts 2
Framework sous licence Apache 2.0 galement bas sur larchitecture MVC 2 et
utilise les servlets, les JSP

4.1.2.3

ASP.NET

ASP.NET est un ensemble de technologies dveloppes par Microsoft permettant


la programmation dapplications web dynamiques. Il sagit du successeur de la technologie Active Server Pages 6 et fait partie de la plateforme .NET de Microsoft (que je
dcrirais plus loin dans ce rapport). Les pages ASP.NET sont compiles et excutes par
le Common Language Runtime 7 . Cet ensemble de technologies permet de dvelopper
des applications web de manire rapide tout en leur fournissant une certaine robustesse.
Il existe trois modles de programmation en ASP.NET :
Le modle ASP.NET WebForms,
est un des trois modles de programmation pour crer des sites et des applications web
en ASP.NET. Il sagit dlments dinterface qui peuvent tre positionns et qui offrent
la possibilit lutilisateur de modeler lui-mme lapparence des diffrentes pages de
son application web via une interface de type glisser-dposer.
Ce modle a pour avantage de fournir une vaste palette de contrle permettant le
prototypage rapide dune application. Cependant, il nest pas possible de contrler directement le code HTML gnr en sortie.
Le modle ASP.NET MVC,
qui, comme son nom lindique, permet de crer des applications web bases sur le MVC
(Model View Controller) : Le modle (model) dcrit les donnes manipules par lapplication telles que les interactions avec la base de donnes et est responsable de leur
intgrit. La vue reprsente la partie de lapplication qui dirige laffichage des donnes
rcupres depuis le modle. Enfin, le contrleur est la partie qui soccupe de la gestion des interactions de lutilisateur avec lapplication. En gnral, le contrleur lit les
donnes affiches depuis la vue, rcupre les interactions de lutilisateur et envoie lensemble des donnes au modle.
Lavantage principal de ce modle est cette sparation de la vue, du modle et du
contrleur rendant le code plus facile maintenir. De plus, contrairement au modle
WebForms, le dveloppeur un contrle total sur le code HTML rendu. En contrepartie,
le temps de dveloppement dune application est plus lev.
6. Active Server Pages (ASP) : Suite de logiciels destine crer des sites web dynamiques, ASP est
une structure compose dobjets accessibles par deux langages principaux : le VBScript et le JScript.
7. Common Language Runtime (CLR) : Nom du composant de machine virtuelle du framework .NET.
Il sagit de limplmentation par Microsoft du standard Common Language Infrastructure (CLI) qui dfinit lenvironnement dexcution des codes de programmes.

21

4.1.2.4

Ruby

Le Ruby est un langage de programmation orient objet. Il sagit dun langage interprt disposant dun systme de typage dynamique ainsi que dun ramasse-miettes 8
qui est charg de librer automatiquement la mmoire, sa syntaxe pour particularit
dtre concise, permettant de rendre le code plus lisible. La philosophie de conception
du Ruby considre que toute donne est un objet, y compris les types, toute fonction est
une mthode et que toute variable est une rfrence un objet.
Frameworks Ruby
Ruby On Rails
Sinatra
4.1.2.5

Python

Python est un langage de programmation haut niveau dont la philosophie de conception mets laccent (tout comme le Ruby) sur la lisibilit du code. Une de ses particularits est quil peut tre utilis en tant que langage de script, mais galement en langage
objet. Tout comme le JavaScript, il inclut un systme typage dynamique ainsi quune
gestion automatique de la mmoire.
La cration dapplication web en python passe par le Common Gateway Interface
(CGI). Il sagit dune passerelle permettant de communiquer avec dautre programmes
situs sur le mme serveur.
Un des points fort de Python est que le code source est clair et concis, car il est dpourvu de symbole indiquant le dbut ou la fin dune mthode par exemple. Cependant,
une configuration du serveur est ncessaire pour lexcution des scripts.
Frameworks Python
Django
Grok
Pylons

4.1.3

Langage de programmation slectionn

Pour dpartager lensemble de ses technologies et dans un souci de fournir des rsultats dans un dlai court, il ma fallu dcider vers quel langage de programmation
morienter.
Tout dabord, jai vrifi quelles sont les contraintes mises par le client.
Dveloppement des interfaces graphiques en mode Web laide un langage de programmation diffrent du langage JAVA. Ce qui restreint le choix du langage slectionner. Mais aussi : Mise en place dune base de donnes sous Microsoft SQL
Server (2008 R2 ou 2012). et Systme dexploitation sous Windows Server 2008 R2
ou Windows Server 2012 ou Windows Server 2012 R2. . Lutilisation dun langage
de programmation conu par Microsoft permettrait de profiter des optimisations lies
8. Ramasse-miette : Systme de gestion automatique de la mmoire. Il est responsable du recyclage
de la mmoire pralablement alloue puis inutilise.

22

lenvironnement Windows, mais aussi davoir moins dinstallations et de configuration effectuer pour mettre en place lenvironnement de travail et ainsi commencer
directement la partie programmation de lapplication web. Aprs concertation avec mes
encadrants, notre choix sest alors orient vers ASP.NET.
Il fallait ensuite dcider quel langage utiliser parmi ceux disponible dans les technologies .NET, o les plus populaires sont le C# et le Visual Basic .NET (VB.NET). Ayant
pratiqu pendant deux ans le VB.NET pour le dveloppement dapplications Windows
pendant mon cursus scolaire, je me suis orient vers ce langage, car lide de pouvoir
utiliser ses acquis pour le dveloppement web tait trs intressante : cela me permettra
la fois de dcouvrir lASP.NET et de moccuper de la partie traitement avec un langage que je connaissais dj. De plus, lentreprise possde des comptences internes sur
ce langage.
Aprs la slection du langage, il restait dterminer quel modle de programmation
adopter parmi WebForms, MVC et Web Page pour la ralisation du projet. Le modle
WebForms a sembl pour moi, comme la solution la plus adquate pour le dveloppement, car cela ressemblait beaucoup au WinForms 9 utiliss dans la ralisation dapplications Windows. En effet, celle-ci permet de manire intuitive de concevoir la partie
Front-End (ce que lutilisateur verra afficher sur son cran) et de concevoir une maquette
des diffrents visuels de lapplication. Ce facteur rapidit de conception de linterface
entre en adquation avec la dmarche agile choisie pour le dveloppement du projet.

4.2

Outils et technologies utiliss

Ayant choisi de me porter sur de lASP.NET, loutil le plus adquat pour raliser
lapplication et ses diffrentes fonctionnalits, est lenvironnement de dveloppement
Microsoft Visual Studio 2013. Lutilisation de jQuery et jQueryUI, deux frameworks
JavaScript ma permis de mettre en place un systme de boites de dialogue utilis pour
les diffrents formulaires prsents dans lapplication. Le suivi des lments de recette a
t appuy par le logiciel M-Files qui permet dorganiser des lments en fonction de
leurs mta-donnes.

4.2.1

Environnement de dveloppement

Microsoft Visual Studio est un environnement de dveloppement intgr (IDE) conu


comme son nom lindique, par Microsoft. Il est utilis pour le dveloppement de programme informatique pour les systmes dexploitations Microsoft Windows , mais aussi
pour le dveloppement de site web, dapplications web et services web. Il peut produire
aussi bien du code natif 10 que du code manag 11 . Visual Studio inclus un diteur de
9. Windows Forms (WinForms) : Il sagit du nom de linterface graphique incluse dans le framework
.NET, qui permet de faire des applications Windows compose de fentres.
10. Code natif : Programme dont le code source est compos dinstructions directement reconnues par
un processeur.
11. Code manag : Programme dont le code source sexcute par lintermdiaire dune machine virtuelle.

23

code supportant IntelliSense 12 . Dautres outils y sont inclus tel quun outil de cration
dinterfaces graphiques, un outil de cration de classe et de modle de base de donnes.
Visual Studio supporte divers langages de programmation tels que : le C++, le VB.NET,
C#, le F#, le Python, ou encore le Ruby. Il propose galement le support du XML/XSLT,
du HTML/XHTML, du JavaScript ou encore du CSS.
Nous avons donc dcid que cet outil tait plus que ncessaire si lon envisage le
dveloppement de lapplication en ASP.Net. En effet, celui-ci permet dexploiter tout le
potentiel des technologies .NET.
Pour la partie visuelle des pages, jai choisi dappuyer les diffrents contrles de saisie (dans la mesure du possible) sur du JavaScript, car tant du ct client, la vrification
des donnes saisies est plus rapide que sil sagissait dune vrification du ct serveur.
Je suis galement pass par jQueryUI 13 pour des fonctionnalits telles que laffichage
de fentre flottantes lcran, essentiellement utilises pour afficher les diffrents formulaires que propose lapplication.

4.2.2

Systme de gestion de base de donnes

La solution dveloppe utilise comme systme de gestion de base de donnes (SGBD)


Microsoft SQL Server 2012. Comme tout autre (SGBD), il permet le stockage et la gestion des donnes. Il a pour particularit dtre un SGBD supportant nativement des
requtes SQL qui impliquent plusieurs bases de donnes.
Microsoft SQL Server utilise le langage T-SQL (Transact-SQL) pour ses requtes. Il
sagit dune implmentation de SQL prenant en charge les procdures stockes 14 et les
dclencheurs 15 . Il possde galement une composante transactionnelle qui lui permet de
prparer des modifications sur les donnes dune base et de les valider ou de les annuler
de faon atomique. Cela permet de garantir la cohrence et lintgrit des informations
stockes dans la base de donnes.

4.2.3

Suivi des lments de recette

M-Files est une solution de gestion de contenu (ECM) 16 , dvelopp par lentreprise
du mme nom, fournissant aux utilisateurs un systme dorganisation de contenu bas
sur les mta-donnes qui catgorise les lments pour ce quils sont et non pas par leur
emplacement sur le disque dur.
12. IntelliSense : Terme gnral employ pour plusieurs fonctionnalits en autocompltion, aidant lutilisateur obtenir des informations sur le code quil utilise selon le contexte.
13. jQueryUI : jQuery UI est une collection de composants dinterface graphique et deffets visuels
implmente avec jQuery (une bibliothque crite en JavaScript), du CSS et du HTML.
14. Procdure stocke : Ensemble dinstructions SQL prcompiles, stockes dans une base de donnes
et excutes sur demande par le SGBD qui manipule la base de donnes.
15. Dclencheurs : Dispositif logiciel qui provoque un traitement particulier en fonction dvnements
prdfinis.
16. Gestion de contenu dentreprise :Programme visant grer lensemble des contenus dune organisation. Il prend en compte sous forme lectronique les informations qui ne sont pas structures, comme
les documents lectroniques, par opposition celles dj structures dans les bases de donnes

24

M-Files fonctionne sous Windows et peut communiquer avec dautres programmes


via son API fourni. Il supporte tous types de documents lectroniques mais galement
les informations dfinies par les utilisateurs ntant pas associes un document (telles
que les contacts, les projets, les clients etc.).

4.3

Une application ASP.NET WebForms

Dans cette partie, je vais exposer les diffrentes composantes dune application
ASP.NET de type WebForms. En effet, pour pourvoir dvelopper convenablement il
est impratif de prendre connaissance du principe de fonctionnement dune application
ASP.NET WebForms.

4.3.1

Framework .NET

Le framework .NET est un framework cr par Microsoft en 2002, tant principalement ddi la ralisation dapplications sexcutant dans des environnements Microsoft. Il offre la possibilit de raliser des programmes fonctionnant sous Windows,
ou des sites web ou encore des applications pour appareils mobile. Celui-ci sappuie
sur la norme Common Language Infrastructure 17 (CLI) qui ne dpend pas du langage
de programmation utilis. Ainsi tous les langages compatibles respectant la norme CLI
ont accs toutes les bibliothques disponibles dans lenvironnement dexcution. Ce
framework a t conu dans le but de faciliter le travail des dveloppeurs en unifiant
lapproche de conception dapplications Windows.
Lenvironnement dexcution du framework se compose dun moteur dexcution,
appel Common Language Runtime (CLR) : il sagit dune implmentation de la norme
CLI par Microsoft permettant la compilation du code source de lapplication en un langage intermdiaire, nomm Microsoft Intermediate Language (MSIL) et se comporte
comme une la machine virtuelle Java. Lors de la premire excution de lapplication, le
code MSIL est son tour compil la vole en code spcifique au systme grce un
compilateur Just In Time 18 (JIT). Lenvironnement dexcution se distingue en deux parties : une partie lie lexcution dapplications Windows natives appele WinForms et
une autre partie relative lexcution dapplication et de service Web appel ASP.NET.
La figure no 7 illustre les diffrents composants du framework.

17. Common Language Infrastructure : Il sagit dune spcification ouverte dveloppe par Microsoft
pour sa plateforme .NET qui dcrit lenvironnement dexcution de la machine virtuelle bas sur Common
Intermediate Language (CIL), un langage de programmation bas niveau.
18. Just in time : technique de compilation consistant traduire le code octets en code machine au
moment de lexcution dun programme.

25

F IGURE 7 Schma de larchitecture du framework .NET

4.3.2

Serveur IIS

Les applications ASP.NET sont gres par Internet Information Services (IIS). Il
sagit dun serveur Web dvelopp par Microsoft qui fournit une plateforme scurise
et facile administrer pour lhbergement des Services Web ainsi que des applications
Web. Dans sa version plus rcente, IIS permet la gestion de la plupart des langages utiliss sur le Web allant de lASP.NET au PHP.
Depuis la version 6.0 de IIS (version actuelle : 8.0), une nouvelle fonctionnalit a
t intgre : le pool dapplication. Celui-ci peut contenir une ou plusieurs applications
web et offre la possibilit de configurer le niveau disolation entre ces diffrentes applications. Cette fonctionnalit offre la possibilit de :
grouper les sites et applications qui sexcutent avec les mmes paramtres de
configuration
isoler les sites et applications web qui sexcutent avec des paramtre de configuration unique
prvenir que les ressources dune application accdent aux ressources dune
autre

4.3.3

Architecture dune application ASP.NET

Une application ASP.NET est excute via une squence de requtes HTTP et de rponses HTTP. Le navigateur client demande une page ASPX et le serveur web excute
la page et produit le code XHTML, CSS et JavaScript correspondant.

26

4.3.3.1

Cycle de vie dune page ASP.NET WebForms

Lorsquune page ASP.NET sexcute, elle passe par plusieurs tapes qui constituent
son cycle de vie. Celles-ci sont linitialisation, linstanciation des contrles, la restauration et le maintien de ltat, lexcution du code relatif la gestion des vnements et
enfin, le rendu. Connatre le fonctionnement du cycle de vie dune page ASP.NET est
important, car cela permet de savoir exactement o placer le code pour quil fonctionne
correctement. En rgle gnrale, une page ASP.NET passe par les tapes prsentes sur
la figure no 8.

F IGURE 8 Cycle de vie dune page ASP.NET WebForms


Demande de la page
La demande page seffectue avant le dbut du cycle de vie. Lorsquelle est demande
par le client, le moteur ASP.NET dtermine si la page doit tre analyse et compile et
donc, commencer son cycle de vie, ou sil sagit dune version de la page disponible en
cache pouvant tre envoye sans lexcuter.
Start
Dans cette tape, les proprits de la page telles que Request qui rcupre un objet HttpRequest permettant ASP.NET de lire les valeurs HTTP envoyes par le client pour la
page demande et Response (qui rcupre lobjet HttpResponse permettant denvoyer
la rponse HTTP au client.) sont dfinies. A cette tape, la page dtermine galement si
la demande est une publication (aussi appel postback ) ou une nouvelle demande, la
proprit IsPostBack est alors dfinie.
Initialisation de la page
Pendant ltape dinitialisation, les contrles de la page sont disponibles et pour chacun
deux, la proprit UniqueID est dfinie. Si la demande est une publication (IsPostBack=true), alors les donnes et les valeurs des proprits ne sont pas charges. Sil
sagit en revanche dune nouvelle demande, les donnes et valeurs des contrles sont
rcupres.
Chargement
Pendant le chargement, si la requte est une demande de publication, alors les proprits
des contrles sont charges avec les informations rcupres depuis les tats daffichage
et de contrles.

27

Gestionnaires dvnement & Validation


Durant cette tape, dans le cas dune demande de publication, tous les gestionnaires
dvnements sont appels, suivi de la mthode de validation qui affecte la proprit
IsValid de chaque contrle ainsi que de la page.
Rendu
Avant cette tape, ltat daffichage de la page et des contrles quelle contient est sauvegard. Pendant ltape du rendu, la page appelle la mthode Render de chaque contrle,
apportant un flux de sortie OutputStream qui sera intgr dans la proprit Response de
la page pour pouvoir tre interprt par le navigateur.
Dchargement
Aprs le rendu complet de la page, celle-ci passe en phase de dchargement. Cette mthode est appele aprs que la page ait t rendue dans sa totalit et envoye au client.
A cette tape, les proprits de la page telles que Response et Request sont dcharges
et tous les nettoyages sont effectus.
4.3.3.2

Gestion des vnements

Une des caractristiques cl dune application ASP.NET Webforms est quelle utilise un modle de programmation bas sur les vnements. Ces vnements sont capturs par des gestionnaires dvnement (event handler) : ce sont des mthodes qui
dterminent quelles actions ont t effectues lorsquun vnement se produit, tel que
le clic sur un bouton ou encore la slection dun lment dans une liste droulante. Cette
pratique a t inspir de ce qui se fait gnralement sur les page Web : une script client
qui sexcute sur lvnement onclick dun bouton en HTML. ASP.NET apporte donc
ce modle au traiement serveur.
Il est a not que le systme de gestion dvnements utilis par ASP.NET ne fonctionne pas de mme faon que celui dune application Windows standard. En effet, dans
une application Windows les vnements sont produits et grs par la mme machine,
contrairement aux vnements ASP.NET qui sont produit par le navigateur, puis transmis et gr par le serveur.

4.3.3.3

le ViewState

Il existe plusieurs mthodes pour stocker linformation dun tat lautre lors dune
navigation sur un site :
Les variables de session
Les cookies
Le stockage en base de donnes
Bien que ces mthodes soient efficaces, elles possdent leurs limites. En effet, il ny
a pas de garantie que le navigateur client accepte les cookies pour pouvoir stocker linformation. De plus, les variables de session sont des variables temporaires, les lments
qui y sont conservs ne le sont que jusqu la dure de la session. De mme, le stockage
en Base de Donnes est coteux en conception et dveloppement, car il faudrait pour
chaque utilisateur par exemple , stocker dans la base les informations relatives ltat
28

de la page en cours de visualisation. Le framework .Net propose un concept qui est la


cl matresse du dveloppement en ASP.NET WebForms : le ViewState.
Le ViewState conserve ltat de chaque lment .NET (qui sont contrls du ct
serveur), dans la page HTML qui est en cours dexcution.
De ce fait, par dfaut si on place une zone de texte (TextBox) sur une page et quon
envoie la page un client, celui-ci recevra les lments HTML correspondant la zone
de saisie, mais aussi un lment cach (<INPUT TYPE="HIDDEN" .../>) qui stockera
ltat de lobjet.
En observant le code source dune page ASP.NET WebForms, on peut remarquer le
champ cach suivant :

<input type=" hidden " name=" __VIEWSTATE " id=" __VIEWSTATE " value=" JvXuP8 + l6ll +6 UwtGGv44 /
uvcDmj [...] " / >

Cet lment contient lui seul tous les tats des contrles de toute la page web.
Le Viewstate est (par dfaut) envoy au navigateur, puis est retourn au serveur sous la
forme dun champ cach lintrieur de la page cela permet de donner limpression
lutilisateur que lapplication web se souvient de ses actions prcdentes sur la page.
Cependant, en stockant plus la page contient des contrles, plus la quantit dinformation sauvegarder devient importante, donc, le Viewstate gagnera du volume ainsi que
la page web. Il faut donc lutiliser avec parcimonie.

4.4

Mthodologie de production

Dans cette partie, je dtaillerai le cheminement effectu pour raliser les pages de
lapplication web, ainsi que leurs liaisons la base de donnes.

4.4.1

Ordre de dveloppement des crans de lapplication

Chaque page de lapplication reprsente une ou plusieurs fonctionnalits o certaines dpendent dautres en termes de donnes. Nous avons donc dcid de dvelopper
dans un premier temps les vues qui concernent les donnes auxiliaires. Cette dmarche
pour but de rendre disponibles toutes les donnes annexes lors du dveloppement des
fonctionnalits principales de lapplication : ces donnes apparatront dans des listes
droulantes et aussi pour que les cls trangres soient correctement compltes lors de
linsertion ou la modification de lenregistrement dpendant de ces cls dans la base de
donnes. La dpendance des fonctionnalits est illustre par la figure no 9.

29

F IGURE 9 Dpendance des fonctionnalits de lapplication


Dans un premier temps, je me suis pench sur la cration des pages Donnes auxiliaires et Frquences car les donnes donnes gres par ces crans sont utilises dans
la plupart des pages de lapplication. Jai ensuite procd la cration des pages Fonctions et Profils qui permettent la personnalisation du menu de lapplication en fonction
des droits de lutilisateur.
Ces dernires pages mont permises par la suite de raliser les fonctionnalits Dpartements, fonctions et utilisateurs et Modification de mot de passe qui permet comme son
nom lindique la gestion des donnes relatives aux dpartements, aux fonctions quils
contiennent et aux utilisateurs associs. Ceci tant fait, jai pu mettre en place le systme
dauthentification qui saffiche lcran daccueil de lapplication et procd lcran
de paramtrage du logiciel, qui permet la dfinition de plusieurs paramtre globaux de
lapplication (tels que la configuration de la complexit du mot de passe utilisateur par
exemple).
Une fois tout cela en place, jai procd au dveloppement des pages relatives aux
indicateurs de performances et leur saisies Gestion des KPIs, droits, rgles , Saisie
des indicateurs et Saisie des objectifs . Pendant la ralisation de ces crans , Anthony
Picard, un stagiaire de lcole informatique SUPINFO sest occup des pages lies la
gestion des rapports de lentreprise cliente : Configuration des rapports et Gestion des
rapports.

30

Enfin, je suis pass la ralisation des derniers crans de lapplication qui sont :
Suivi des recommandations, qui se base sur les donnes des derniers crans, Performance HSE dpendant des donnes relatives aux indicateurs et aux recommandations
et Consultation des alertes qui recensera lensemble des anomalies lies aux traitements.
Aprs avoir termin le dveloppement de ces fonctionnalits, je suis ensuite pass
la ralisation des traitements cls de lapplication dans plusieurs procdures stockes en
T-SQL 19 . Cette partie seffectue sur la base de donnes, car dans un soucis dvolution
de lapplication, ces traitements ne seront pas affects si elle subit des modifications.
Note : le dveloppement de toutes ces fonctionnalits a t ralis en parallle avec
le traitement des diffrents lments de recettes posts par le client.

4.4.2

Mthode de dveloppement pour une page ASP.NET

Lensemble des fonctionnalits de lapplication ont suivi le processus de dveloppement suivant (figure no 10) :

F IGURE 10 Cheminement du dveloppement dune page ASP.NET


Ralisation de linterface graphique
Tout dabord, je positionne les diffrents lments WebForms et HTML sur la page, que
ce soit via le concepteur de vue ou le code source. Puis, je cre les formulaires dajout,
de modifications ainsi que les autres fentres jQueryUI : ces lments sont encadrs par
des balises <div> avec un identifiant prcis commenant gnralement par dialog- . La
figure no 11 expose les diffrents composants dun cran type de lapplication web.

19. T-SQL : Extension propritaire du langage SQL, destin laccs aux bases de donnes Microsoft.

31

F IGURE 11 Ecran type de lapplication web


Une boite de dialogue de jQueryUI est gre par deux fonctions (prsentes cidessous), lune permet de linitialiser, lautre permet de lafficher, avec des traitements
annexes si ncessaire (tels que laffichage ou dissimulation dlments du DOM dans le
formulaire). Une fois que tout est en place, je passe ltape suivante.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

$(function () {
// Definition des parametres d initialisation de la boite de dialogue jQueryUI
$("# dialog - login "). dialog ({
title : " Connexion " ,
draggable : false,
resizable : false,
width : 500 ,
modal : true,
autoOpen : false
}) ;
}) ;
// Fonction affichant la div dialog_login en tant que boite de dialogue jQueryUI
function showDialogLogin () {
$("# dialog - login "). dialog (" open ");
}

Je passe enfin la cration des autres fonctions de vrification des champs (telles
que les contrles de saisie utilisateur par exemple)
Liaison des lments WebForms la base de donnes
Une fois les fonctions JavaScript cres, je passe ensuite la liaison des objets WebForms avec la base de donnes. Celle-ci seffectue gnralement grce llment SqlDataSource qui permet de renseigner directement la requte de rcupration des donnes et de les afficher dans une liste droulante (DropDownList) ou encore un tableau
32

(GridView) en y prcisant lidentifiant du SqlDataSource concern dans la proprit DataSource. Le code ci-dessous montre un exemple de la liaison de donnes sur une liste
droulante :

1
2
3
4
5
6
7
8
9

<asp : DropDownList ID=" DropDownListLogin " runat =" server "


DataSourceID =" SqlDataSourceUsers " DataTextField =" Utilisateurs "
DataValueField =" CODE " >
</ asp : DropDownList >
<asp : SqlDataSource ID=" SqlDataSourceUsers " runat =" server "
ConnectionString =" <%$ ConnectionStrings : KPIDEVConnectionString %>"
SelectCommand =" SELECT NOM + + PRENOM + ( + CAST ( CODE AS VARCHAR ) + ) AS
Utilisateurs , CODE FROM SYS_USER ORDER BY NOM , PRENOM " >
</ asp : SqlDataSource >

Sensuit alors de la configuration de laffichage des donnes qui peut galement seffectuer depuis le concepteur de vue ou directement dans le code source de la page.aspx.
Programmation vnementielle
Aprs avoir procd la liaison des donnes, je moccupe enfin de la partie programmation en VB .NET de la page, celle-ci est base sur les vnements des diffrents
lments WebForms, mais aussi sur le cycle de vie de la page. Par exemple, le code
dans la procdure ci-dessous sexcutera lors du chargement de la page :
1
2
3
4
5

Protected Sub Page_Load ( ByVal sender As Object , ByVal e As System. EventArgs ) Handles Me
. Load
If Not IsPostBack Then
getMenu ()
End If
End Sub

Je passe ensuite au dveloppement des fonctionnalits ncessaires la page qui sont


gnralement lajout, la modification ou la suppression de donnes tout en prenant en
compte les diffrentes rgles de gestion tablies dans le document de spcifications
techniques et fonctionnelles. Pour chaque fonctionnalit ralise jeffectue des tests et
applique les corrections ncessaires en cas de dysfonctionnement.

4.4.3

Traitement des indicateurs

Une fois le dveloppement des diffrentes fonctionnalits effectu, jai procd par
la suite la cration des diffrentes procdures stockes qui se chargeront de calculer les
indicateurs de performance selon lalgorithme fournit par le client, celui-ci se prsente
sous la forme :

33

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

I t r a t i o n de t o u s l e s i n d i c a t e u r s a c t i f s d une n a t u r e e t d une o r i g i n e p r c i s e
I t r a t i o n d e s mois f a i s a n t p a r t i e de l a f r q u e n c e de l i n d i c a t e u r
M t h o d e de c a l c u l ?
I n c r ment
R g l e de c a l c u l c o m p o r t e une c o n d i t i o n ?
Oui
La c o n d i t i o n e s t r e s p e c t e ?
Oui
V a l e u r de l i n d i c a t e u r = V a l e u r de l i n d i c a t e u r + 1
Non
Aucune a c t i o n e f f e c t u e r
Non
V a l e u r de l i n d i c a t e u r = V a l e u r de l i n d i c a t e u r + 1
Somme
R g l e de c a l c u l c o m p o r t e une c o n d i t i o n ?
Oui
La c o n d i t i o n e s t r e s p e c t e ?
Oui
V a l e u r de l i n d i c a t e u r = V a l e u r de l i n d i c a t e u r +
v a l e u r du champ num r i q u e
Non
Aucune a c t i o n e f f e c t u e r
Non
V a l e u r de l i n d i c a t e u r = V a l e u r de l i n d i c a t e u r + v a l e u r du
champ num r i q u e

Tous les indicateurs de performance possdent une nature et une origine, lalgorithme prcdent sappliquera lensemble des indicateurs dune origine en particulier,
quelques diffrences prs. De plus, chaque indicateur possde une frquence de type
mensuelle, bimensuelle, trimestrielle, semestrielle ou encore annuelle (personnalisable
dans lapplication). En effet, si la date du lancement du traitement ne correspond pas
la frquence dfinie lors de la cration de lindicateur, alors le traitement naura pas
lieu. Un indicateur possde galement une mthode de calcul avec la possibilit davoir
une rgle de calcul dfinie par lutilisateur dans lcran de gestion des indicateurs. Sil
possde une rgle, celle-ci doit tre respecte pour que le calcul puisse seffectuer.

4.4.4

Dploiement des itrations

Chaque itration de lapplication est dploye sur un serveur IIS situ run [in] box
o le client dispose dun accs pour effectuer ses tests. Ces itrations contiennent gnralement des fonctionnalits supplmentaires ainsi quun bon nombre dlments de
recette traits. Il ne lui reste plus qu recetter ou non les diffrents lments traits et
den dclarer de nouveaux si ncessaire, qui seront traits pour les itrations venir.

4.5
4.5.1

Difficults rencontres
Problme dexcution de script ct serveur

Une des principales difficults rencontres lors du dveloppement a t lutilisation du contrle Web Forms UpdatePanel lintrieur dune fentre jQueryUI qui est
affiche depuis le code VB.NET. En effet, le contrle UpdatePanel fait partie des fonctionnalits incluses dans Microsoft ASP.NET 3.5 AJAX Extensions, qui permet le rendu
partiel de pages sans exiger de rafrachissement complet de la page. Son utilisation ncessite la mise en place dun contrle nomm ScriptManager.

34

Le problme li avec ce contrle est que toutes les fonctions JavaScript qui taient
appeles depuis le serveur ne se lanaient plus. En effet, le code utilis avant lutilisation
du UpdatePanel tait le suivant :

Le problme se situait au niveau de la condition encadre ci-dessus. En effet lobjet


ClientScript ntait plus pris en compte depuis la mise en place du ScriptManager, qui
est configur pour le rendu partiel de la page et nexcutera pas le code , car pour pouvoir
sexcuter, la fonction daffichage de la bote de dialogue ncessite le rafrachissement
de la page pour tre appele par le serveur. Il a donc fallu trouver une alternative ce
problme.
Aprs avoir consult la documentation fournie par Microsoft, il sest avr que lobjet ScriptManager possdait galement une mthode RegisterStartupScript fonctionnant
pour des communications client-serveur asynchrones, permettant ainsi dappeler le code
JavaScript entr en paramtre, au dbut de la prochaine publication. Il suffisait ensuite
de dterminer sil sagissait dune communication asynchrone ou non.

35

La procdure ci-dessus prend en compte deux paramtres : lobjet ScriptManager de


la page concerne et le code JavaScript format en chane de caractres. La procdure
vrifie sil sagit dune publication (postback) asynchrone grce la proprit IsInAsyncPostBack et si cest le cas, elle appelle la mthode RegisterStartupScript() du script
manager, sinon elle appelle la mthode du mme nom de lobjet client script RegisterStartupScript.

4.5.2

Problme de publication avec des boutons ASP.NET dans une


fentre jQueryUI

Une autre difficult rencontre a t limpossibilit de dclencher les vnements


associs aux boutons WebForms lorsquils taient placs lintrieur dune bote de
dialogue jQueryUI. En effet, pour plus daisance dans le dveloppement, ces boutons
permettent de dclencher directement le traitement du serveur, au lieu de passer par du
JavaScript et de lui indiquer quel vnement est dclencher. Pour comprendre ce qui
ne fonctionnait pas , il fallait observer le comportement dune bote de dialogue jQueryUI.
Une page web ASP.NET contient la balise HTML <form> qui est considre comme
un formulaire de la page en HTML standard. De plus, les boutons WebForms sont rendus sous la forme de <input type="submit" ../> qui soumettent les informations du
formulaire au serveur.
Lors de laffichage dune de ces boites de dialogue, bien quelle reprenne le contenu
de llment div associ dans la page HTML, celle-ci ne fait plus partie du formulaire,
ce qui cr un dysfonctionnement au niveau des boutons de soumission.

36

Pour la rsolution de ce problme, il fallait indiquer la fentre de sintgrer au


formulaire de la page HTML. Pour ce faire, il fallait ajouter le code ci-dessous dans les
paramtre dinitialisation de la fentre jQueryUI, plus prcisment au moment de son
affichage.
1

$(this). parent () . appendTo (" form ");

Une fois plac dans le paramtres douverture de la fentre jQueryUI on obtient


alors le code suivant :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

$(function () {
// D finition des param tres d initialisation de la boite de dialogue jQueryUI
$("# dialog - login "). dialog ({
// Int gation de la fen tre au formulaire de la page
open : function ( type , data ) { $(this). parent () . appendTo (" form ");} ,
title : " Connexion " ,
draggable : false,
resizable : false,
width : 500 ,
modal : true,
autoOpen : false
}) ;
}) ;

4.5.3

Problme de tri

Un problme a t remont par le client indiquant que le tri du code identifiant des
donnes auxiliaires ntait pas tri correctement. En effet le champ textitCODE dans la
base de donnes est de type varchar 20 et certains codes sont composs de caractres
numriques et dautres de caractres alphabtiques.
La page des donnes auxiliaires est conue de telle sorte que pour une seule page, le
paramtre dans son URL permet de dfinir quelles donnes de quelle table feront lobjet
dun affichage.
Par exemple la figure no 12 affiche toutes les donnes issues de la table UNITE, et
en cliquant sur les lments de larborescence, une requte de rcupration se chargera
de rapatrier les donnes de la table concerne dans le tableau. La structure de donnes
dans ces tables tant la mme, le champ CODE peut donc contenir, selon les tables, des
caractres numriques ou alphabtiques.

20. varchar : Chane de caractres

37

F IGURE 12 Aperu de lcran des donnes auxiliaires


Or, le tri seffectuant par la commande SQL ORDER BY, il est normal de trouver
une squence de code allant de 1 20 trie de la manire suivante :

[CODE]
1
10
11
12
(...)
19
2
20
3
(...)
9

Il fallait donc trouver comment satisfaire la fois un tri dentiers et un tri de chanes
de caractre en une seule requte SQL afin de prserver laspect volutif de la page.
Pour rsoudre cette problmatique, jai utilis la fonction TRY_CONVERT sur le
champ CODE dans la requte afin de le convertir en entier. Cette fonction retourne soit
le champ converti, soit NULL, si la conversion a chou. Une fois la conversion ralise, je reconvertie le champ en entier par la mme fonction puis jajoute sa gauche
une vingts de zro (correspondant la taille totale du champ) et jutilise la fonction
RIGHT afin de ne prendre que les 20 premiers entiers de droite, dans le but dordonner
le champ sil contient des entiers. Le tout est mis en paramtre dans la fonction ISNULL
qui renvoie une expression la place dune autre si celle-ci renvoie NULL. En effet, si
le premier TRY_CONVERT choue, alors il retournera NULL , ce qui gnrera aussi un
NULL dans le second TRY_CONVERT ,qui sera intercept par la fonction ISNULL dans
laquelle jindique de retourner le champ CODE tel quil est.

38

Dans lexemple suivant, nous admettons que le champ CODE ne retourne que des
entiers.
Exemple : On concatne le champ avec autant de zero que la taille du champ CODE :
000000000000000000001
0000000000000000000010
0000000000000000000011
...
000000000000000000002

Puis on rcupre les vingts premiers chiffre en partant de la droite :


0[00000000000000000001]
00[00000000000000000010]
00[00000000000000000011]
...
0[00000000000000000002]

Ainsi, la commande ORDER BY ordonnera les diffrents entiers retourns.


La requte SQL se prsente sous la forme suivante :
1
2

SELECT ID , CODE , ISNULL (RIGHT( 00000000000000000000 + TRY_CONVERT ( NVARCHAR ,


TRY_CONVERT (INTEGER, CODE )) ,20) , CODE ) as CODE_FORMAT , LIBELLE , LIFE_CYCLE
FROM NOM_TABLE ORDER BY CODE_FORMAT ;

La colonne CODE_FORMAT servira de base pour le tri et les donnes affiches seront
issues du champ CODE

39

5 Conclusion et Perspectives
A la fin du stage, jestime 70% le taux de ralisation du projet. Lentreprise poursuivra le dveloppement de lapplication en vue de la mise en exploitation prochainement chez le client final.
Bien que le dlais dans ce projet tait un critre important, au terme de ce stage la
ralisation complte du projet na pas t atteinte. Essentiellement, malgr lapplication
du processus agile de dveloppement, du retard a t pris :
Dune part, par une mauvaise valuation du temps de dveloppement de certaines fonctionnalits qui se sont avres plus complexes que prvu
Dautre part, le retard pris par le manque de disponibilit du client pour la validation et la recette de certaines fonctionnalits (manque de temps ou congs).
En conclusion, bien que je ne pourrai participer la finalisation du projet, ce stage
ma permis dacqurir de nombreuses connaissances, notamment dans le domaine du
dveloppement dapplication web avec le framework .NET via ASP.NET WebForms
qui permet la ralisation dapplications vnementielle oriente web et de mettre en
pratique ces connaissances. Jai pu galement dcouvrir la vie au quotidien lintrieur
dune SS2I ainsi que ses diverses activits.
Ce stage ma aussi permis dassimiler des connaissances dans le droulement du
processus de dveloppement agile mis en place par lentreprise, qui , bien quil y ait
eu quelques aspects impondrables engendrant du retard et quil soit quelque peu fastidieux grer laspect dveloppement et gestion des lments de recette, met le client au
centre du dveloppement afin de rpondre au mieux ses besoins.
A lavenir, je souhaiterai approfondir dautres aspects du framework .NET tel que
le modle ASP.NET MVC bien quil soit encore au mme niveau de maturit que le
modle WebForms, commence se populariser.

40

6 Bibliographie
6.1

Rfrences bibliographiques

Thuan Thai et Hoang Lam, .NET Framework Essentials (2003)


Fielding, Roy T., Gettys, James, Mogul, Jeffrey C., Nielsen, Henrik Frystyk, Masinter, Larry, Leach, Paul J., Berners-Lee, Hypertext Transfer Protocol HTTP/1.1(June
1999).
Robert J. Oberg, Peter Thorsteinson, Dana L. Wyatt, Application Development
Using Visual Basic and .NET (Juin 2002)

6.2

Webographie

http ://msdn.microsoft.com/fr-FR/
http ://www.iis.net/
http ://www.codeproject.com/Articles/457647/Understanding-ASP-NET-Applicationand-Page-Life-Cy
https ://tools.ietf.org/html/rfc2616
http ://tools.ietf.org/html/rfc2109
http ://tools.ietf.org/html/rfc3875

41

A Annexes
A.1

Techniques de gestion dtat fournies par HTTP

La plupart des applications web utilisent le protocole HTTP 21 . Cependant, selon le


RFC 22 2616, ce protocole est gnrique et sans tat et donc ne peut pas grer de couches
dinformations supplmentaire. En effet, un serveur HTTP traite chaque requte quil
reoit de manire totalement indpendante les unes des autres. Celui-ci ne mmorise pas
les informations du client entre ses diffrentes requtes. Pour remdier ce problme, il
existe diffrents moyens qui permettent de retenir ses informations tels que lutilisation
de cookies, de champs cachs ou dinsrer des paramtres dans lURL de la page web.
Ceux ci permettent de crer un contexte qui permettra au serveur didentifier le client.

A.1.1

Les cookies

Un cookie (ou tmoin de connexion) est un petit paquet contenant linformation


sur ltat que le navigateur et le serveur cible peuvent schanger pour maintenir des
donnes relatives lutilisateur. Dans sa forme la plus simple,cookie nest autre quune
paire nom / valeur. Gnralement un cookie contient aussi un bon nombre dattributs
tels que la version, un domaine de validit, un chemin spcifiant lensemble des URLs
sur lequel il sapplique, ainsi que sa priode de validit. Pour comprendre comment un
cookie stocke des informations, nous allons suivre son processus de cration :
Pour accder la page www.monsite.com/index.html, le navigateur se connecte au
serveur www.monsite.com et envoie une requte similaire celle-ci :
GET index.html HTTP1.1
Host : www.monsite.com
Le serveur rpond en envoyant la page demande, prcde par un texte similaire
appel rponse HTTP. Ce paquet peut contenir des lignes demandant au navigateur de
stocker des cookies :
21. HTTP : Hypertext Transfer Protocol, Protocole de communication client-serveur dvelopp pour
le World Wide Web.
22. RFC : Requests For Comments , Documents officiels dcrivant les aspects techniques dInternet.

42

HTTP1.1 200 OK
Content-type : texthtml
Set-Cookie : nom=valeur
(contenu de la page)
Set-Cookie est une requte pour que le navigateur stocke la chane nom=valeur et la
renvoie dans toutes les futures requtes au serveur. Les information seront donc incluses
dans toutes les autre requtes faite au mme serveur (si le navigateur autorise lutilisation de cookies).
Par exemple, le navigateur appelle la page www.monsite.com/page.html en envoyant au
serveur www.monsite.com la requte suivante :
GET page.html HTTP1.1
Host : www.monsite.com
Cookie : nom=valeur
Accept : **
Cest grce lattribut "Cookie" que le serveur sait que cette requte est relie la
prcdente et que linformation est conserve. Le serveur pourra galement y stocker
des informations.

A.1.2

Les champs cachs

Le principe de cette mthode est dinclure un champ cach qui contient lidentifiant de la session actuelle (ou dautres informations dans dautres champs cachs),
lintrieur des formulaires des pages HTML envoyes au navigateur. Ce champ cach
retournera linformation au serveur qui pourra identifier la session en cours. Lextrait de
code ci-dessous montre un exemple de champ cach dans un formulaire en HTML.

1
2
3
4
5

<form method=" post " action=" url " >


<input type=" hidden " name=" ID \ _SESSION " value=" 123 " / >
...
<input type=" submit " / >
</form>

Linconvnient de cette approche est quelle ncessite un effort de programmation


fastidieux, car toutes les pages doivent tre gnrs dynamiquement pour inclure ce
champ cach. De plus, linformation stocke dans le champ cache est affiche en clair
dans le code source de la page web, si un utilisateur tente dy accder, il aura la valeur
de chaque information cache. Lavantage est tous les navigateurs prennent en charge
ces champs.

43

A.1.3

Paramtres dURL

Le principe de cette technique est dinclure lensemble des paramtres ncessaires,


comme un identifiant unique de la session par exemple dans tous les URLs mises par le
client. Par exemple dans lurl suivante, lidentifiant de la session est pass en paramtre.
http ://www.monsite.com/page ;idsession=valeur
Pour raliser cette technique, toutes les URLs susceptibles dtre envoyes au client
(telles que <a href=url>ou <form action=url>par exemple) doivent tre formates
pour y inclure les paramtres ncessaires. L encore lapplication de cette approche
ncessite un certain effort de programmation. Lavantage est que contrairement aux cookies, tous les navigateurs supportent cette mthode.

44

A.2

Liste des contrles WebForms les plus utiliss dans


lapplication

Nom du contrle
serveur
Label
TextBox
Button
LinkButton

ImageButton

DropDownList
GridView

CheckBox
TreeView

Description

vnements couramment utiliss

Affiche du texte sur la page HTML.


Zone de texte pour un formulaire HTML.
Un bouton normal utilis pour dclencher
des vnements lis au clic, sur le serveur.
Mme fonctionnalit que le contrle Button mais lapparence dune lien hypertexte.
Peut afficher une image cliquable, communique avec le serveur un fois cliqu
fournissant des informations telles que les
coordonnes de la souris lors du clic sur
limage.
Une liste droulante dans laquelle on peut
lier des donnes depuis une source.
Tableau permettant laffichage de donnes depuis une source, possde galement la possibilit dajout, de modification et de suppression de donnes.
Case cocher similaire sa version
HTML mais contrlable par le serveur
pour afficher des donnes hirarchiques

Aucun
TextChanged
Click

45

Click

Click

SelectedIndexChanged
OnRowDataBound, OnRowCommand, OnSorting, OnSelectedIndexChanged
CheckChanged
TreeNodeCheckChanged, SelectedNodeChanged, TreeNodeDataBound

A.3

Infrastructure dtaille du datacenter de run [in] box

46