CHAPITRE QUATRIEME: IMPLEMENTATION
4.1. CHOIX DU SGBD
Pour arriver à implémenter notre base des
données nous avons choisi le SGBD Microsoft SQL SERVER 2012, car il est
le mieux adapté pour réaliser notre base des données
distribuée. SQL Server est disponible pour les plates formes Windows
Server en version 32 et 64 bits, mono ou multiprocesseur, et il exploite les
différents coeurs de façon native. Le moteur de base de
données est robuste et possède des capacités remarquables
de gestion des données lors des montées en charge.
SQL Server est un Système de Gestion de Base de
Données Relationnelle (SGBDR), ce qui lui confère une très
grande capacité à gérer les données tout en
conservant leur intégrité et leur cohérence. SQL Server
est chargé de :
ü stocker les données,
ü vérifier les contraintes
d'intégrité définies,
ü garantir la cohérence des données qu'il
stocke, même en cas de panne (arrêt brutal) du système,
ü assurer les relations entre les données
définies par les utilisateurs.
Toutes les applications qui utilisent SQL Server pour
gérer les données, s'appuient sur une architecture
client/serveur.
VUE DE LA BASE DES DONNEES CREEE EN SQL SERVER
2012
4.2. CHOIX DU LANGAGE DE PROGRAMMATION
Pour arriver à communiquer avec notre base des
données, nous avons choisi d'utiliser le langage de programmation CSHARP
dans sa version 2012. Son utilisation très répandue conduisit
avec le développement de l'interface utilisateur de Windows
Microsoft.
Le but de langage SCHARP est de créer, exécuter
et déboguer les programmes d'une manière efficace. Ce langage est
réputé pour permettre un développement rapide
d'applications. Outre une interface utilisateur graphique, il dispose des
caractéristique telles que la manipulation d'événements,
la programmation orientée objet, la gestion d'erreurs et la
programmation structurée.
4.3. PRESENTATION DES INTERFACES
4.3.1. FORMULAIRE D'AUTHENTIFICATION A
L'APPLICATION
Avec ce formulaire, il vous permet d'accéder à
l'application, une fois que l'utilisateur choisi son nom et introduit le mot de
passe correspondant.
4.3.2. FORMULAIRE DU MENU GENERAL
Ce formulaire vous donne l'accès aux formulaires du
travail de notre application. Dès que l'utilisateur clique sur le
bouton « VALIDER », il accède aux autres
formulaires de l'application lui permettant de travailler.
4.3.3. FORMULAIRE CLIENT
Après avoir saisie les données l'operateur
clique sur le bouton « AJOUTER », on affiche le
message « enregistrement effectué avec
succès ». L'utilisateur clique sur
l'onglet « RECHERCHE » de ce même formulaire,
les données saisies apparaissent sur le contrôle «
DATAGRIDVIEW », comme le montre le formulaire suivant :
Après avoir sélectionné une ligne des
données qu'on veut modifier dans la base des données à
travers le datagridview se trouvant sur le formulaire client, l'operateur
clique sur le bouton « Modifier » de l'onglet
« recherche », l'onglet « mise à
jour » apparait, et là les données
sélectionnées apparaissent sur les zones de textes, s'il veut les
supprimer, il clique sur le bouton « supprimer » de
l'onglet « mise à jour » et là les
données sont supprimées et dans la base des données et
aussi dans le datagridview, voici le formulaire correspondant :
4.3.5. FORMULAIRE DES DEPENSES : Enregistrement
des données
Sur le formulaire ci-haut, après avoir saisie un
numéro qui existe déjà dans la base, on vous affiche ce
message vous signalant que ce numéro est déjà
enregistré dans la base des données ou ce numéro existe
déjà.
4.3.6. FORMULAIRE FONDS : AFFICHAGE DES DONNEES
ENREGISTREES
Après avoir saisie les données dans le
formulaire « FONDS », sous
l'onglet « MISE A JOUR », ces données là
apparaissent sur l'onglet « RECHERCHE » dans le
datagridview.
4.3.4. FORMULAIRE MOUVEMENT :
ENREGISTREMENT
Sur ce formulaire, l'operateur saisie tous les mouvements que
les clients effectuent sur les fonds.
4.3.5. FORMULAIRE MOUVEMENT :
SUPPRESSION
Ce formulaire après avoir affiché les
données, on les a supprimées de la base c'est pourquoi, il
affiche le message de suppression.
4.4. QUELQUES CODES
using System;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
namespace TRANSFERT__DES_FONDS
{
publicpartialclassFONDS : Form
{
publicFONDS()
{
InitializeComponent();
}
ClasseInterfaces f = newClasseInterfaces();:Classe interface
ClasseFonds t = newClasseFonds();:classe Fonds
privatevoidFONDS_Load(objectsender, EventArgs e)
{
t.remplirgrid("T_FONDS", DTFOND);
}
privatevoid button6_Click(objectsender, EventArgs e)
{
tabFONDS.SelectedTab = tabPage2;
f.ViderForm(panel4);
}
privatevoid button3_Click(objectsender, EventArgs e)
{
tabFONDS.SelectedTab = tabPage2;
textBox6.Text =
DTFONDS.SelectedRows[0].Cells["Code_argent"].Value.ToString();
textBox4.Text =
DTFONDS.SelectedRows[0].Cells["Montant"].Value.ToString();
comboBox2.Text =
DTFONDS.SelectedRows[0].Cells["Type_argent"].Value.ToString();
textBox3.Text =
DTFONDS.SelectedRows[0].Cells["Remfonds"].Value.ToString();
}
privatevoid button9_Click(objectsender, EventArgs e)
{
f.afficheForm(panel4, DTFOND);
}
privatevoid button7_Click(objectsender, EventArgs e)
{
t.connecter();
t.cmd.CommandText = "DELETE FROM T_FONDS WHERE Code_argent=" +
int.Parse(textBox6.Text);
t.cmd.ExecuteNonQuery();
t.deconnecter();
MessageBox.Show("La suppression s'est effectuée avec
succès ");
t.remplirgrid("T_FONDS", DTFOND);
}
privatevoid button8_Click(objectsender, EventArgs e)
{
t.connecter();
t.cmd.Connection = t.con;
t.cmd.CommandText ="SELECT COUNT (*) FROM T_FONDS WHERE
Code_argent=" + textBox6.Text;
int cpt = int.Parse(t.cmd.ExecuteScalar().ToString());
if (cpt > 0)
{
MessageBox.Show("le code" + textBox6.Text + "existe
déjà");
}
else
{
t.cmd.CommandText ="INSERT INTO T_FONDS (Code_argent, Montant,
Type_argent, Remfonds) VALUES ('" + textBox6.Text + "','" + textBox4.Text +
"','" + comboBox2.Text + "','" + textBox3.Text + "')";
t.cmd.ExecuteNonQuery();
t.deconnecter();
MessageBox.Show("enregistrement effectué avec
succès ");
t.remplirgrid("T_FONDS", DTFOND);
}
}
}
}
CLASSEFONDS
using System;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
//------------------------------
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Windows.Forms;
namespace TRANSFERT__DES_FONDS
{
classClasseFonds
{
publicSqlConnection con = newSqlConnection();
publicSqlCommand cmd = newSqlCommand();
publicSqlDataAdapter da = newSqlDataAdapter();
publicDataSetds = newDataSet();
publicvoidconnecter()
{
if (con.State == ConnectionState.Closed)
{
con.ConnectionString = "initial catalog=GESTION_TRANSFERT_FONDS;
data source=MARNUQUEMARC; integratedsecurity=true";
con.Open();
}
}
//----------------------------------
publicvoiddeconnecter()
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
}
publicvoidremplirgrid(string table, DataGridView dg)
{
connecter();
//-----------------------------
cmd.Connection = con;
cmd.CommandText = "SELECT*FROM T_FONDS";
//------------------------------------------
da.SelectCommand = cmd;
if (ds.Tables["DTFOND"] != null)
{
ds.Tables["DTFOND"].Clear();
}
da.Fill(ds, "DTFOND");
dg.DataSource = ds.Tables["DTFOND"];
deconnecter();
}
}
}
4.5. MISE EN PLACE D'UN RESEAU
VPN
Pour que notre base des données arrive à
fonctionner sur plusieurs sites, notre choix est porté sur le
réseau VPN. Ce réseau nous permettra d'avoir une connexion
sécurisée. C'est ainsi que dans la figure suivante, nous montrons
comment sera l'infrastructure de notre VPN. Pour avoir les accès
distants, ce réseau utilise le protocole IPSEC.
4.6. DEVIS DU PROJET
Coût des matériels (en dollar
américain $US)
N°
|
DESIGNATION
|
QUANTITE
|
PRIX UNITAIRE
|
PRIX TOTAL
|
01
|
Antenne +Connexion Internet
|
15+5Mbps
|
200/mois
|
3000
|
02
|
LapTop
|
15
|
300
|
4500
|
03
|
Imprimante-photocopieuse Laser
|
15
|
40
|
600
|
05
|
Logiciel de gestion de transfert
|
1
|
500
|
500
|
06
|
Serveur DELL ou HP
|
1
|
1000
|
1000
|
07
|
Routeur DLINK
|
15
|
50
|
750
|
08
|
Table pour PC
|
15
|
15
|
225
|
09
|
Armoires
|
15
|
20
|
300
|
10
|
Connecteurs de RJ45
|
70
|
0.25
|
17.5
|
11
|
Câble UTP et STP
|
100m
|
0,5
|
50
|
13
|
Hub et Switch
|
15
|
25
|
375
|
TOTAL GENERAL
|
11.317.5
|
Planification de la main d'oeuvre (en dollars
américains $US)
Désignation
|
Nombre
|
Nombre de jours
|
Niveau
|
Salaire journalier
|
Total
|
Directeur du projet
|
1
|
60
|
Licencié en informatique
|
30
|
1800
|
Technicien informaticien
|
1
|
45
|
Licencié
|
25
|
1125
|
Agent d'aide à l'installation
|
2
|
45
|
Gradué
|
10
|
900
|
Formateur
|
2
|
45
|
Gradué
|
10
|
900
|
Transport de tous
|
10
|
45
|
|
5
|
2250
|
TOTAL
|
6975
|
1.6.1. Budgétisation synthétique du
cout global du projet
Budgétisation synthèse (en dollars
américains $US)
N°
|
Désignation
|
Montant
|
01
|
Cout de la main d'oeuvre (personnel)
|
6975
|
02
|
Matériels et connexion Internet
|
11.317.5
|
03
|
Imprévu 10% du montant des Matériels et
connexion Internet
|
1131.75
|
TOTAL GENERAL
|
19.424.25
|
DIFFICULTES RENCONTREES
Avant d'arriver au bonheur, on passe par un stade
appelé « souffrance ». Il n'y a pas de roses
sans épines, dit-on. Pour arriver à élaborer ce
présent mémoire, nous avons passé de moments très
douloureux et parfois ennuyant. Le manque des documents appropriés
à notre sujet d'étude et les manques des documents de notre
domaine dans notre bibliothèque a constitué un grand handicap
pour nous ; ce qui a occasionné beaucoup de dépenses
à notre endroit surtout quand on effectuait des kilomètres pour
arriver à l'université soeur de l'U.KA ayant tant soi peu une
documentation relative à notre domaine.
Les moyens financiers, qui ont aussi été pour
nous un grand obstacle pour accéder aux ressources nécessaires
possédant des informations pour notre domaine en général
et notre sujet en particulier. La récolte des informations qui a
été réalisée grâce aux efforts fournis, mais
qui avait des obstacles à la livraison des informations.
Le manque d'ordinateur pour pratiquer la théorie
apprise et faire bien ce qui est demandé de faire, tout ceci, a
embrouillé notre état psychologique. Le manque de pratiques
appropriées à notre endroit par l'université pour arriver
à bien lier la théorie à la pratique. Le problème
lié au courant qui nous a beaucoup préjudicié pour faire
bien notre implémentation.
Nous avons eu aussi le problème en ce qui concerne SGBD
que nous avons utilisé, car il ne répondait dans notre machine,
d'où nous étions obligés de travailler sur une machine
d'autrui dont la durée nous est impartie pour faire notre base des
données n'était pas longue.
|