kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et...

86
R APPORT DE STAGE Entreprise SIGMA du 15 mars au 27 août Intitulé : Développer un logiciel de gestion d’affaire … Kévin DE BOCK 26/08/2010 Master Informatique Technologies nouvelles des systèmes d’information et décisionnels Tuteur entreprise : Franck VAN DEN MEERSSCHAUT

Transcript of kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et...

Page 1: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Rapport de stage

Entreprise SIGMA du 15 mars au 27 août

Intitulé : Développer un logiciel de gestion d’affaire …

Kévin DE BOCK

26/08/2010

Master Informatique Technologies nouvelles des systèmes

d’information et décisionnels

Tuteur entreprise : Franck VAN DEN MEERSSCHAUT

Tuteur universitaire : S. PIECHOWIAK

Page 2: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié
Page 3: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Sommaire

1. Remerciements........................................................................................3

2. Introduction...............................................................................................4

3. L’entreprise...............................................................................................5

3.1. La société Sigma................................................................................5

3.2. Organigramme de la société :............................................................6

3.3. Activités de l’entreprise :....................................................................6

4. Le projet....................................................................................................7

4.1. Nature et objectifs du projet...............................................................7

4.1.1. En quoi consiste le projet ?...................................................................7

4.1.2. Analyse de l’existant..............................................................................7

4.1.3. Dans quel but a t-il été réalisé ?............................................................8

4.2. Choix des outils nécessaires à la réalisation de ce projet..................8

4.2.1. L’architecture utilisée.............................................................................9

4.2.2. Le serveur d’application.......................................................................11

4.2.3. La base de données :..........................................................................12

4.2.4. La couche présentation.......................................................................12

4.3. L’application « GesCom² »...............................................................16

4.3.1. Introduction..........................................................................................16

4.3.2. Les fonctionnalités...............................................................................17

4.3.3. La base de données............................................................................20

4.3.3.1. Introduction...................................................................................20

4.3.3.2. Le logiciel PowerAMC..................................................................20

4.3.3.3. Explication de la base de données GesCom²..............................21

4.3.4. Le middleware “ADO.Net Data Services”............................................30

4.3.4.1. Introduction à ADO.Net Data Services.........................................30

1

Page 4: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

4.3.4.2. Infrastructure d’accès aux données.............................................31

4.3.4.3. Les technologies utilisées par ADO .NET Data Services.............32

4.3.4.4. L’architecture REST.....................................................................33

4.3.4.5. Le cas du projet............................................................................34

4.3.5. L’application.........................................................................................35

4.3.5.1. Structure de base.........................................................................35

4.3.5.2. Les interfaces graphiques de l’application...................................36

4.3.5.3. Le système d’impression..............................................................48

4.3.5.4. Le stockage de fichier sur le serveur...........................................49

4.3.6. Le déploiement....................................................................................50

4.4. La migration des données................................................................52

4.4.1. Introduction :........................................................................................52

4.4.2. L’interface graphique...........................................................................52

5. Difficultés rencontrées et solutions apportées........................................54

5.1. La migration des données................................................................54

5.2. Le serveur ADO.net data services...................................................54

6. Conclusion..............................................................................................55

7. Bibliographie...........................................................................................57

8. Annexes..................................................................................................58

2

Page 5: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

1. REMERCIEMENTS

Je tiens à remercier, dans un premier temps, Monsieur WATTREMEZ Jean-Marie,

PDG du groupe Sigma, pour son accueil et la confiance qu’il m’a accordé dès mon

arrivée dans l’entreprise.

Je tiens également à remercier monsieur Franck VAN DEN MEERSSCHAUT,

responsable informatique et mon tuteur, pour m’avoir intégrer rapidement au sein

de l’entreprise et m’avoir accordé toute sa confiance ; pour le temps qu’il m’a

consacré tout au long de cette période.

Je tiens à remercier tout particulièrement et à témoigner toute ma reconnaissance

aux personnes suivantes, pour l’expérience qu’ils m’ont apporté durant ces six

mois de stage :

Monsieur MOURONVAL Stéphane, DUCROQUET Sébastien et DELBECQUE

Christian, développeur informatique, pour leur aide durant le développement du

projet.

L’ensemble du personnel de Sigma pour leur accueil sympathique et leur

coopération professionnelle tout au long de ces six mois.

3

Page 6: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

2. INTRODUCTION

Dans le cadre de mon Master Informatique Technologies nouvelles des systèmes

d’information et décisionnels, un stage de 5 à 6 mois est programmé. Celui-ci s’est

déroulé pour moi au sein de l’entreprise SIGMA du 15 mars 2010 au 26 aout

2010.

J’ai été affecté au service informatique en tant que « développeur d’application »

avec comme objectif la réalisation d’un logiciel de gestion d’affaire.

Dans un premier temps, je vous présenterai brièvement l’entreprise.

Ensuite, j’aborderai le projet, avec la nature et son objectif, ainsi que les différents

outils utilisés et également l’application réalisée.

Enfin, je terminerai par les difficultés rencontrées et les solutions apportées ainsi

qu’une conclusion.

4

Page 7: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

3. L’ENTREPRISE

3.1. La société Sigma

SIGMA est une jeune entreprise née en mai 1998. Elle a appartenu au groupe 2M

jusqu’en décembre 1999, elle est à ce jour autonome.

SIGMA était implantée à saint Amand les eaux et depuis janvier 2002 s’est

installée à Sars et Rosières.

Il s’agit d’une société de service dont les activités s’orientent vers différents

domaines :

l’automatisme   :

Etude, analyse fonctionnelles et organiques

Programmation et installation de systèmes automatisés, etc.

l’électricité industrielle  : Etude et réalisation de plans. Câblage d’armoires

Informatique industrielle  : Logiciel de suivi de process, Gestion de qualité,

de traçabilité, gestion d’entrepôt. codes barres, mesure sans contact et

vision.

5

Page 8: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Courant Faible   : Téléphonie, câblage réseau et fibre optique,

vidéosurveillance et alarme.

SIGMA est une S.A. au capital de 80 000€ et ayant un chiffre d’affaire de 1,9

Million d’euros en 2009. Elle emploie actuellement 40 personnes réparties dans

les domaines cités précédemment.

Aujourd’hui, SIGMA est à la tête de 2 filiales à savoir TECHTRA et ARIA.

3.2. Organigramme de la société :

3.3. Activités de l’entreprise :

6

Directeur :

Mr Jean Marie

Téléphonie :

Mr Pascal CARLIER

Electricité :

Mr Pascal LESOIN

Automatisme   : Mr Silvère MAES

Informatique   : Mr Franck VAN DEN MEERSSCHAUT

Page 9: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

18%

23%

8%4%12%

23%

12%

Répartition de notre clientèle par secteurs

d'activités

Chimie MétallurgiePapeterie Automobile

7

Page 10: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

4. LE PROJET

4.1. Nature et objectifs du projet

4.1.1. En quoi consiste le projet ?

Le projet qui m’a été confié durant ce stage, est la réalisation d’un logiciel de

gestion d’affaire. Celui-ci permet le suivi et la gestion de l’entreprise SIGMA mais

également de ses filiales ARIA et TECHTRA. Il a été nommé GesCom².

Ce logiciel permet de gérer différentes parties de l’entreprise :

Tout d’abord, la gestion de ses clients, fournisseurs et contacts.

Puis la gestion de ses chantiers, commandes et factures.

La gestion des filiales

Administration du logiciel.

Et enfin la gestion des pointages.

J’aborderai plus tard le détail de ces fonctionnalités.

4.1.2. Analyse de l’existant

SIGMA avait depuis 10 ans un logiciel, GeSigma, qui possédait une partie des

fonctionnalités cité précédemment. Celui-ci avait été développé en VB6 avec une

base de données Access.

L’entreprise SIGMA s’étant agrandit grâce aux filiales ARIA et TECHTRA, la

centralisation des données est devenue un problème majeur. En conséquence, Le

logiciel GeSigma a dû être dupliqué à savoir GesAria et GesTechtra .La base de

données a également du être reproduite à l’identique.

8

Page 11: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

De plus, l’effectif a également augmenté, ce qui a posé quelques problèmes

d’accès aux fichiers Access sur le réseau de l’entreprise. L’accès à un fichier par

plusieurs personnes simultanément peut parfois provoquer des erreurs du logiciel

Access.

4.1.3. Dans quel but a t-il été réalisé ?

GesCom² a été réalisé dans le but de résoudre les problèmes cités précédemment

Mais également de préparer l’avenir de l’entreprise SIGMA et donc apporter une

nouvelle solution logiciel qui permettrai d’accéder plus facilement aux informations

de l’entreprise, d’avoir une interface utilisateur plus attractive et plus ergonomique

et enfin d’augmenter la productivité des employés en facilitant la saisie de

données telle que les commandes fournisseurs etc.

4.2. Choix des outils nécessaires à la réalisation de ce projet

Afin de mettre en œuvre ce projet, j’ai tout d’abord comparé différentes

technologies les plus appropriées.

Je me suis, dans un premier temps, intéressé à l’architecture à utiliser.

9

Page 12: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

4.2.1. L’architecture utilisée

L’objectif principal, comme dit précédemment, est la centralisation des données.

Pour cela, j’ai opté pour une architecture 3 tiers.

Tout système d'information nécessite la réalisation de trois groupes de fonctions:

Le stockage des données,

La logique applicative

La présentation.

Ces trois parties sont indépendantes les unes des autres: on peut ainsi vouloir

modifier la présentation sans modifier la logique applicative. La conception de

chaque partie doit également être indépendante.

Le principe d'une architecture trois-tiers est relativement simple:

10

Page 13: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Il consiste à séparer la réalisation des trois parties vues précédemment (stockage

des données, logique applicative, présentation). Ici il s'agit de séparer leur

implantation. Tout comme dans le client-serveur cette séparation signifie qu'il est

possible de déployer chaque partie sur un serveur indépendant, toutefois cela

n'est pas obligatoire. La mise en place de ce type d'architecture permet dans tous

les cas une plus grande évolutivité du système. Il est ainsi possible de commencer

par déployer les deux serveurs sur la même machine, puis de déplacer le serveur

applicatif sur une autre machine lorsque la charge devient excessive. Les

éléments permettant la réalisation classique d'un système en architecture trois

tiers sont les suivants:

système de base de données relationnel (SGBDR) pour le stockage des

données

serveur applicatif pour la logique applicative

Application lourde ou navigateur web pour la présentation

Avantages d’une architecture 3 tiers   :

Les avantages de l'architecture 3-tiers sont principalement au nombre de quatre :

Les requêtes clients vers le serveur sont d'une plus grande flexibilité que

dans celles de l'architecture 2-tiers basées sur le langage SQL.

Cette flexibilité permet à une entreprise d'envisager dans le cadre d'une

architecture 3-tiers une grande souplesse pour l'introduction de toutes

nouvelles technologies.

D'un point de vue développement, la séparation qui existe entre le client, le

serveur et le SGBD permet une spécialisation des développeurs sur

chaque tiers de l'architecture.

Plus de flexibilité dans l'allocation des ressources; la portabilité du tiers

serveur permet d'envisager une allocation et ou modification dynamique

aux grés des besoins évolutifs au sein d'une entreprise.

11

Page 14: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

- Inconvénients d'une architecture 3-tiers

Les inconvénients sont au nombre de deux :

Une expertise de développement à acquérir qui semble plus longue que

dans le cadre d'une architecture 2-tiers.

Les coûts de développements d'une architecture 3-tiers sont plus élevés

que pour du 2-tiers, au début semble t'il, d'après une étude du cabinet

Gartner.

4.2.2. Le serveur d’application

Les technologies utilisées par SIGMA étant plus orienté Microsoft, j’ai opté pour

ADO.NET Data Services pour la réalisation de la partie serveur d’application.

J’expliquerai plus en détail cette partie dans la suite du rapport.

12

Page 15: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

4.2.3. La base de données :

Au niveau de la base de données, on a décidé d’utiliser MySQL.

MySQL qui est une solution très courante en hébergement public, grâce à sa très

bonne intégration dans l'environnement Apache/PHP et une bonne rapidité. Il est

très stable, même avec un grand nombre d'enregistrements. Un des avantages

est donc une énorme communauté d'utilisateurs, ce qui en facilite le support en

cas de problèmes. De plus, MySQL est gratuit, sauf pour certaines utilisations.

Du point de vue des performances MySQL est relativement rapide et supporte

bien la charge. Ceci s'explique par le fait que MySQL est un SGBD qui a été

conçu à l'origine pour être performant sur des serveurs web, donc destiné aux

applications web, dont le critère principal est la rapidité.

4.2.4. La couche présentation

Pour cette partie, je suis également resté dans le monde de Microsoft, en utilisant

sa dernière technologie de présentation des données à savoir WPF (Windows

présentation foundation).

Introduction à WPF   :

Pour ce qui est de .Net, on a le choix entre les WinForms, et depuis la sortie du

Framework .Net 3.0 (2006) avec Windows Vista : WPF.

13

Page 16: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Avant WPF

Comme on a pu l’énoncer précédemment, WPF est très récent étant donné qu’il

est apparu avec le Framework .Net 3.0. Avant il n’y avait que les WinForms.

Les WinForms, c’est le nom donné à la partie du Framework .Net, responsable de

la partie interface utilisateur (GUI). Les WinForms apparaissent similaires aux

Forms du langage Visual Basic 6 tout en ayant apporté leur lot d’avantages. En

effet, elles sont très faciles à prendre en main et très orienté objet.

Pourquoi WPF   :

A la sortie de Windows Vista, on voit apparaitre des effets 3D et en même temps

la sortie du .Net Framework 3.0. Pourquoi ? Microsoft s’est aperçu que les

WinForms n’étaient pas vraiment adaptés (pour de nombreuses raisons

techniques telles qu’elles ne sont pas forcément des plus aisées à personnaliser).

Elles posent également un problème au niveau du travail collaboratif entre

designers et développeurs.

WPF apporte son lot de nouveautés qui facilitent le « design » de la GUI. Par

exemple, on peut citer les graphismes vectoriels, la transparence par pixel, les

animations, l’adaptation à la résolution, le support des templates de data binding,

et bien d’autres…

14

Page 17: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Avantages de WPF   :

Utilisation du GPU

Un des principaux changements avec WPF c’est l’utilisation du GPU. Le fait que

WPF utilise le GPU change énormément de choses. En effet cela permet de

déléguer une partie du travail, habituellement délégué au microprocesseur (CPU),

au processeur graphique qui va se charger de la manipulation de données

graphiques. Ce n’est pas votre GPU qui va se charger des traitements

conditionnels... Non pas qu’il ne puisse pas le faire, mais tout simplement parce

qu’il n’est pas optimisé pour de tels traitements.

Les GPU étant de plus en plus puissant et nos applications de plus en plus « jolies

» et par conséquent lourdes… le fait que WPF utilise le GPU n’est pas inutile tout

au contraire.

Séparation code / design

Lors du développement d’une application en collaboration avec des designers et

d’autres développeurs, un problème majeur se poser. En effet pour customiser

une application, le designer devra avoir des compétences en développement, il va

devoir connaître les objets de votre application et les fonctionnalités des

WinForms…

15

Page 18: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

C’est là que WPF permet justement de séparer en couches l’application.

WPF va se charger de séparer le code designer du code behind (classe d’arrière

plan). C'est à dire que le designer va pouvoir travailler sur le design de

l’application, via un langage commun basé sur du XML qui est le XAML. Quant au

développeur de son côté via le code behind il va pouvoir travailler sur la couche

métier. Cela va permettre une meilleure productivité et un support de l’application

plus facile par la suite.

WPF offre plus de possibilités comme on a pu le voir et plus de « puissance ».

C'est‐à‐dire que par exemple grâce à WPF et Expression Blend on va pouvoir

mettre en place des animations pour notre application, de façon vraiment très

simple et très rapide. Cela augmente d’une part la productivité du développeur,

celle du designer et pour finir l’ergonomie de l’application pour l’utilisateur final.

De plus on peut parler de la puissance de WPF au niveau du Data Binding

(liaisons de données).

16

Page 19: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Inconvénients   :

Le principal problème de WPF reste le même que les WinForms c'est‐à‐dire

l’interopérabilité de ce dernier. En effet on ne peut pas, dans l’état actuel des

choses, faire du WPF sous linux sous Mac OS ou d’autres systèmes… Le seul

portage de .NET fait sur les autres systèmes reste mono et mono ne supporte

actuellement pas le WPF.

Egalement on peut citer un inconvénient normal qui est le manque de maturité de

WPF. En effet, WPF est arrivé avec le Framework .NET 3.0. C’est une technologie

qui a actuellement plus de 2 ans (depuis 2006). Ainsi, les communautés

concernant WPF restent peu développées, et les entreprises commencent à peine

à se pencher dessus.

4.3. L’application « GesCom² »

4.3.1. Introduction

L’application GesCom² devra comme dit précédemment être plus conviviale à

l’utilisation et permettra d’accéder aux données plus facilement.

Le langage de développement utilisé est donc un client lourd à savoir une

application WPF.

L’accès aux données se fera par une tierce applicative (le serveur d’application)

qui est ADO.Net Data Services.

La base de données utilisée est le SGBD MySQL.

17

Page 20: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

4.3.2. Les fonctionnalités

L’application GesCom² devra répondre au cahier des charges suivant :

gestion des clients

o ajout

o modification

o suppression

o ajout de contacts aux clients

o bilan de chaque client

o impression des clients

gestion des fournisseurs

o ajout

o modification

o suppression

o ajout de contacts aux fournisseurs

o bilan des fournisseurs

o graphique d’évolution du montant des commandes par années

o impression des fournisseurs

gestion des contacts

o ajout

o modification

o suppression

18

Page 21: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

gestion des chantiers

o ajout

o modification

o Facturation des chantiers

o Passer une commande pour les chantiers

o créer des bons de livraisons

o bilan sur les chantiers

visualisations des commandes des chantiers

liste des produits à réceptionner

liste des factures

détail du chantier

établissement du résultat global du chantier (prise en

compte des pointages)

passer des commandes

o création dune commande auprès des fournisseurs

o modifier les commandes

o visualiser les commandes

o réceptionner les commandes

o copier coller de ligne de commande (pour faciliter la saisi de

données)

o impression de commande

Gestion des factures

o ajout

o modification

o impression

19

Page 22: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

les bons de livraison

o ajout

o modification

o impression

gestion des pointages

o pointages par personnel

ajout

modification

suppression

détail des pointages

o gestion des pointages par les chefs de services

Administration de l'application

o gestion des droits d'accès du personnel

o gestion du personnel

o gestion des ordinateurs connectés (permet d’autoriser ou non l’accès

aux fonctionnalités au démarrage de l’application).

o gestion des filiales

o gestion des logs (traces des opérations effectuées : ajout d’un

chantier, modification d’une facture, etc.).

o modification de l’adresse du server ADO.Net.

o gestion de son compte personnel

Permettre de stocker des fichiers sur des commandes, ligne de

commandes ou chantiers.

20

Page 23: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

4.3.3. La base de données

4.3.3.1. Introduction

J’ai implanté la base de données avec le logiciel Xampp qui est un logiciel qui

contient un package de différentes choses :

Apache : il s'agit du serveur web.

PHP : il communique avec apache et permet de traiter les pages PHP.

MySQL : il s'agit du SGBD utilisé.

PHPMyAdmin : Grâce à PHPMyAdmin, on dispose d'une interface de

gestion des bases de données.

4.3.3.2. Le logiciel PowerAMC

Pour réaliser la base de données, j’ai utilisé le logiciel powerAMC qui m’a permis

de générer le script SQL.

Voici un exemple d’utilisation du logiciel   :

21

Page 24: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Pour réaliser les différentes tables et relations, il suffit de glisser déposer les

objets souhaités grâce à l’outil palette.

Lorsque le modèle conceptuel de données nous convient, il faut générer un script

SQL. Cela permet d’importer directement dans la base MySQL le script générer.

4.3.3.3. Explication de la base de données GesCom²

La base de données GesCom² a donc été réalisée avec powerAMC. Elle

comporte 45 tables permettant de gérer l’application.

22

Page 25: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Facturation de chantiers   :

Cette image décrit comment est gérée la partie facturation d’un chantier.

Description d’un chantier   :

Un chantier, est en faite, une commande d’un client. Par exemple, le client CIC de

valenciennes demande à SIGMA d’effectuer une modification de leur réseau. Cela

figure comme un chantier chez SIGMA.

23

Page 26: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Description d’un chantier au niveau du MCD   :

Au niveau modèle conceptuel de données :

Un chantier possède un identifiant unique.

Un numéro interne à sigma (exemple 265 10 156. qui correspond au client

256, de l’année 2010 et un numéro incrémentale à l’année de 156)

Il appartient à une filiale.

Il possède un client, un contact.

Il possède une description au niveau des couts, à savoir sa main d’œuvre

prévue et sa main d’œuvre réelle

Il contient plusieurs factures clientes.

Il contient également diverses informations relatives aux chantiers

(montant, intitulé, etc.).

Description de la facturation   :

Une facture est le fait de facturer un client pour un chantier.

Exemple : Le montant de mon chantier pour le client CIC de valenciennes est de

2000€. On peut établir par exemple, plusieurs factures pour ce client de 2 fois

1000€ à des dates différentes.

24

Page 27: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Description de la facturation au niveau du MCD   :

Au niveau du MCD, cela se traduit par une table facture qui contient :

Un identifiant

Un numéro de facture interne à sigma (exemple : 10 0379, qui correspond

à l’année 2010 et du numéro incrémentale à l’année de 379).

Diverses informations pour une facture.

Un type de facture (facture définitive, acompte, etc.).

Un mode de règlement (cheque, virement, etc.).

Un texte de règlement (facture à 45 jours fin de mois, etc.).

Un détail de facture (possédant une désignation et un montant).

25

Page 28: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Les commandes pour les chantiers   :

La partie commande permet à SIGMA d’effectuer des commandes auprès de leurs

fournisseurs.

Description de la partie commande   :

Une commande est passée chez un fournisseur pour un chantier.

Pour gérer les commandes, il y a 2 tables principales : commandes et

lignecommande.

Une commande peut être passée pour plusieurs chantiers. C’est pourquoi on

mémorise l’identifiant du chantier dans la table lignecommande.

26

Page 29: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Pour gérer la réception des commandes, il s’agit des tables livrer et livraison. Ce

système permet de réceptionner un même produit d’une commande à des dates

et quantités différentes.

Exemple :

Commande : 10 08 101 :

Produit 1, qte=5

Produit 2, qte=2

A la réception on peut avoir :

Livraison 1, date : 17/07/2010 :

produit 1, qte=3

Produit 2, qte =2

Livraison 2  date : 20/07/2010:

produit 1, qte=2

Description de la partie commande au niveau du MCD   :

La table commande possède :

Un ID unique

Un numéro de commande interne (ex : 10 08 101 qui correspond à l’année

2010, le mois d’aout et du numéro incrémentale 101).

Elle appartient à une filiale

Un fournisseur

Une collection de ligne de commande (produits)

27

Page 30: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Un champ permettant de savoir si la commande a été validée (tous les

produits on été réceptionnés).

Un champ informant l’état de conformité actuelle de la commande (produits

manquant, problème de prix à la réception).

Diverses informations.

La table Lignecommande possède :

Un identifiant unique.

Les informations sur le produit.

L’identifiant d’un chantier.

La table Livraison possède :

Un identifiant unique.

Une date de livraison.

Un numéro de BL.

La table livrer possède :

L’identifiant de livraison.

L’identifiant de la ligne de commande.

Une quantité réceptionnée.

28

Page 31: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Gestion des clients/fournisseurs   :

Cette partie de la base de données, permet de gérer les clients, fournisseurs et

contacts de l’entreprise. Elle est commune à toutes les filiales de SIGMA.

Description   :

Un client et un fournisseur possède plusieurs contacts.

Un personnel appartient à une filiale et un service.

29

Page 32: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Description au niveau du MCD   :

Dans ce modèle, on a 2 héritages :

Tout d’abord, on à l’héritage Entreprises, fournisseurs et clients. Un client et un

fournisseur hérite de la table entreprises car elle possède des informations

communes à savoir : les adresses, nom, etc.

Puis, on a l’héritage Personnes, personnels, contacts. Un personnel et un contact

hérite de la table personnes.

Gestion des droits d’accès   :

30

Page 33: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Description de la gestion des droits   :

Un personnel appartient à plusieurs groupes sur les filiales.

Ces groupes possèdent des droits d’accès aux différentes fonctionnalités.

Exemples   :

Personnel : Kévin DE BOCK

o Appartient aux groupes informatiques et chef de services.

L’attribution des droits s’effectuent en prenant le droit du plus haut niveau des

groupes auxquels il appartient.

4.3.4. Le middleware “ADO.Net Data Services”

4.3.4.1. Introduction à ADO.Net Data Services

ADO .NET Data Services est un ensemble de composants du Framework .NET,

permettant donc la création de services génériques, interopérables et utilisables

dans de diverses applications (Silverlight, WinForms, WPF, ASP .NET, …).

ADO .NET Data Services repose sur l’utilisation combinée de WCF, LINQ To SQL,

Entity Framework et ADO.Net ainsi que l’architecture REST. Cela permet de

requêter une base de données, de gérer les données en mode CRUD (Create

Read Update et Delete), en envoyant des requêtes HTTP à destination de

services WCF déployés sur serveur IIS, une application console ou un service

Windows.

31

Page 34: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

4.3.4.2. Infrastructure d’accès aux données

32

Page 35: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Sur ce schéma on peut observer que la couche WCF, propose des services,

exposant et permettant de gérer les données d’une base de données. Ces

données sont donc accessibles :

Directement depuis un navigateur.

Depuis une application .NET, il suffira de créer une référence de service,

générant une classe Proxy, se chargeant d’exposer toutes les méthodes

que l’on pourra utiliser sur nos données au travers du service distant.

4.3.4.3. Les technologies utilisées par ADO .NET Data Services

ADO .NET Data Services utilise deux langages, pour transmettre les données

contenues dans une source de données, à une application cliente :

Le langage JSON (JavaScript Object Notation) :

Le langage JSON (JavaScript Object Notation) permet de créer un flux de

données. Il constitue une alternative au langage XML, car il est plus concis et

nativement interprété par le JavaScript. Il est principalement utilisé lors du

développement d’applications Web avec Ajax.

Le langage ATOM (Atom Publishing Protocol).

Le langage ATOM (Atom Publishing Protocol) est un langage basé sur le langage

XML. De ce fait, il respecte ses spécifications. Le groupe de travail IETF (Internet

Engineering Task Force) a défini les spécifications de ce langage.

Pour ma part, j’ai utilisé ce langage pour transmettre mes données.

ADO .NET Services est basée sur l’architecture REST (Representational State

Transfer).

33

Page 36: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

4.3.4.4. L’architecture REST

L’architecture REST (Representational State Transfer) est une architecture

orientée ressources. Autrement dit, il faut voir chaque donnée dans notre base

comme une ressource à laquelle on peut accéder au travers d’un service. Une

base de données est considérée comme un dépôt de ressources. Le principal

objectif d'ADO.NET Data Services est de créer une infrastructure basée sur REST

(Representational State Transfer) pour permettre à des applications clientes :

D’obtenir des données, pour les afficher, les traiter…

D’utiliser des services centrés sur les données.

Pour cela, ADO.NET Data Services utilise des commandes HTTP liées au

protocole REST :

POST : permet d’ajouter, de mettre à jour ou de supprimer une ressource

du dépôt (Create, Update, Delete).

GET : permet de lire une ressource (Read).

PUT : permet de créer ou de mettre à jour une ressource (Create, Update).

DELETE : permet de supprimer une ressource (Delete).

34

Page 37: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Voici un schéma présentant cette infrastructure :

4.3.4.5. Le cas du projet

Utilisant une base de données MySQL, Visual studio contient par défaut le

connecteur à la base de données MS SQL server. Cependant dans mon cas, j’ai

dû télécharger le connecteur approprié sur le site officiel de MySQL

http://dev.mysql.com/downloads/connector/net/ .

Grâce à cela, Visual studio à pu reconnaitre ma base de données MySQL et il m’a

donc été possible de mapper les tables de ma base de données en objets.

35

Page 38: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Pour déployer mon service ADO.net, j’ai réalisé un service WCF hébergé dans un

service Windows qui s’occuperai d’exposer les données de mon service.

Voir en annexe 1 le résultat obtenu après avoir démarré mon service.

4.3.5. L’application

4.3.5.1. Structure de base

Comme dit précédemment, j’ai développé cette application dans le langage WPF

C#.

Dans un premier temps, je me suis intéressé à comment afficher mes différents

formulaires tels que : gestion des clients, chantiers, etc. Après m’être informé sur

internet, je me suis orienté vers un mode d’affichage au style d’un navigateur web

à savoir des onglets (Il s’agit du composant TabControl).

Souhaitant également une ergonomie conviviale et plaisante à utiliser, j’ai

découvert sur le site internet http://wpf.codeplex.com/ la possibilité d’utiliser le

ruban de Microsoft. Il s’agit du menu de la série Office de Microsoft tel que Word,

Excel 2007 etc. Les boutons de ce ruban contiennent les fonctionnalités de

l’application GesCom².

Voici un exemple de ruban   :

36

Page 39: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

L’application GesCom² va donc être sous la forme suivante :

4.3.5.2. Les interfaces graphiques de l’application

Je vais vous présenter ci-après différentes parties graphiques de l’application.

37

Page 40: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

La gestion des fournisseurs   :

Cette interface nous permet de gérer les fournisseurs ainsi que les contacts des

fournisseurs. En cliquant sur le bouton « fournisseurs » du ruban, l’interface

« gestion des fournisseurs » s’est ajoutée aux onglets et à également ajouté les

fonctionnalités spécifiques à cette gestion dans le ruban. Ici, le groupe

« fournisseurs » avec le bouton « ajouter un fournisseur » et également des

critères de filtrage. Ici juste le filtre par nom était nécessaire.

Bien évidemment, il est également possible de trier cette liste en cliquant sur les

colonnes.

38

Page 41: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

En double-cliquant sur un fournisseur en particulier on accède au bilan du

fournisseur :

Sur ce bilan, nous avons donc la liste des commandes passées auprès de ce

fournisseur. On a également des fonctionnalités sur cette interface qui sont des

filtrages sur les années ainsi qu’un graphique représentant l’évolution du montant

des commandes par années.

La gestion des clients et des contacts sont similaire à la gestion des fournisseurs.

39

Page 42: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

La gestion des chantiers   :

Cette interface nous montre la gestion des chantiers. Pour chaque chantier, on a

les fonctionnalités telles que modifier le chantier, passer une commande, facturer

le chantier, et créer un bon de livraison.

Dans le ruban, nous avons la possibilité d’ajouter un nouveau chantier ainsi qu’un

système de filtrage plus approfondis.

Si nous double-cliquons sur un chantier, nous accédons à son bilan :

40

Page 43: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Sur cette interface nous avons :

Le détail du chantier.

Sa main d’œuvre prévue et sa main d’œuvre réelle.

La liste des commandes du chantier.

La liste des produits qui sont à réceptionner.

La liste des factures du chantier.

Le résultat global du chantier en tenant compte des salaires des employés

grâce aux pointages que nous verrons par la suite et aux couts des trajets

en véhicule jusqu'au client.

41

Page 44: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Passer une commande   :

Dans cette interface, on crée des commandes.

Les zones de texte sont des assistants à la saisie pour gagner en rapidité. Par

exemple, en commençant à taper une référence, celle-ci nous complète notre

référence et inscrit directement la désignation, la marque et le prix de la ligne de la

référence sélectionnée.

Celle assistant à la saisie s’utilise pour choisir un chantier, une référence, une

marque et les fournisseurs.

42

Page 45: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

On peut également remarquer qu’il est possible de coller des lignes de

commande. Pour cela, il faut ouvrir la commande souhaitée :

Puis, on sélectionne les lignes de commande souhaitées en les cochant et on

clique sur le bouton « Copier les produits ».

Enfin, on retourne dans l’onglet de notre commande et on clique sur « coller les

produits » :

43

Page 46: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Réception de commande   :

Ici nous pouvons réceptionner les différentes commandes ayant été enregistrées.

Il est possible pour chaque ligne de commandes de préciser s’il y a un litige

(référence de produit non conforme, prix non conforme, etc.).

On peut également faire des recherches de commandes par rapport aux

fournisseurs, numéro de commande et l’année.

44

Page 47: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Visualisation des commandes   :

Dans cette interface, on a la liste des commandes. Les commandes peuvent

prendre 3 états :

Commande Réceptionnée entièrement : La commande est en verte et ne

peut plus être modifiée.

Commande à réceptionner : La commande est en blanc si sa date de

réception n’est pas dépassée et qu’elle ne possède aucun litige sinon elle

figure en rouge.

Il est possible également de filtrer et trier la liste mais également d’effectuer une

recherche plus fine en cliquant sur le bouton « rechercher » dans le ruban. On

obtient cette interface.

45

Page 48: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

J’ai recherché ici, toutes les commandes où elles contiennent une désignation de

produit contenant le texte « portable ».

Facturation d’un chantier   :

46

Page 49: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

La facturation s’effectue sur un chantier.

Pour cela, il faut sélectionner :

Un type de facture

Un mode de règlement

Un texte de règlement

Une adresse cliente de facturation

Et également, ajouter le détail de la facture (une désignation et un montant).

La gestion des pointages   :

47

Page 50: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Dans cette interface, il est possible d’effectuer des pointages sur des chantiers.

Le pointage s’effectue quotidiennement.

On inscrit :

Le nombre d’heure travaillée sur un chantier.

le nombre d’heure de route.

Si la journée possède un grand déplacement (un Grand déplacement est le

fait de dormir à l’extérieur. Cela comprend un repas + une nuit

d’hébergement).

Si la journée possède un panier (un panier correspond à un repas).

Dans l’onglet pointage, on a accès aux détails de ses pointages :

48

Page 51: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Ici, nous avons le bilan des pointages du personnel.

Cela nous affiche par mois, le nom d’heure travaillée, le nombre d’heure de route,

le nombre grand déplacement et de panier.

4.3.5.3. Le système d’impression

Pour réaliser l’impression des factures, commandes, etc., j’ai utilisé un composant

se nommant « Document fixes ».

Explication des documents fixes   :

Les documents fixes sont prévus pour les applications qui requièrent une

présentation WYSIWYG (« tel affichage, tel résultat ») précise, particulièrement en

ce qui concerne l'impression .Les documents fixes sont principalement utilisés

pour la Publication Assistée par Ordinateur (PAO), le traitement de texte et la

présentation d'un formulaire, où le respect de la conception de la page d'origine

est essentiel.

Ils sont écrits dans le langage XAML. Voir en annexe 2 un exemple de document

fixe. Ce code affiche la facture d’un chantier. Le résultat figure en annexe 3.

Ce système d’impression a été réalisé pour la liste des clients/fournisseurs, les

commandes, les factures, la réception de commande et les bons de livraison.

49

Page 52: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

4.3.5.4. Le stockage de fichier sur le serveur

Comme dit précédemment, l’application doit être capable de stocker des fichiers

sur le serveur.

Pour réaliser ce système, j’ai réalisé un autre service WCF, s’occupant

uniquement d’enregistrer et restituer un fichier du serveur.

Voici l’interface de mon service   :

[ServiceContract()] public interface IFileTransfer { [OperationContract] string GetFileNameComplet(string filename,Opération operation,long id);

[OperationContract] bool UploadFile(string filename, byte[] data);

[OperationContract] byte[] DownloadFile(string filename);

[OperationContract] bool ExistFile(string filename);

}

Le format d’enregistrement des fichiers est le suivant :

Par exemple si on enregistre un fichier se nommant « devis CIC VA.pdf » pour la

commande dont l’Id est 13677. On aura donc sur le serveur un fichier du type :

«  ».

Ceci permet de bien identifier le fichier et ainsi éviter d’avoir le même nom de

fichier.

Si un même nom de fichier pour la même commande devait être enregistré alors

le fichier serait « devis CIC VA_Commande_13677_2.pdf ».

50

Page 53: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Le nom complet du fichier est stocké en base de données. Il est possible d’ajouter

plusieurs fichiers pour une commande.

On aurait alors en base de données le format suivant :

« \\192.168.1.254\Fichiers GesCom2\Commandes\ devis CIC

A_Commande_13677 _1.pdf  | \\192.168.1.254\Fichiers GesCom2\Commandes\

devis CIC VA_Commande_13677_2.pdf   »

Chaque fichiers sont séparés par la barre verticale « | ».

4.3.6. Le déploiement

Afin de déployer l’application sur tous les postes qui seront amenés à utiliser

GesCom², J’ai utilisé le déploiement ClickOnce ainsi qu’un BootStrap.

ClickOnce est une technologie de déploiement qui permet de créer des

applications Windows à mise à jour automatique et pouvant être installées et

exécutées avec un minimum d'intervention de l'utilisateur. Il représente la réponse

de Microsoft à « Java Web Start ».

Le BootStrap permet de gérer les mises à jour ClickOnce. Il s’agit de

DDay.Update. Ainsi, il est possible de déployer mon application dans un répertoire

personnalisé.

Principe de fonctionnement   :

51

Page 54: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Voici également le diagramme de séquence montrant comment fonctionne le

BootStrap :

Le contenu des fichiers est le suivant   :

52

Page 55: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

A droite se situe l’application BootStrap. Elle contient les versions de l’application

téléchargées. En démarrant le BootStrap, celui-ci compare la version située dans

le manifest à celui déployé sur le réseau afin de le télécharger ou pas.

53

Page 56: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

4.4. La migration des données

4.4.1. Introduction :

Pour réaliser la migration des données. J’ai du tout d’abord m’intéresser à la base

de données Access actuelle, afin de repérer comment sont enregistrées les

données par rapport à mon modèle dans MySQL.

Par exemple : Le numéro de chantier dans la base Access est représenté comme

suit :

Numchantier : 15010455 qui correspond au client 150, de l’année 2010 et du

chantier 455.

Tandis que dans ma base, le numéro de chantier est divisé en 3 champs

différents :

o NumClient : qui est une clé étrangère à la table « client ».

o DateChantier : qui est un type datetime dans la table « chantier ».

o NumChantier : qui est un entier dans la table « chantier »

4.4.2. L’interface graphique

54

Page 57: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Voici l’interface graphique permettant de migrer les données de la base Access

vers la base MySQL.

Pour effectuer la migration, il faut dans un premier temps configurer l’adresse du

serveur ADO.Net .Puis de copier la dernière version des fichiers Access. Et enfin,

transférer les données dans l’ordre suivant :

D’abord les clients

Puis les fournisseurs

Les chantiers

Les factures

Les commandes

L’ordre est important car ayant des clés étrangères sur ma table chantier (le

client), il faut d’abord récupérer les clients sinon cela provoquera bien évidemment

des erreurs. Il en est de même pour les factures, je ne peux pas ajouter une

facture si le chantier facturé n’a pas encore été ajouté.

55

Page 58: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

4.5. La sauvegarde automatique des données

MySQL offre des outils de sauvegardes des bases de données. Il s’agit « MySQL

dump ».

Pour réaliser une sauvegarde automatique j’ai donc créé un service Windows qui

permettra d’effectuer cette tache.

Le service tournera en permanence et exécutera l’utilitaire « mysqldump » à

intervalle de temps régulier.

Pour faciliter la configuration du service j’ai inscrit dans un fichier config toutes les

informations nécessaires.

Voir le fichier config en annexe 4.

5. DIFFICULTÉS RENCONTRÉES ET SOLUTIONS APPORTÉES

5.1. La migration des données

La migration des données a été une tache difficile à réaliser.

La base de données Access ne répondez pas aux normes de la méthode

MERISE. Elle ne comportait aucune clé primaire / clé étrangère. Il s’agissait

juste d’un stockage de données géré par l’application.

J’ai donc dû décortiquer l’ensemble de la base de données Access. C'est-à-

dire trouver qu’elle champ correspondait à tel ou tel table comme clé étrangère

etc.

56

Page 59: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

5.2. Le serveur ADO.net data services

Au début du stage, j’avais réalisé mon MCD avec des tables qui comprenait des

clés primaires multiples. Cela était valable pour plusieurs table (chantiers,

commandes, etc.).

Par exemple   : table chantier :

Clé primaire : Numchantier, dateChantier, NumFiliale.

Mais cela a vite posé des problèmes au niveau des associations de table. Il

pouvait comporter beaucoup de champ. Et de plus dans mon application, lorsque

j’effectuais un simple « ajout », cela me provoquait des erreurs

incompréhensibles.

Donc pour y remédier, j’ai gardé ces champs mais seulement en clé étrangère et

j’ai ajouté aux tables en question, un champ « IdChantier », par exemple, qui est

la clé primaire unique à la table « chantier ». Donc je n’est plus qu’une seule clé

primaire pour chaque table et cela fonctionne très bien maintenant.

6. CONCLUSION

Ainsi, j’ai effectué mon stage de fin d’étude Master Informatique Technologies

Nouvelles des Systèmes d’information et décisionnels au sein de l’entreprise

SIGMA. Lors de ce stage de 5 mois et demi, j’ai pu mettre en pratique mes

connaissances théoriques acquises durant ma formation, de plus, je me suis

confronté aux difficultés réelles du monde du travail.

Le projet qui m’a été confié a été très intéressant et m’a permis d’approfondir mes

connaissances dans le développement logiciel.

57

Page 60: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Je pense que cette expérience en entreprise m’a offert une bonne préparation à

mon insertion professionnelle car elle fut pour moi une expérience enrichissante et

complète.

7. BIBLIOGRAPHIE

Livres

Matthew MacDonald, Pro WPF in C# 2008: Windows Presentation

Foundation with .NET 3.5, Second Edition, Apress, 1072 pages.

Adam NATHAN, Windows Presentation Foundation Unleashed, 655 pages.

Roger Jennings, ADO.NET 3.5 with LINQ and the Entity Framework, Wrox,

672 pages.

Sites

http://www.developpez.com/

http://www.codeplex.com/ : Ce site m’a permis d’accéder à des exemples

de code source.

58

Page 61: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

http://msdn.microsoft.com/fr-fr/default.aspx : Le site contenant les

informations sur les technologies de MICROSOFT. (webcasts, tutoriels,

etc.) ;

59

Page 62: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

8. ANNEXES

Annexe 1   : Résultat obtenu lors du déploiement de mon service ADO.net .

60

Page 63: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Annexe 2   : exemple de document fixe écrit en XAML permettant d’imprimer une

facture .

<FlowDocument xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:xrd="clr-namespace:CodeReason.Reports.Document;assembly=CodeReason.Reports" PageHeight="29.7cm" PageWidth="21cm" ColumnWidth="21cm" PagePadding="0" ScrollViewer.IsDeferredScrollingEnabled="True"> <xrd:ReportProperties> <xrd:ReportProperties.ReportTitle>Facture client</xrd:ReportProperties.ReportTitle> </xrd:ReportProperties>

<xrd:SectionReportHeader PageHeaderHeight="2" Padding="30,60,30,30" FontSize="12" > <Table CellSpacing="0" > <Table.Columns> <TableColumn Width="*" /> <TableColumn Width="*" /> <TableColumn Width="*" /> </Table.Columns> <TableRowGroup> <TableRow> <TableCell > <Paragraph><!----> <Image Source="" > </Image> </Paragraph> </TableCell> <TableCell /> <TableCell BorderThickness="0"> <Paragraph FontSize="14" TextAlignment="Left"> <xrd:InlineDocumentValue PropertyName="NomClient" /> </Paragraph> <Paragraph FontSize="14" TextAlignment="Left"> <xrd:InlineDocumentValue PropertyName="AdresseClient" /> </Paragraph> <Paragraph FontSize="14" TextAlignment="Left"> <xrd:InlineDocumentValue PropertyName="CPClient" /> <xrd:InlineDocumentValue PropertyName="Villeclient" /> </Paragraph> </TableCell> </TableRow> </TableRowGroup> </Table>

(…)</FlowDocument>

61

Page 64: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Annexe 3   : exemple de facture d’un chantier

62

Page 65: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

63

Page 66: kevin.debock.free.frkevin.debock.free.fr/stage/rapport de stage Sigma.docx  · Web viewNature et objectifs du projet. En quoi consiste le projet ? Le projet qui m’a été confié

Stage Sigma 26/08/2010

Annexe 4   : Fichier Config du service de sauvegarde automatique

<?xml version="1.0" encoding="utf-8" ?><configuration> <appSettings> <add key="CheminMysqldump" value="C:\wamp\bin\mysql\mysql5.1.36\bin\mysqldump.exe"/> <add key="serveur" value="localhost"/> <add key="database" value="gesigma"/> <add key="user" value="backup"/> <add key="pass" value="sigma"/> <!--chemin de sauvegarde des fichiers--> <add key="CheminFichier" value="C:\BackupBDDGesCom\"/>

<!--interval de temps de sauvegarde Ici ca correspond à 12h--> <add key="interval" value="43200000"/> <!--Indique le delai de suppression en jour cest a dire que l'application supprimera les fichiers dont la date de modification est inférieur au nb de jours --> <add key="delaiSuppression" value="7" /> </appSettings>

</configuration>

64