Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
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
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
.
.
.
.
.
.
.
.
.
.
.
.
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, 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.
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.).
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
3.1
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
12
3.4
Gestion de projet
3.4.1
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
3.4.2
14
15
3.4.3
Workflow
16
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
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
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
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
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
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
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
4.2.3
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
4.3
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
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
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
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.
27
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
<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
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
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
Lensemble des fonctionnalits de lapplication ont suivi le processus de dveloppement suivant (figure no 10) :
19. T-SQL : Extension propritaire du langage SQL, destin laccs aux bases de donnes Microsoft.
31
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
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
4.4.3
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
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 :
35
4.5.2
36
$(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.
37
[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
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
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
A.1.1
Les cookies
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
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
43
A.1.3
Paramtres dURL
44
A.2
Nom du contrle
serveur
Label
TextBox
Button
LinkButton
ImageButton
DropDownList
GridView
CheckBox
TreeView
Description
Aucun
TextChanged
Click
45
Click
Click
SelectedIndexChanged
OnRowDataBound, OnRowCommand, OnSorting, OnSelectedIndexChanged
CheckChanged
TreeNodeCheckChanged, SelectedNodeChanged, TreeNodeDataBound
A.3
46