Download - Création d'application d'entreprise
-
8/3/2019 Cration d'application d'entreprise
1/54
Date
1 Cration dapplication dentreprise
Cration dapplication dentrepriseSommaire
Cration dapplication dentreprise ..................................................................................................... 1
1 Introduction ..................................................................................................................................... 3
1.1 Prface & Public de ce tutorial ................................................................................................ 3
2 Une spcification pour dveloppeur ............................................................................................... 4
2.1 Dfinition du mot spcification dans cet ouvrage .................................................................. 4
2.2 Lintrt dune spcification.................................................................................................... 4
2.3 Les outils .................................................................................................................................. 4
3 Le cycle de vie du projet .................................................................................................................. 5
3.1 Cycle de vie en V ...................................................................................................................... 5
3.2 Cycle de vie incrmental ......................................................................................................... 6
4 Etudes des besoins dun projet ....................................................................................................... 7
4.1 Savoir couter le client ............................................................................................................ 7
4.2 Interprter les besoins du client ............................................................................................. 7
5 Larchitecture du systme ............................................................................................................... 8
5.1 Choix du type de client ............................................................................................................ 8
5.2 Les services .............................................................................................................................. 9
5.3 Modlisation de larchitecture logicielle ............................................................................... 10
5.4 Dduction de larchitecture matrielle ................................................................................. 12
6 Les choix techniques...................................................................................................................... 13
6.1 Choisir la version du Framework ........................................................................................... 13
6.2 Choisir les technologies daccs aux donnes....................................................................... 14
6.3 Choisir le langage ................................................................................................................... 15
6.4 Choisir lEDI........................................................................................................................... 15
6.5 Choisir le stockage de donnes ............................................................................................. 16
7 Etablir une maquette de lIHM ...................................................................................................... 17
8 Modlisation de la base de donnes ............................................................................................. 18
8.1 Diagrammes ORM ................................................................................................................. 18
8.2 Gnrer le schma de votre base de donnes ...................................................................... 19
9 Reprsentations objets ................................................................................................................. 21
9.1 Diagrammes de cas dutilisation / Etudes des acteurs et scnarii ........................................ 22
9.2 Diagrammes de paquetages & Composants ......................................................................... 23
-
8/3/2019 Cration d'application d'entreprise
2/54
Date
2 Cration dapplication dentreprise
10 Surveillance et gestion des erreurs du systme ........................................................................ 25
10.1 Support denregistrement des logs & actions surveiller .................................................... 25
10.2 Comportement du systme face aux erreurs non gres ..................................................... 26
11 Implmentation de la scurit .................................................................................................. 27
11.1 Les entres utilisateurs .......................................................................................................... 27
11.2 Les entres non utilisateur .................................................................................................... 28
11.3 Les tentatives dattaques ...................................................................................................... 29
12 Les tests ..................................................................................................................................... 32
12.1 Tests unitaires ....................................................................................................................... 33
12.2 Tests dintgration................................................................................................................. 39
12.3 Tests de validation ................................................................................................................. 40
13 Le dploiement .......................................................................................................................... 41
13.1 Choix du dploiement de votre application .......................................................................... 41
13.2 Projet de dploiement........................................................................................................... 41
13.3 Click Once .............................................................................................................................. 45
14 Le travail collaboratif ................................................................................................................. 51
14.1 Introduction WSS ................................................................................................................... 51
14.2 Introduction Team Foundation Server ............................................................................... 52
15 Planification dun projet ............................................................................................................ 54
-
8/3/2019 Cration d'application d'entreprise
3/54
Date
3 Cration dapplication dentreprise
1 Introduction1.1 Prface & Public de ce tutorial
Concevoir une spcification pour un projet .NET , un titre bien long mais prometteur ! Cela
faisait bien longtemps que je voulais crire ce tutorial. Actuellement formateur certifi Microsoft &
chef de projets au sein dune socit Toulousaine, jai eu loccasion de mettre en pratique certains
principes de base me permettant de me faire comprendre des clients, des dveloppeurs et surtout
de moi-mme.
Mettre ses ides sur papier, imposer des formalismes et des processus vous permettront de
raliser un travail de qualit.
Ce livre dentrainement intervient dans le cursus certifiant MCPD 2.0 et 3.5 ( Microsoft
Certified Professional Developer ), saint graal des certifications .NET au sein de Microsoft.
De par leurs expriences, Bertrand Vergnault & Laurent Assis-Arantes (Dveloppeur .NET,
MCPD) maideront activement crire ce tutorial.
Le public de ce livre devra connatre la base du dveloppement en .NET et avoir des notions de
Winforms, ASP .NET, Services
-
8/3/2019 Cration d'application d'entreprise
4/54
Date
4 Cration dapplication dentreprise
2 Une spcification pour dveloppeur2.1 Dfinition du mot spcification dans cet ouvrage
Le mot spcification est la base le document intervenant aprs un cahier des charges et
avant le processus de conception prliminaire (cf. chapitre sur le cycle de vie).
Dans cet ouvrage nous allons nous intresser une spcification au sens large du terme, ce
qui est souvent le cas lors de projets o le dveloppeur est lui-mme le chef de projets. Nous allons
voir comment il est possible, en un seul document, darchitecturer notre SI.
2.2 Lintrt dune spcificationDans mon exprience passe, jai eu loccasion de travailler avec des entreprises o la
spcification tait inexistante ou se rsumait un bout de papier crit sur un coin de table.
Le problme tait que les directeurs ne souhaitaient pas dpenser de largent pour une
analyse quils trouvaient sans intrts. On se retrouvait avec :
Des dlais non respects.
Des dlais respects car le temps imparti tait trop consquent (le dveloppeur se
permettant alors de travailler un jour sur deux).
Un client revenant toujours sur ce qui avait t valid au pralable. Normal rien ntait mis
noir sur blanc.
Vous remarquerez que sur ces trois points, lentreprise perd de largent.
2.3 Les outilsNous allons voir dans ce livre comment utiliser plusieurs outils, tels que :
Microsoft Visual Studio 2008 Team System Architect Edition, nous permettant de crer
larchitecture logicielle de notre SI.
Team Foundation Server & Windows Sharepoint Services, pour le travail collaboratif.
Microsoft Visio 2007, pour la modlisation objet.
NUnit, pour les tests unitaires.
Microsoft Office Project 2007, pour la gestion du temps.
-
8/3/2019 Cration d'application d'entreprise
5/54
Date
5 Cration dapplication dentreprise
3 Le cycle de vie du projetIl existe de nombreux cycles de vie dans le monde de la gestion de projets. Nous allons nous
intresser plus particulirement deux dentre eux :
Cycle de vie en V
Cycle de vie incrmental
3.1 Cycle de vie en VLe cycle de vie en V vous permet de dcomposer en plusieurs tapes le cycle de vie de votre SI.
Une etape N doit attendre que ltape N-1 soit ralise. Chaque tape danalyse possde une
tape de test .
Lanalyse des besoins: Etape se faisant avec le client, gnralement par un appel doffre et
une rponse appel doffre.
La spcification: Ce document vous permettra de dcrire larchitecture logicielle &
matrielle, les technologies utilises, les contraintes, les dlais Ce document doit tre
comprhensible par le client et par le dveloppeur.
La conception prliminaire & dtaille: Ces etapes dpendent de lampleur du projet,
parfois seul un document de spcification est ncessaire. Ces tapes vont vous permettre de mettre
sur papier larchitecture en dtail de votre logiciel (de la classe la simple mthode de classe, voir
mme leur faon de sxecuter).
La codage : ralisation du systme suivant ce qui aura t spcifi dans les tapes
antrieures.
Les tests : Chacun des tests correspond une tape danalyse, par exemple, un test unitaire
verifiera une partie bien prcise du systme. Un test dintgration verifiera si les diffrents sous-
systmes sont capable de cohabiter ensemble. Pour finir, le test de validation va nous permettre de
verifier si le logiciel conu rpond bien la specification. Si une erreur survient dans lun des tests, il
est necessaire de remonter la modification directement ltape danalyse associe.
-
8/3/2019 Cration d'application d'entreprise
6/54
Date
6 Cration dapplication dentreprise
3.2 Cycle de vie incrmentalDans le modle par incrments, un logiciel noyau est dvelopp, puis successivement, les
incrments sont dvelopps et intgrs.
Par exemple on dmarre un cycle de vie en V pour la version 1 de notre logiciel puis aprs la
phase de ralisation, on dmarre un autre cycle en V pour la version 2 en parallle la fin de notre
premier cycle.
Les avantages du cycle incrmental sont :
Un travail en parallle permettant de ne jamais arrter la production
Les intgrations entre sous-systmes se font au fur et mesure
La charge de travail est rpartie dans le temps, pas de grosse pression au dbut et la fin du
dveloppement.
On peut livrer un logiciel ds le dbut, mme si il nexiste pas toutes les fonctionnalits.
Linconvnient :
Si le noyau ou le prcdent incrment est mauvais, tous les autres incrments le sont aussi.
-
8/3/2019 Cration d'application d'entreprise
7/54
Date
7 Cration dapplication dentreprise
4 Etudes des besoins dun projet4.1 Savoir couter le client
Mettons la technique de ct et passons du ct MOA.
Savoir couter (et pas juste entendre) les besoins du client est primordial pour la russite devotre projet.
Il vous faut utiliser un langage de non informaticien, schmatiser ce dont vous parlez, appuyez-
vous sur des schmas UML comprhensibles par tous (cf. chapitre sur lUML).
Noubliez pas que le client est roi mais ne sait pas tout ! Vous intervenez en tant que
consultant capable de dlimiter le faisable de limpossible.
Ne remettez pas en cause les conseils mtier du client qui risqueraient de le froisser. Qui na
pas dj eu des phrases du type Non je ne suis pas daccord, le menu doit tre droite car je
connais mes utilisateurs et il faut que ce soit l. . Vous ntes pas l pour discuter mais raliser et
hypothtiquement faire rentrer de largent.
Noubliez pas de mettre par crit toutes les demandes du client afin de vrifier que vous les
avez bien identifies. Nhsitez pas tout faire signer chaque fois pour viter qu la livraison on
vous dise que ce ntait pas ce qui avait t convenu.
4.2 Interprter les besoins du clientPrendre le temps de comprendre le besoin est primordial, cependant, il faut aussi pouvoir
linterprter. Cest pourquoi le langage UML (Unified Language Model) a t cr. Cette mthode
non propritaire va vous permettre de schmatiser le systme dinformation par rapport aux besoins
client.
LUML nest pas la seule faon dinterprter les besoins. Nhsitez pas faire vos propres
commentaires, schmas (grce notamment Visual studio).
-
8/3/2019 Cration d'application d'entreprise
8/54
Date
8 Cration dapplication dentreprise
5 Larchitecture du systme5.1 Choix du type de clientLors de la cration dune spcification, une des choses importantes identifier, est le type de client de
notre SI. Est-ce un site web ? Une application windows ? Sur quel type de plateforme doit-il tre
excut ?
Il existe deux grosses catgories de client applicatif en .NET :
RIA : Les Rich Internet Applications, pour le web
RDA : Les Rich Desktop Applications, pour lexcution sur le systme dexploitation
Les applications riches vous permettent une interaction forte avec lIHM. Prenons lexemple
dOutlook, vous pouvez lavoir en ligne ou sur votre bureau.
Version RDA
Version RIA
Les technologies utilises pour les applications de type RIA sont lASP.NET avec de lAjax (grce
lASP .NET 3.5 par exemple, ou lAjax toolkit), du JavaScript (Librairie JQuery intgre dans Visual
Studio 2010), ou tout simplement du Silverlight 2.
Lintrt des applications de type RIA vient du fait que tous les systmes dexploitation
peuvent les utiliser. Peu importe le systme dexploitation ou le navigateur (Seulement Mac OS X et
Windows pour Silverlight).
http://www.asp.net/ajax/ajaxcontroltoolkit/samples/http://www.asp.net/ajax/ajaxcontroltoolkit/samples/http://www.asp.net/ajax/ajaxcontroltoolkit/samples/http://www.asp.net/ajax/ajaxcontroltoolkit/samples/ -
8/3/2019 Cration d'application d'entreprise
9/54
Date
9 Cration dapplication dentreprise
Attention de bien faire la distinction entre ce qui sexcute ct serveur (ASP.NET) et du ct
client (Silverlight, Javascript ).
Les applications RDA (Rich Desktop Applications) vont vous permettre de sexcuter cot client
grce la CLR (Common Language Runtime). Lavantage est le fait davoir la main sur le systme
dexploitation (systmes de fichiers, base de registres). Les deux technologies utilises pour les RDAsont les Windows forms et WPF (Windows Presentation Foundation).
5.2 Les servicesUne solution bien pense doit intgrer ce quon appelle des services.
Un service est un programme qui va permettre dexposer des donnes notre application afin
dviter que notre application soit en contact direct avec notre base de donnes.
Si notre service est expos sur internet on parle alors de web service .
Dans lexemple ci-dessus, il existe 3 services dont un nomm CoursService. Ce service nous
met disposition des mthodes telles que GetCourses().
Pourquoi utiliser des services ?
Les services vont permettre de granulariser votre applicatif. Cela implique une maintenance
plus facile et permet une application tierce de re-consommer ces services si besoin est.
Est-ce long dvelopper ?
Un service peut prendre du temps dvelopper, cependant pour ceux qui souhaiteraient allerau plus vite il existe un projet appel Astoria ou Data Services qui vous gnrera automatiquement
votre service pour exposer vos donnes.
-
8/3/2019 Cration d'application d'entreprise
10/54
Date
10 Cration dapplication dentreprise
5.3 Modlisation de larchitecture logicielleAprs avoir dtermin le type de client (RDA/RIA) que vous allez utiliser ainsi que
lemplacement des services, vous pouvez commencer penser votre architecture logicielle.
Afin de modliser votre architecture, Microsoft vous propose Visual Sudio Team Foundation
Architect Edition 2008.
Prenons comme exemple la cration dun site de-commerce (type RIA, ASP.NET/Ajax), voici
comment nous allons modliser notre SI :
Nous crons un projet de type Distributed Systems / Application Design.
Il vous est maintenant possible darchitecturer votre applicatif grce la Toolbox gauche.
Il est possible de glisser-dposer des lments puis de les configurer (version du Framework,
nom du service, etc).
-
8/3/2019 Cration d'application d'entreprise
11/54
Date
11 Cration dapplication dentreprise
Pour lexemple pris prcdemment voici comment nous aurions pu le concevoir :
-
8/3/2019 Cration d'application d'entreprise
12/54
Date
12 Cration dapplication dentreprise
5.4 Dduction de larchitecture matrielleA partir de larchitecture logicielle il est simple den dduire larchitecture matrielle.
Suivant les moyens consacrs au projet, vous pouvez sparer lhbergeur de service du serveur
de base de donnes.
Visio 2007 va nous permettre de raliser un schma darchitecture matrielle.
Pour la partie serveur, je vous conseille IIS avec Windows Server 2003 ou 2008 (La nouveaut
WAS vous permet dhberger vos services trs facilement) bien quil soit possible grce au projet
Cassini dhberger du .NET sur Apache.
Pour en revenir lexemple de site de-commerce, voici ce que nous aurions pu schmatiser :
Cependant nous aurions pu intgrer sur le mme serveur la base de donnes, le service et
lhbergeur du site web.
-
8/3/2019 Cration d'application d'entreprise
13/54
Date
13 Cration dapplication dentreprise
6 Les choix techniques6.1 Choisir la version du Framework
A lheure o jcris ces lignes les spcifications du Framework 4.0 viennent de sortir.
Le premier Framework fut le 1.0 sortie en 2002. Pour des raisons de corrections critiques, laversion 1.1 est sortie par la suite.
Ce Framework, moins de ne pas avoir le choix, ne doit pas tre utilis. En effet de nombreux
correctifs et amliorations ont t apports au 2.0.
Le Framework 2.0 est la base minimum pour tout
nouveau dveloppement .NET. Il est considr comme le
noyau de toutes les nouvelles versions.
Grce au Framework 2.0 il vous sera possible de
dvelopper en ASP.NET, Winforms, Web Services.
Puis est apparu le Framework 3.0, qui nestquun ajout
de fonctionnalits au 2.0. Dans cette nouvelle version vient
sajouter :
WCF : Cration de services de faon simplifie
WPF : Cration dapplications type RDA
WF : Cration de Workflow
CardSpace : Systme didentification
Le Framework 3.5, lui, propose des technologies comme ASP.NET Ajax et LINQ (API daccs aux
donnes de faon gnrique).
Il est aussi bon de noter quil existe un Compact Framework permettant de dvelopper pour
les systmes embarqus type Windows CE.
Nayez crainte dutiliser les dernires versions du Framework en pensant quelles ne seraient
pas stables. Lactuel Framework 3.5 vient dhriter dune version SP1 amliorant considrablement
celui-ci.
Le choix du Framework dpendra entirement des besoins clients et des comptences des
dveloppeurs mais dans un souci dvolutivit il est conseill de prendre la dernire version jour.
-
8/3/2019 Cration d'application d'entreprise
14/54
Date
14 Cration dapplication dentreprise
6.2 Choisir les technologies daccs aux donnesLaccs aux donnes joue un rle important lors de la conception de notre logiciel. Soit votre
application va directement chercher les donnes, soit ce sera votre service.
LAPI daccs aux donnes dans .NET sappelle ADO.NET. Cette technologie va vous permettre
daccder aux donnes de faon gnrique.
ADO.NET :
Lutilisation dADO.NET avec les classes de base type DataReader (mode connect) ou
DataSet (mode dconnect) vous permettront de requter votre base laide du langage
SQL. Cette solution est disponible partir du Framework 2.0.
Linq :
LinqToSql et LinqToEntities (ADO.NET Entity Framework) sont deux technologies permettant
de faire du Mapping Objet Relationnel.
C'est--dire qu partir dune base de donnes nous faisons abstraction du modle
relationnel pour faire un modle conceptuel et travailler avec des objets.
Fini donc les requtes SQL et autres joyeusets.
Exemple de classe gnre par Linq en glissant-dposant des tables dune base de donnes
Note :Microsoft vient dannoncer que Linq-To-Sql ne sera plus maintenu pour les nouveaux
fournisseurs de donnes, il est donc prfrable dutiliser LinqToEntities.
Le choix du type daccs aux donnes est trs li au choix du Framework puisque Linq
napparait qu partir du 3.5.
-
8/3/2019 Cration d'application d'entreprise
15/54
Date
15 Cration dapplication dentreprise
6.3 Choisir le langageLe langage na pas vritablement son importance. La technologie .NET vous permet dutiliser
plusieurs langages dans un mme projet grce au code MSIL gnr.
La tendance reste au C# et VB.NET. Le VB connait un succs grce aux dveloppeurs venant de
lancienne version VB6.
Utilisez le C# ou VB.NET selon les prfrences du client. Evitez dutiliser dautres langages qui
seraient difficiles maintenir par une autre quipe de dveloppeurs.
6.4 Choisir lEDILenvironnement de dveloppement simpose naturellement: Visual Studio. Bien quil est
possible dutiliser Mono et les diffrents EDI qui gravitent autour sous Linux.
Chez Microsoft, il existe une multitude de versions de Visual Studio. Nous nous intressons la
version 2008 qui permet de choisir le Framework lors de la cration dun projet.
Visual Studio Team SystemCet outil permet une communication et une collaboration accrues entre les
quipes de dveloppement.
Il apporte aussi quelques outils tels que la schmatisation darchitecture
logicielle.
Visual Studio Team System est le produit idal pour la production
dapplication dentreprise.
Visual Studio Professional EditionVisual Studio 2008 Professional Edition est un environnement de
dveloppement complet conu pour que les dveloppeurs individuels
puissent crer des applications.
Visual Studio Standard EditionVisual Studio Standard Edition est un environnement de dveloppement
extrmement spcialis conu pour les dveloppeurs individuels pour la
cration d'applications client/serveur Windows et de sites Web. Des projetstels que application base sur Office ne sont pas prsents contrairement
ldition professionnelle.
Visual Studio Express EditionDes outils lgers, faciles utiliser et faciles matriser pour les amateurs, les
passionns et les tudiants (gratuits).
-
8/3/2019 Cration d'application d'entreprise
16/54
Date
16 Cration dapplication dentreprise
6.5 Choisir le stockage de donnesLe choix du stockage de donnes est important, il doit tre pris suivant plusieurs facteurs
comme la quantit de donnes ou le type dapplications (mobile, RIA, RDA).
Stockage bas sur les fichiers Souvent utilis avec de lXML, je vous le recommande pour de
petites applications. Peut devenir contraignant sil existebeaucoup de donnes.
SQL Express Cest une base de donnes gratuite permettant de crer des
petits projets de base de donnes. Cette option peut tre
considre si vous manquez de moyens financiers. Attention
cependant, ce genre de base de donnes est limit 1GO de
RAM, 4GO de donnes et travaille avec un seul CPU.
SQL Everywhere SQL Everywhere appel aussi SQL Mobile est une version allge
de SQL Server. Cette option vous permet de retrouver vosdonnes en local sur un mobile.
SQL Server editions Base de donnes de Microsoft permettant de stocker tout type
projet volumineux.
Autres Il existe un large panel de stockage. Attention cependant aux
incompabilits possible avec .NET.
-
8/3/2019 Cration d'application d'entreprise
17/54
Date
17 Cration dapplication dentreprise
7 Etablir une maquette de lIHMCrer une maquette dIHM dans le dossier de spcification est primordial et doit tre valid
par le client.
Peu importe que vous utilisiez paint ou un logiciel plus volu. Lintrt nest pas de
montrer vos talents de graphiste mais surtout lergonomie de base et lenchainement des fentres.
Exemple avec une petite application :
Nhsitez surtout pas attacher ct un schma simplifi montrant les interactions entre
chaque interface. Cest un travail fastidieux mais qui se rvlera utile lors de la validation avec le
client.
-
8/3/2019 Cration d'application d'entreprise
18/54
Date
18 Cration dapplication dentreprise
8 Modlisation de la base de donnesUne base de donnes doit tre bien pense si vous souhaitez avoir un produit final de qualit.
Pour cela il existe de nombreuses mthodes. Je vous conseille le Merise ou/et les diagrammes ORM.
8.1 Diagrammes ORMORM est une approche de modlisation smantique qui dcrit le monde en termes d'objets et
des rles que ceux-ci jouent.
Un diagramme ORM se cre partir de Visio. Il va permettre de mettre en vidence tous les
attributs possibles pour un objet. Gnralement ce genre de diagramme est trs apprci des
dveloppeurs puisque lon pense objet .
Les ronds reprsentent des objets :
Les rectangles reprsentent une relation :
Les a... reprsentent lappartenance. Par exemple, une voiture contient des siges, un
sige est contenu dans une voiture.
-
8/3/2019 Cration d'application d'entreprise
19/54
Date
19 Cration dapplication dentreprise
Aprs avoir schmatis grce ORM vos objets, il est facile den dduire la base de donnes.
Ce schma met en vidence une table Voiture, possdant des attributs tels que Couleur,
Numro de srie et le Modle.
8.2 Gnrer le schma de votre base de donnesSi vous souhaitez gnrer un schma capable de montrer la modlisation de votre base de
donnes pour enrichir votre spcification, il est possible de le faire grce au SQL Server Management
Studio.
Aprs avoir cr la maquette de votre base, faites un nouveau diagramme :
-
8/3/2019 Cration d'application d'entreprise
20/54
Date
20 Cration dapplication dentreprise
Puis slectionnez les tables qui devront tre prsente dans le schma :
Le rsultat ressemble ce genre de diagramme :
-
8/3/2019 Cration d'application d'entreprise
21/54
Date
21 Cration dapplication dentreprise
9 Reprsentations objetsUML (en anglais Unified Modeling Language, langage de modlisation unifi ) est un
langage graphique de modlisation des donnes. Il va nous permettre de mettre sur papier
larchitecture du SI par rapport aux besoins du client.
Vous pouvez raliser vos schmas grce des outils comme Rational Rose ou Visio.
Crer un projet UML dans Visio
Menu de vision pour concevoir vos schmas
Il existe de nombreux diagrammes (de squences, de classes) cependant nous ne verrons
que ceux susceptibles de dfinir notre logiciel.
-
8/3/2019 Cration d'application d'entreprise
22/54
Date
22 Cration dapplication dentreprise
9.1 Diagrammes de cas dutilisation / Etudes des acteurs et scnariiLes diagrammes dutilisation permettent de dcrire le SI dun point de vue extrieur. Il met en
vidence ce que fait le systme.
Ce diagramme, trs simple comprendre, permet une interaction entre le client et vous.
Vous allez pouvoir montrer les diffrents scnarii possibles ainsi que les acteurs qui rentrent en jeux.
Dans un premier temps, il faut identifier les acteurs. Par exemple, lutilisateur dun logiciel :
Type de lacteur : actif (c'est--dire quil va dclencher le scnario, sinon il est passif)
Type d'entit : personne
Rle : utilisateur du logiciel
Sur un diagramme UML, les acteurs sont reprsents par de petits bonshommes.
Les cas dutilisation sont reprsents par une ellipse. Un cas dutilisation correspond un scnario.
-
8/3/2019 Cration d'application d'entreprise
23/54
Date
23 Cration dapplication dentreprise
9.2 Diagrammes de paquetages & ComposantsLe diagramme de paquetages et de composants mettent en vidence larchitecture logicielle.
Les architectures les plus connues sont SOA, MVC, N-tiers
Un paquet correspond un ensemble, par exemple IHM ou Accs aux donnes .
Gnralement une architecture 3-Tiers se reprsente de cette manire :
Il est aussi possible de dtailler vos paquets grce aux composants .
Un composant reprsente un sous ensemble de votre couche.
Par exemple :
-
8/3/2019 Cration d'application d'entreprise
24/54
Date
24 Cration dapplication dentreprise
Voici un exemple darchitecture permettant de mette en uvre un service et une architecture en
couche :
Une couche IHM contenant des technologies type Winforms, ASP.NET, Silverlight
Une couche Mtier, souvent reprsente par une assembly de type library (dll).
Une couche Service de type WCF ou Remoting.
Une couche daccs aux donnes qui servira de DataContract. De type ADO.NET ou plus
particulirement Linq (ToEntities de prference puisque Microsoft ne maintient plus ToSql).
-
8/3/2019 Cration d'application d'entreprise
25/54
Date
25 Cration dapplication dentreprise
10Surveillance et gestion des erreurs du systmeBien souvent nglige lors de cration dapplications pour diverses raisons telles que le cot
reprsent et galement parce quelle est parfois peu connue par les dveloppeurs, la scurit est un
point essentiel dans la conception dapplications. Cette partie vous prsentera la scurit dun point
de vue gnral, et vous apprendra tre vigilant dans vos dveloppements. Si vous avez le temps
nhsitez pas approfondir vos recherches dans ce domaine qui volue en permanence.
10.1Support denregistrement des logs & actions surveillerLa surveillance des actions utilisateurs est un des axes importants dans la gestion derreurs. Il
faut imprativement avoir une remonte complte dinformations lors des
interactions avec lutilisateur et surveiller que lutilisateur ne puisse pas nuire
notre systme.
En effet, une grande partie des attaques se fait simplement par des entres de
lapplication qui sont mal ou pas du tout protges. Pour cette raison il faut
adopter certains principes et nous verrons dans la partie Implmentation de la scurit juste
aprs.
Cependant, il est intressant de savoir si quelquun a tent une attaque envers notre
application. Nous allons pour cela loguer les tentatives dintrusion de diffrentes manires : par
envoi de mail, stockage en base de donnes ou mme en XML. Limportant est de dtecter une
manipulation frauduleuse dun utilisateur. On pourra alors identifier une valeur errone dun
identifiant dans un paramtre de lURL, ou encore du script dans une TextBox et nous
sauvegarderons les informations concernant lutilisateur ayant effectu cette action. Aprs il ne tient
qu vous denvoyer un avertissement lutilisateur concern.
De mme si dans le cadre dune application web (ASP.NET) lutilisateur nest pas enregistr, il
sera toujours bon de rcuprer son adresse IP avec le code suivant et loguer sa tentative dintrusion :
Request.ServerVariables["REMOTE_ADDR"]
Mme si ce genre de mthode ne va pas empcher lutilisateur de sintroduire dans notre
application, elle pourra le dissuader de rcidiver dans la plupart des cas. Vous montrez lutilisateur
que vous navez en aucun cas nglig la scurit et que vous tes attentif ses actions.
Il est mme parfois moins couteux pour lentreprise de faire de la rpression que de la
prvention.
Dans la partie Implmentation de la scurit vous verrez plusieurs cas dutilisation o le
Log est le bienvenu et comment il peut tre complmentaire dans la scurisation dapplication.
-
8/3/2019 Cration d'application d'entreprise
26/54
Date
26 Cration dapplication dentreprise
10.2Comportement du systme face aux erreurs non gresUne bonne application dentreprise est aussi une application qui ragit correctement face aux
erreurs non gres. En effet, il peut subsister des erreurs non prvues par les dveloppeurs dues par
exemple au dploiement de lapplication sur un environnement de production diffrent que celui de
dveloppement. De ce fait, les utilisateurs doivent pouvoir rencontrer une interface prvue cet
effet afin de ne pas tre trop dstabilis face lerreur.
Par exemple, pour une application web, il convient de concevoir une page derreur
personnalise pouvant indiquer aux utilisateurs quune erreur vient de se produire sur lapplication
et quun mail a t envoy ladministrateur. Lutilisateur pourra donc voir que lerreur est certes
bien apparue mais que lquipe en charge de lapplication vient dtre prvenue. De plus, lquipe de
dveloppement pourra alors avoir un listing des erreurs apparues dans lapplication lors dune
utilisation courante. Ils pourront ainsi rgler plus rapidement les problmes rencontrs.
Il est vident quil faut que ce cas se produise le moins possible afin que lutilisateur nait pas
limpression que lapplication quil est en train dutiliser est mal conue! Cest dans cette optique
que la partie propos des diffrents tests raliser sur lapplication est trs importante. Elle permet
dviter les situations derreurs trop nombreuses.
Afin que ces situations soient le moins souvent rencontres, il faut que lquipe de
dveloppement ait bien respecte les bonnes pratiques : utilisation de blocs Try-Catch-Finally afin
denglober les portions de code risque, vrifications diverses des variables pour ne pas rencontrer
derreurs (null, ngatives, etc).
Rappel dutilisation dun bloc Try-Catch-Finally :
try{
//Portion de code risque//Si une exception se produit l'excution//le code dans le bloc "catch" est excut
}catch (NullReferenceException ne){
//Portion de code excuter si une exception se produit//Il est possible de mettre plusieurs blocs "catch" la//suite les uns des autres afin de pouvoir capturer//des exceptions diffrentes
}catch(Exception e){
//Portion de code excuter dans le cas//d'une exception basique
}finally{
//Portion de code s'excutant dans tous les cas : si la//portion de code risque s'excute correctement ou si//une exception se produit cette portion s'excutera
}
-
8/3/2019 Cration d'application d'entreprise
27/54
Date
27 Cration dapplication dentreprise
11Implmentation de la scuritImplmenter la scurit dans les applications nest pas chose simple,
dautant plus que des failles apparaissent rgulirement, mais il y a des faons
simples de limiter les risques.
Tout dabord, il faut appliquer le principe du moindre privilge, partir du
fait que lutilisateur doit avoir le moins de droit possible et le moins daccs
possible pour limiter la surface dattaque. On ne dira plus alors : tout le monde
voit tout sauf lutilisateur simple qui ne voit pas cela, mais personne ne voit rien sauf ladministrateur
qui voit cela. Ce nest pas toujours la manire la plus simple de penser mais elle peut jouer son rle
notamment en termes de failles auxquelles on ne penserait pas.
On distinguera ensuite les diffrentes entres de donne telles que :
- les donnes entres par lutilisateur
- les donnes stockes localement (qui peuvent tre modifies)- les donnes stockes dans lurl
On les divisera ici en deux parties distinctes, les entres utilisateurs et les entres non utilisateurs.
11.1Les entres utilisateursIl y a plusieurs moyens de limiter les entres de lutilisateur natif
.NET et mme si a ne permet pas dliminer compltement la
menace, toute scurit supplmentaire est bonne prendre.
En Web Form (ASP.NET) on retrouve tout dabord les diffrents
validateurs qui permettent de limiter les entres :
- Le RequiredFieldValidatorqui est un composant qui permet de vrifier si un champ nest pas
vide.
- Le CompareValidatorqui permet de comparer la valeur entre avec une autre valeur.
- le RangeValidatorqui permet de vrifier que la valeur dentre est situe entre 2 valeurs.
- Le RegularExpressionValidator qui permet des vrifications utilisant les expressions
rgulires.
- Le CustomValidatorqui permet de crer votre propre logique de validation.
- Le ValidationSummaryqui permet de rassembler les erreurs trouves sur la mme page web
En Windows Form on peut utiliser le namespace System.Text.RegularExpressions.
De mme, on assignera toujours une valeur la proprit MaxLength qui permettra de
limiter la taille du texte rentr dans une TextBox par exemple.
Toutes ces validations sont importantes mais ne suffisent pas. Elles sont, dans le cadre dune
application web, gres par du script ct client qui peut tre dsactiv. Par consquent nos
vrifications ne sont plus effectives.
Nous allons donc devoir effectuer ces validations galement cot serveur en utilisant la
proprit Page.IsValid. On utilisera cette proprit aprs validation grce la fonction
http://www.dotnet-tech.com/tutoriels/secu2/#L9http://www.dotnet-tech.com/tutoriels/secu2/#L9http://www.dotnet-tech.com/tutoriels/secu2/#L9http://www.dotnet-tech.com/tutoriels/secu2/#L9http://www.dotnet-tech.com/tutoriels/secu2/#L9 -
8/3/2019 Cration d'application d'entreprise
28/54
Date
28 Cration dapplication dentreprise
Page.Validate() quil ne sera pas ncessaire dappeler si vous avez laiss la proprit CauseValidation
de votre contrle true .
11.2Les entres non utilisateurIl y a dautres types dentres non utilisateur qui peut galement tre source dintrusion :
Pour le Web :
- Les paramtres passs dans lURL (QueryString)
- Les cookies
Egalement valables pour le Windows Form :
- Les fichiers lus et utiliss
Pour les paramtres dans lURL, il faut penser vrifier diffrents points :
- Tout dabord, si on veut rcuprer un entier, il sera bon de le convertir en utilisant la
fonction TryParse au lieu de Parse, qui nous permettra alors didentifier un changement du
type de notre valeur.
- On testera en permanence si le rsultat dune requte effectue (avec une valeur ayant pu
tre modifie par lutilisateur) nest pas null . Il faudra alors identifier si cette requte
peut retourner, dans le cadre dune utilisation normale, une valeur null ou si ce rsultat
est d une manipulation frauduleuse qui pourra alors tre logu.
- On veillera galement effectuer des vrifications complmentaires sur les droits daccs.
LURL pouvant tre modifie simplement et mme copie colle entre diffrents utilisateurs,
on vrifiera que lidentifiant de lutilisateur lui permet bien daccder une ressource.
Les cookies peuvent galement tre une faille importante. Certains dveloppeurs ont tendance
mettre beaucoup dinformations dans les cookies, sans se soucier de la faille que cela reprsente.
- Les cookies peuvent en effet tre utiliss pour rcuprer des informations sur lutilisateur. Il
faut donc faire attention aux informations que lon y met (pas de mot de passe en clair par
exemple).
- Ils peuvent galement tre utiliss pour usurper lidentit dun utilisateur si le cookie permet
une authentification. Pour un site pouvant contenir des informations sensibles, on ne
permettra pas dauthentification automatique par cookies.
Les cookies peuvent tre vols de diffrentes manires :
- Directement sur la machine cliente dans le rpertoire contenant les cookies (arrive
rgulirement dans le cadre o vous travailleriez sur un poste qui ne vous est pas rserv et
o dautres personnes peuvent avoir accs).
- En interceptant les cookies par sniffing ou par la mthode man in the middle , les
cookies passant par requtes HTTP, on peut les intercepter. Il faudrait pour contrer cela
utiliser un protocole chiffr (HTTPS par exemple).
-
8/3/2019 Cration d'application d'entreprise
29/54
Date
29 Cration dapplication dentreprise
11.3Les tentatives dattaquesLes tentatives dattaques peuvent avoir lieu sur tout type dentre et peuvent tre de
diffrents types. Nous allons maintenant essayer didentifier les principales attaques possibles et
essayer de les contrer.
Quelles sont les diffrentes attaques auxquelles nous devons faire face ?
- Injection de code SQL
- Vol didentifiants de session
- Cross Site Scripting (XSS)
Injection de code SQL :
Cette attaque intervient dans le contexte o une entre utilisateur serait insre directement
dans une requte SQL sans subir de vrification sur son contenu ; elle pourrait alors tre interprte
comme du code SQL et dans ce cas effectuer des actions sur nos donnes.
Exemple concret :
Considrons deux champs texte contenant un nom dutilisateur et un mot de passe pour une
authentification directement dans la base de donnes.
SELECT user FROM table_users WHERE
login=login AND password=password
Dans le cas o nous neffectuerions pas de vrifications sur le login et password entrs on
pourrait voir ceci :
SELECT user FROM table_users WHERE
login=Administrateur ; AND
password=password
Nous serions alors bien logu comme Administrateur sans avoir eu besoin du mot de passe.
Comment peut-on alors contrer ce genre dattaque ?
- Utiliser des procdures stockes ou mme des requtes paramtres la place du SQL
dynamique. Les donnes entres par l'utilisateur sont alors transmises comme paramtres,
sans risque d'injection.
- Vrifier de manire prcise et exhaustive l'ensemble des donnes venant de l'utilisateur. Onpeut, par exemple, utiliser une expression rgulire afin de valider qu'une donne entre par
l'utilisateur est bien de la forme souhaite.
- Utiliser des comptes utilisateurs SQL accs limit (en lecture seule) quand cela est possible.
- Raliser un contrle en amont en bloquant systmatiquement les entres contenant EXEC,
SELECT, INSERT, DROP, CREATE, ALTER, UPDATE...
- Utiliser du LinQ qui empche ce genre dattaque nativement.
http://fr.wikipedia.org/wiki/SQLhttp://fr.wikipedia.org/wiki/Expression_rationnellehttp://fr.wikipedia.org/wiki/SQLhttp://fr.wikipedia.org/wiki/SQLhttp://fr.wikipedia.org/wiki/Expression_rationnellehttp://fr.wikipedia.org/wiki/SQL -
8/3/2019 Cration d'application d'entreprise
30/54
Date
30 Cration dapplication dentreprise
Vol didentifiants de session :
Il est important de savoir que le vol de session est possible par la mthode force bruteet quil
peut tre plus ou moins facile en fonction de lalgorithme de gnration dIdSession utilis. Le
meilleur moyen de limiter la possibilit de ce genre dattaque est de limiter la dure de vie dune
session et de la supprimer ds quelle nest plus utilise.
Cross Site Scripting (XSS) :
Le principe du Cross Site Scripting est dutiliser du code HTML, Javascript ou VBScript que lon
introduit dans lapplication web par une des entres mal scurises. Ce code sera alors envoy
dautres utilisateurs de lapplication qui pourra servir afficher du contenu subversif, rediriger
l'utilisateur vers un autre site ou mme voler des informations du client accessible par le site Web
comme des cookies par exemple.
Avec votre application ASP.NET vous tes protg contre ce genre dattaque, du fait que par
dfaut la variable validateRequestest dfinit true protge contre tout code intrusif et gnre
une exception dans ce cas. Si par contre vous dsirez pouvoir insrer du code HTML dans les entresutilisateur, il sera ncessaire de le dsactiver et vous devrez alors utiliser par exemple une expression
rgulire pour contrer ce genre dattaque. Cette variable est accessible directement depuis votre
Web.config :
Considrons lexemple suivant :
Nous avons un champ texte rempli par lutilisateur et il y insert du code HTML.
En laissant notre variable validateRequest false , tout se passe bien et le code est
interprt. Si nous la passons true nous obtenons ceci :
Il dtecte donc bien un code potentiellement dangereux.
On peut galement, pour ne pas que le code HTML bloque le fonctionnement de notre
application, utiliser la fonction Server.HtmlEncode . Elle nous permettra dobtenir du code
gardant son format HTML mais qui ne sera plus interprt. En ralit le format HTML sera reformat
comme nous allons le voir sur le mme exemple que prcdemment.
Nous utilisons le code suivant : txtbDesc.Text = Server.HtmlEncode(txtbDesc.Text);
-
8/3/2019 Cration d'application d'entreprise
31/54
Date
31 Cration dapplication dentreprise
Voici le rsultat :
Nous avons donc gard lintgralit de notre code mais reformat en HTML pour quil ne soit
plus interprt, en retournant dans le mode dition nous avons alors ceci :
Cette mthode est donc intressante mais ne nous permet pas dutiliser un formatage HTML
tout en empchant lusage de script.
Ayant maintenant vu les tentatives dintrusion les plus connues auxquelles vous serez amen
faire face, nous esprons que votre rflexion dans le dveloppement se fera de faon scurise.
-
8/3/2019 Cration d'application d'entreprise
32/54
Date
32 Cration dapplication dentreprise
12Les testsDans ce chapitre nous aborderons les diffrents tests qui doivent tre raliss avant de mettre
une application en production. En effet, une application correctement teste permet dtre plus
stable. De nos jours, il nest pas concevable de livrer une application non teste un client !
Pour certains les tests peuvent tre considrs comme une perte de temps mais ils ont tout
faux : le gain est norme car le temps pass dbuguer lapplication sen verra rduit dautant plus
que les tests seront importants. En effet, lexcution de tests amnera plus rapidement identifier
les bugs et pourra permettre alors au dveloppeur de les corriger. Le gain dnergie et de temps sera
dautant plus considrable pour le dveloppeur puisquil lui suffira de quelques minutes pour corriger
son code.
Il existe donc plusieurs types de tests raliser :
Les tests unitaires qui permettent de tester, au fur et mesure de lavancement du
dveloppement, les diffrents composants. Les tests dintgration permettant de tester lintgration de chaque composant de
lapplication et le bon fonctionnement entre eux.
Les tests de validation permettant de vrifier que les fonctionnalits de lapplication sont
bien en accord avec la spcification et les demandes du client.
-
8/3/2019 Cration d'application d'entreprise
33/54
Date
33 Cration dapplication dentreprise
12.1Tests unitairesDans cette premire partie nous allons aborder limplmentation des tests unitaires.
Dfinition : Un test unitaire est une portion de code qui va permettre de tester une autre
portion de code en excutant celle-ci et en analysant son rsultat.
Les tests unitaires permettent de rendre une application le plus robuste possible en testant
comment elle ragit diverses situations (erreurs, performances,). De plus, le temps gagn par
lexcution de tests automatiss est trs apprciable !
Il existe plusieurs types de bonnes pratiques pour la mise en place des tests prconises par la
mthodeExtreme programming:
Implmenter les tests unitaires avant dcrire le code afin de pouvoir tester du dbut la fin
du dveloppement de notre portion de code (apple Test Driven Programming).
Il existe aussi la programmation croise qui ncessite deux dveloppeurs : lun implmente
les tests pendant que lautre crit le code.
Implmenter les tests unitaires aprs lcriture du codeafin davoir une vue densemble des
fonctionnalits tester.
Par dfinition, un test unitaire doit pouvoir tre autant disponible que le code quil teste. En
effet un autre dveloppeur doit pouvoir tester la portion de code. De ce fait, il doit aussi tre
excutable sur le poste dun autre dveloppeur : il doit donc tre indpendant de lenvironnement
de travail. Pour assurer un gain de temps optimal, le test unitaire doit pouvoir tre excut
automatiquement : par exemple juste aprs la compilation de la portion de code tester afin de
pouvoir immdiatement rpertorier les ventuels bugs.
Il existe plusieurs Framework de tests qui ont t dvelopp pour
diffrentes technologies. Pour raliser ces tests unitaires nous utiliserons
dans ce cours le Framework de test NUnit.
Ce Framework a t dvelopp par Charlie Poole, Michael Two, Alexei Vorontsov, et Jim
Newkirk dans le langage C#. Cependant, il est utilisable par les langages .NET (C#, VB.NET,).
Ce Framework est totalement gratuit et peut tre tlcharg cette adresse :
http://sourceforge.net/projects/nunit
Sachez quil existe la version console de NUnit qui est install en mme temps que la version
GUI. La version console prsente le logiciel en mode texte et affiche la sortie des tests dans la
console. Cette version ne sera pas aborde dans ce cours.
Une fois linstallation ralise, il suffit de lancer lexcutable pour avoir la fentre suivante qui
souvre :
http://fr.wikipedia.org/wiki/Extreme_programminghttp://fr.wikipedia.org/wiki/Extreme_programminghttp://fr.wikipedia.org/wiki/Extreme_programminghttp://sourceforge.net/projects/nunithttp://sourceforge.net/projects/nunithttp://sourceforge.net/projects/nunithttp://fr.wikipedia.org/wiki/Extreme_programming -
8/3/2019 Cration d'application d'entreprise
34/54
Date
34 Cration dapplication dentreprise
Dans la partie de gauche, on trouve une arborescence qui affichera les classes de tests et les
mthodes de test du projet charg. Pour charger un projet il suffit de venir rcuprer la dll du projet
tester.
Dans la partie droite de lapplication, on peut trouver deux boutons (Run & Stop) et une barrede progression. Ces boutons permettent de lancer/stopper le test dune des mthodes. Le rsultat
du test est affich dans le cadre de la partie basse droite.
Le barre de menu possde les options comme la modification visuelle de laffichage (taille de la
police,), de rcuprer les informations sur lassembly courante ou encore la gestion des Addins.
Sachez quil est possible de charger plusieurs assemblies en mme temps : pour cela cliquer sur
Project Add assembly .
Maintenant que lon sait se servir du logiciel NUnit, nous allons voir comment, dans notre
code, implmenter des mthodes de tests afin de pouvoir les excuter via le logiciel NUnit.
Premirement, pour pouvoir utiliser le Framework NUnit, il faut le rfrencer dans le projet
dans lequel seront crs les tests : Pour cela faire clic droit sur le projet dans Visual Studio
Ajouter une rfrence . Ensuite dans longlet .NET , il faut rfrencer la dll
nunit.framework.dll .
-
8/3/2019 Cration d'application d'entreprise
35/54
Date
35 Cration dapplication dentreprise
Attention bien choisir celle correspondant au runtime v2.0.50727 si vous travaillez avec le
Framework .NET 2.0 ou suprieur.
Nous allons maintenant crer notre mthode tester : cette mthode sera volontairement
trs simpliste.
publicclassClasseATester
{public ClasseATester(){
}
////// Mthode qui vrifie l'exactude du format d'une heure//////publicbool MethodeATester(string email){
if (email == null)
thrownewNullReferenceException();returnRegex.IsMatch(email, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-
9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$" );}
}
Dans cette classe nous avons donc une mthode permettant de tester la validit dun champ
correspondant une adresse e-mail.
Maintenant, nous allons mettre en place les mthodes de test.
Pour quune classe soit interprte par NUnit comme tant une classe de test il faut quelle ait
lattribut[TestFixture] en en-tte de la classe. Dsormais, toutes les mthodes ayant lattribut
[Test] seront leur tour considres comme des mthodes de test.
-
8/3/2019 Cration d'application d'entreprise
36/54
Date
36 Cration dapplication dentreprise
Ces attributs se trouvent dans lespace de noms NUnit.Framework.
Nous allons donc ajouter une classe de test possdant deux mthodes permettant de tester
notre mthode cre prcdemment :
[TestFixture]publicclassClassTest{
public ClassTest(){
}
//////Methode permettant de tester l@ email avec des noms de domaine
errons///[Test]publicvoid TestSansDomaine(){
Assert.IsTrue(newClasseATester().MethodeATester("[email protected]"));Assert.IsFalse(newClasseATester().MethodeATester("test@test"));Assert.IsFalse(newClasseATester().MethodeATester("test@test."));Assert.IsFalse(newClasseATester().MethodeATester("test@"));
}
//////Mthode permettant de tester l@ email sans partie locale///[Test]publicvoid TestSansPartieLocale(){
Assert.IsTrue(newClasseATester().MethodeATester("[email protected]"));Assert.IsFalse(newClasseATester().MethodeATester("@test.com"));Assert.IsFalse(newClasseATester().MethodeATester(" @test.com"));
}}
Lattribut [Test] possde plusieurs attributs supplmentaires qui peuvent tre utiles :
ExpectedException()permet de dfinir quelle sera lexception attendue en sortie.
Si une exception est leve et quil sagit bien du type dexception spcifie en paramtre
de cette mthode alors le test est pass avec succs
Explicit permet dindiquer que la mthode devra tre manuellement excute.Lorsquon clique sur Tester tout dans NUnit, une mthode de test portant cette
attribut ne sera pas excute.
Ignore Les mthodes de test portant cet attribut ne seront pas excutes et seront
marques comme Warning dans NUnit.
Il existe encore dautres attributs qui ne seront pas explicits ici.
Une fois la dll charge dans NUnit, voil laffichage que lon obtient :
-
8/3/2019 Cration d'application d'entreprise
37/54
Date
37 Cration dapplication dentreprise
Lorsquon lance les tests, voici laffichage que lon obtient :
Si un test se droule avec succs il saffiche en vert et en rouge sil y a une erreur. De plus,
lorsquil y a une erreur sur un test, un message indicatif apparait dans la partie en dessous de la barre
de progression.
Pour simuler une erreur dans notre code nous allons modifier lexpression rgulire de notre
classe tester : En supprimant de lexpression rgulire la vrification de la partie locale dune
adresse e-mail, le test TestSansPartieLocale ne sera pas excut avec succs :
-
8/3/2019 Cration d'application d'entreprise
38/54
Date
38 Cration dapplication dentreprise
Dans le code contenu dans les mthodes de tests, on peut noter plusieurs appels aux
mthodes de la classe Assert. Cette classe permet de faire des assertions dans notre code et
permet donc de tester les valeurs de retour des mthodes
tester.
Voici le diagramme de la classe Assert :
Grce toutes ces mthodes, il est donc possible de tester denombreux cas dutilisations :
IsFalse permet de vrifier si lexpression passe en
paramtre est false
IsNull permet de vrifier si lexpression passe en
paramtre est null
Les noms tant assez explicites, nous ne dtaillerons pas plus
les autres mthodes.
-
8/3/2019 Cration d'application d'entreprise
39/54
Date
39 Cration dapplication dentreprise
Les bonnes pratiques pour bien raliser ses tests unitaires sont les suivantes :
Une classe tester = une classe de testen effet autant tester lintgralit de notre classe
dans une seule classe de test possdant plusieurs mthodes de test.
Dvelopper la fois des tests simples et des tests plus consquents afin de tester en
profondeur lapplication pour tre sr de sa robustesse
Enfin, les tests doivent tre dans la mme assembly que les classes tester afin de garder le
bon niveau de visibilit.
Pour conclure sur cette partie, les tests unitaires permettent donc : de gagner du temps sur le
dbogage, une non rgression du code tant donn que les tests sont excuts trs souvent ainsi
quune meilleure documentation.
12.2Tests dintgrationLes tests dintgration permettent de vrifier que les diffrents composants raliss lors de la
phase de dveloppement fonctionnent correctement entre eux et avec le reste de lapplication.
Voyons un exemple simple : Il pourra tre test le bon fonctionnement dun composant
permettant dafficher une liste dutilisateurs et un autre composant permettant dajouter un
utilisateur. Lorsquon ajoutera un utilisateur il devra stre affich dans le composant listant tous les
utilisateurs.
Pour tre bien sr de valider la totalit des composants et de leurs fonctionnalits, il est
fortement recommand de garder une trace de tous ces tests en ralisant des fiches. Dans ces fiches
on pourrait rpertorier deux grandes parties : la prsentation du test dintgration et le rapport de
test afin de garder une trace du rsultat obtenu.
Voici les grandes lignes de ce que lon peut trouver dans la prsentation dun test dintgration :
Lobjectif du test reprenant les diffrents composants tester
Une description permettant de dtailler la dmarche suivre pour raliser le test
Lenvironnement ncessaire (matriel et logiciel)
Le rsultat attendu
Voici une liste non exhaustive des points abords dans un rapport de test dintgration :
La date laquelle a t ralis le test
Les intervenants qui ont ralis le test
Les numros de version des composants intgrs tests
Lenvironnement de test
Le rsultat obtenu ainsi quune partie pour commenter ce rsultat
-
8/3/2019 Cration d'application d'entreprise
40/54
Date
40 Cration dapplication dentreprise
12.3Tests de validationLes tests de validation permettent de vrifier que les fonctionnalits dveloppes sont bien en
accord avec la spcification de dpart ralise en collaboration avec le client. En effet, il parat
vident de vrifier la bonne concordance entre le produit cr et les volonts du client.
Les tests de validation de composent en gnral de plusieurs phases :
Une validation fonctionnelle permettant de tester les fonctionnalits de chaque composant
afin dtre sr quelles correspondent bien la spcification.
Une validation solution permettant de tester les cas dutilisations afin dagrer que
lapplication ragira comme il le faut ainsi que le respect des standards applicables au projet.
Tout comme pour les tests dintgration il est fortement recommand de tenir jour une
documentation de compte-rendu de tests de validation. En effet, il est possible que ce soit des
quipes de dveloppement diffrentes qui testent lapplication de cel les qui dveloppent
lapplication. De ce fait, il est important pour lquipe en charge du dveloppement davoir une trace
de ce qui a t ralis au niveau des tests.
Voici les informations que peuvent contenir une fiche de test de validation :
Lobjectif du test ainsi quune courte description comme par exemple : tester le cas
dutilisation connexion lapplication
La description des actions que lutilisateur doit raliser pour atteindre lobjectif du test
Lenvironnement ncessaire pour mener bien le test
Le rsultat obtenu ainsi quun commentaire
-
8/3/2019 Cration d'application d'entreprise
41/54
Date
41 Cration dapplication dentreprise
13Le dploiement13.1Choix du dploiement de votre application
Il existe aujourdhui plusieurs solutions de dploiement adaptes aux diffrentes contraintes
que lon peut avoir. Il est important de connaitre les possibilits qui nous sont proposes par
Microsoft pour dployer en toute simplicit nos applications.
Dans un premier temps nous tudierons la mthode de dploiement classique, en utilisant un
projet de dploiement. Nous verrons par la suite que dautres solutions existent aujourdhui telles
que ClickOnce qui nous permet une installation trs simple par internet.
13.2Projet de dploiementLe projet de dploiement est la faon la plus classique de dployer votre application. Son
principe est assez simple, vous crez un projet contenant lapplication prcdemment dveloppe
ainsi que les ressources quelle
ncessite.
On commencera par choisir
parmi les diffrents types de projet
disponibles.
On distingue le projet de dploiement (Setup Project) qui sera utilis pour les applications
clientes (Windows Form) et le projet de dploiement Web (Web Setup Project) qui comme son nom
lindique sera utilis pour les applications web.
Le Setup Wizard est un assistant pour crer votre projet de dploiement, seuls les deux
principaux projets de dploiement cits prcdemment seront tudis ici.
Lors de la cration de votre projet de
dploiement, quil soit client lourd ou application web,
vous aurez accs une barre doutils spcifique
reprenant les fonctionnalits suivantes :
- File System editor: Dfinition de l'organisation des fichiers copier.
- Registry Editor: Dfinition des modifications apporter dans la base de registres.- File Types Editor: Permet d'associer une extension de fichier notre application.
- User Interface Editor: Dfinition des diffrentes interfaces qui vont se drouler lors de
l'installation.
- Custom Actions Editor: Cration d'actions personnalises.
- Launch Conditions Editor: Dfinition des conditions de lancement.
Nous allons voir ci-dessous plus en dtail quoi correspondent ces diffrents outils :
-
8/3/2019 Cration d'application d'entreprise
42/54
Date
42 Cration dapplication dentreprise
File System editor
Cest le principal outil dans le dploiement, il va nous permettre de grer toutes
limplmentation de nos fichiers.
La partie de gauche est constitue de multiples rpertoires qui peuvent tre de deux types :
- Rpertoire standard
- Rpertoire spcial (avec ltoile bleue sur le logo)
Les rpertoires spciaux nous permettent daccder diffrents endroits de Windows. Nous
utiliserons ces dossiers par exemple pour dfinir des raccourcis sur le bureau, dans le menu
Dmarrer ou encore des Assemblies (Attention les Assemblies doivent absolument tre signes) :
Dans la partie de droite on pourra venir mettre des fichiers dans les diffrents rpertoires. Ces
fichiers pourront tre de diffrents types :
- Fichiers : permet de choisir des fichiers intgrer
- Dossiers : permet dorganiser les fichiers
- Assemblies : Permet de choisir une Assembly intgrer
- Sorties de projet
Nous allons nous intresser la sortie de projet, qui reprsente le point le plus important :
-
8/3/2019 Cration d'application d'entreprise
43/54
Date
43 Cration dapplication dentreprise
Linterface prsente ici nous permet dajouter une sortie de projet. Cest le moyen dintgrer
notre application au projet de dploiement. Il faudra ensuite choisir parmi les diffrents types de
sortie :
- Sortie principale : L'excutable ou la dll gnre par le projet ainsi que toutes ses
dpendances.
- Ressources localises : Les ressources associes des projets localiss (multi langues. Par
exemple dans le cas des applications Windows).
- Symboles de dbogages : Tous les fichiers pdb qui permettent de dbugger l'application.
Cette sortie n'est pas conseille car gnralement on n'installe jamais la version Debug d'un
projet.
- Content file : Installe les fichiers marqus comme Contenu dans le projet.
Registry Editor
Il peut arriver parfois que lon soit amen modifier la base de
registre. Il est alors bon de savoir quune interface nous permet de la
modifier facilement. On peut ainsi y crer ou y modifier des cls
simplement.
File Types Editor
Dans certains cas, votre application peut tre lie un type
de fichier dfini et il faut alors lier lextension de ce type de fichier
avec votre logiciel. Comme on peut le voir ci-contre, on ajoute
simplement le type de fichier et on lui spcifie son extension.
On pourra galement ici dfinir une icne lie cette
extension et modifier les actions (par dfaut : Open).
-
8/3/2019 Cration d'application d'entreprise
44/54
Date
44 Cration dapplication dentreprise
User Interface Editor
Cet outil vous permettra de configurer linterface dinstallation de votre application cependant
si vous ne dsirez pas le paramtrer, linterface par dfaut sera mise en place.
Vous pourrez donc modifier les tapes de linstallation etdes lments graphiques pour personnaliser votre installeur.
On retrouvera des lments tels que :
- Le Splash : Une image qui s'affiche quelques secondes au
lancement de linstallation.
- La licence : demandant lutilisateur d'accepter les
termes d'une licence
- Numro de srie : Oblige l'utilisateur entrer un numro
de srie afin de poursuivre l'installation.
Custom Actions Editor
Nous ne dtaillerons pas ici les actions personnalises, elles permettent des actions trs
compltes mais ncessite une configuration plus longue notamment en redfinissant la classe
Installeur.
Launch Conditions Editor
Cet outil nous permet de dfinir des conditions dinstallation, comme par exemple la prsence
dune certaine version du Framework .NET, ou encore si IIS es requis pour linstallation.
On commencera par effectuer une recherche qui pourra tre de diffrents types :
- Prsence de fichiers : Permet de rechercher un fichier en fonction de ses paramtres (par
exemple son nom).
- Prsence de cls dans base de registre : Regarde si une cl existe un emplacement donn.
- Prsence d'une installation antrieure d'un MSI : Cette recherche se base sur l'identifiant
d'installation du MSI.
On dfinit ensuite la condition de lancement qui va tre test l'issue de la recherche :
-
8/3/2019 Cration d'application d'entreprise
45/54
Date
45 Cration dapplication dentreprise
Nous avons vu de faon globale comment paramtrer notre projet dinstallation. Nous allons
maintenant dcouvrir quil existe dautres moyens de dploiement.
13.3Click OnceClickOnce quest-ce que cest? Cest un moyen trs simple de dployer une application et de
permettre tout le monde de linstaller par Internet. Cette technique de dploiement peut avoir des
avantages comme des inconvnients. Nous allons dcouvrir comment mettre en place ce genre de
dploiement.
Click Once est une nouveaut du Framework 2.0, il utilise le protocole HTTP pour diffuser
notre projet et permet de linstaller simplement mais galement deffectuer des mises jour. Il faut
savoir que ce type dinstalleur ncessite donc que le client dispose dune connexion Internet et que
nous ayons un serveur Web IIS install.
Dploiement et installation dapplication avec ClickOnce
Nous allons commencer par crer notre projet que lon dsire installer ; On utilisera ici unprojet WindowsForm.
Une fois notre projet compil, nous allons directement le dployer. On va alors dans les
proprits de notre application et on coche la case Sign the ClickOnce manifest (signer le
manifeste ClickOnce) dans longlet Signing .
-
8/3/2019 Cration d'application d'entreprise
46/54
Date
46 Cration dapplication dentreprise
On dfinit ensuite les autorisations de scurit. Il sera bon de les restreindre au maximum,
pour suivre la rgle du moindre privilge aborde dans le chapitre sur la scurit. Vous pouvez
utiliser loutil fournit par Visual Studio Calculer les permissions afin de vrifier les permissions qui
sont ncessaires.
Vient ensuite la partie publication dans longlet Publish . Sur cette page, nous allons dfinir
si lapplication sera publie sur un FTP, un partage rseau ou un serveur IIS. On dfinira galement si
notre application sera accessible uniquement de faon online (retlecharge chaque fois) ou de
faon offline : tlcharge et installe sur le poste client.
-
8/3/2019 Cration d'application d'entreprise
47/54
Date
47 Cration dapplication dentreprise
On va maintenant paramtrer les diffrents points de cet onglet :
- Publishing Location : cest le partage Web depuis lequel votre application sera dploye
et/ou mise jour.
- Install Mode and Settings : on spcifiera ici si votre application doit tre disponible "OnLine"
ou "OffLine".
- Prerequisites : comme vu prcdement avec le projet de dploiement, on pourra dfinir des
pr-requis pour ClickOnce.
- Updates : vous pourrez spcifier dans cette partie si votre application doit ou non vrifier la
prsence de mise jour sur le serveur. On pourra galement dterminer le moment ou
seffectue cette vrification (avant ou aprs le dmarrage de l'application).
- Options : cette partie concerne des informations gnrales.
On paramtrera en premier les pr-requis,
de la mme manire que pour le projet de
dploiement, vous choisirez les lments
ncessaires. Dans le cas o il ne serait pas
install sur le client, on paramtre lendroit o il
peut se le procurer.
Dans les options on dterminera par exemple la
description de notre application, son nom de publication
ou le site web servant de support sil y en a.
Mais dautres parties plus importantes, comme la
page web de dploiement, pourront tre cres
automatiquement. Dans notre cas nous gnrerons une
page Accueil .html qui sera gnre et ressemblera la
page ci-dessous. Cette page nous rcapitule les
informations remplies prcdemment et nous permet
dexcuter lapplication.
-
8/3/2019 Cration d'application d'entreprise
48/54
Date
48 Cration dapplication dentreprise
Un assistant de publication est galement notre disposition, il nous permettra de paramtrer
certains des attributs vus prcdemment, de manire simple.
Nous avons maintenant configur notre dploiement Click Once, il reste alors linstaller .
En excutant le fichier WindowsFormsApplication1.application qui a t cr par ClickOnce
et qui correspond notre application ou simplement en
cliquant sur le bouton Run de notre page web, nous
obtenons une fentre de chargement. Ensuite notre
application est dmarre. De mme dans le cadre dune
installation, nous aurions un bouton Install et notre
application sinstallerait.
Ici nous avons une application sans intrt, qui na aucun contenu mais nous
pouvons voir que le dploiement cest bien effectu.
Mise jour de notre application
Une autre fonctionnalit simple que permet ClickOnce est la mise disposition de mise jouret la dtection de celle-ci.
Dans la page des proprits de notre application, nous irons dans la partie Update et il faut
alors cocher loption pour vrifier les mises jour de lapplication. Ici nous dcidons deffectuer la
vrification avant le lancement de lapplication.
http://localhost/appli/WindowsFormsApplication1.applicationhttp://localhost/appli/WindowsFormsApplication1.applicationhttp://localhost/appli/WindowsFormsApplication1.applicationhttp://localhost/appli/WindowsFormsApplication1.application -
8/3/2019 Cration d'application d'entreprise
49/54
Date
49 Cration dapplication dentreprise
Pour publier une mise jour il faudra simplement aprs avoir reconstruit notre projet, cliquer
sur publier. Lutilisateur lanant son application, aura maintenant une fentre de recherche de mise
jour qui se lancera au dmarrage.
Il me propose alors dinstaller une mise jour
et mon application est alors modifie par la nouvelle
version.
Scuriser votre installeur
Nous avons la possibilit de signer le manifest de notre application ClickOnce ainsi que de
signer notre assembly .NET. Pour cela il nous suffit daller dans la partie Signing ( Signature) et de
choisir loption Sign the assembly .
On choisit alors de crer notre nouveau fichier snk.
-
8/3/2019 Cration d'application d'entreprise
50/54
Date
50 Cration dapplication dentreprise
Rappelons que signer les assemblies .NET est une technique efficace et trs pratique, dans le
cas o vous seriez amen les rutiliser dans dautres projets. Cela vous permet de les inscrire dans
le GAC (Global Assembly Cache) et vous vite ainsi, de devoir redployer la DLL de votre assembly
chaque fois que vous dployez un nouveau projet.
On peut galement utiliser un certificat de scurit pour signer le manifest de votre applicationClickOnce.
ClickOnce est donc un outil trs simple mettre en place, performant et facilement
paramtrable. Cependant, il ne convient pas tous les types de dploiement, notamment parce que
son mode de publication se fait par Internet.
-
8/3/2019 Cration d'application d'entreprise
51/54
Date
51 Cration dapplication dentreprise
14Le travail collaboratif14.1Introduction WSS
WSS ou Windows SharePoint Services est un outil de travail collaboratif
dvelopp par Microsoft.
Cet outil recle de nombreuses fonctionnalits :
Il constitue un portail web et intranet permettant aux membres dune entreprise de pouvoir
centraliser des documents et des informations relatives au travail dquipe : plannings,
espaces de discussions, carnets de rendez-vous, gestions
de tches, etc
Cration et gestion de site webs : il est possible de crer
des applications web bases sur SharePoint. Cesapplications web sont totalement personnalisable grce
entre autres la cration de webparts et masterpages
intgrables aux sites web.
Il constitue aussi une vraie base documentaire grce la
mise en place de stockage/partage de documents de tous
types ainsi que la gestion des droits daccs sur ces
documents. De plus, WSS 3.0 propose une gestion des
versions des documents permettant tout moment de revenir une version antrieure.
Fonctionnalits supplmentaires : cration de blogs, wikis, gestion dalertes et de flux RSS
pour tre au fait de modifications faites sur le portail.
Cet outil permet donc entre autres damliorer la productivit dune quipe grce des outils
faciles utiliser puisque toutes les informations relatives leur travail sont centralises sur une
mme application. De plus, il permet de ce fait, de faciliter la gestion des ressources documentaires
-
8/3/2019 Cration d'application d'entreprise
52/54
Date
52 Cration dapplication dentreprise
et humaines pour les chefs de projets. Enfin, il constitue une base solide pour venir crer des
applications web grce ses fonctionnalits de customisation et de cration.
14.2Introduction Team Foundation ServerTFS ou Team Foundation Server est un produit dvelopp par Microsoft . Cest
aussi un outil de travail collaboratif ; Cependant, il est orient dveloppement
dapplications en .NET et fonctionne avec Visual Studio 2005 ou 2008.
Pour installer Team Foundation Server il faut avoir un serveur sous Windows
Server 2003 ou 2008 avec IIS et SQL Server 2005 ou 2008.
Les utilisateurs du serveur TFS devront possder une version Team System de Visual Studio
(Database Edition, Development Edition, Test Edition ou Architecture Edition). De plus, les
utilisateurs de TFS devront avoir install le plugin Visual Studio Team System Team Explorer. Ce
plugin permet, sous Visual Studio Team System, de se connecter un serveur TFS et ainsi de pouvoir
bnficier des fonctionnalits Team System.
-
8/3/2019 Cration d'application d'entreprise
53/54
Date
53 Cration dapplication dentreprise
Cet outil de travail collaboratif permet une quipe de dveloppement ayant accs un projet
dquipe de pouvoir partager des documents, de pouvoir travailler sur le mme code source en
mme temps et de pouvoir versionner celui-ci. Par exemple deux dveloppeurs peuvent
travailler sur la mme classe en mme temps et au moment de la publication sur le serveur, les
ventuels conflits de version et de collision de code feront le ncessaire pour viter que chacun des
dveloppeurs perdent son travail ou crase celui de lautre. Grce loutil Team Exp lorer il vous sera
possible dtablir des verrouillages afin que les autres dveloppeurs ne puissent pas modifier le
fichier que vous tes en train de modifier.
Pour le chef de projets, lintrt de cet outil nest pas ngligeable : il pourra mettre en place
des lments de travail ou Work Items . Ceux-ci permettront dindiquer aux dveloppeurs des
tches raliser comme la rsolution dun bug, dun composant raliser, etc De plus, le chef de
projet pourra mettre en ligne des documents utiles lquipe (spcifications, diagrammes, etc).
Enfin, il sera possible de crer des rgles dans le contrle de code source afin dimposer vos
dveloppeurs certaines bonnes pratiques : imposer que la solution compile avant de pouvoir publier
la version sur le serveur, imposer un pourcentage de commentaires dans le code.
Comme on peut le voir, Team Foundation Server est un outil trs complet permettant aux
quipes de dveloppement en collaboration trs facilement. Le gain de productivit peut tre
considrablement accru.
-
8/3/2019 Cration d'application d'entreprise
54/54
54 Cration dapplication dentreprise
15Planification dun projetLa planification dun projet est la chose la plus importante dans votre spcification.
Pour cela vous pouvez vous aidez de logiciel tel que MS Project.
Vous pourrez gnrer un diagramme de Gantt qui pourra se synchroniser sur un SharePoint.
Ce qui permettra au client et aux dveloppeurs de connatre le planning et ltat davancement
du projet.