Vous êtes sur la page 1sur 6

17/2/2015

Exempled'architecture3couchesenVisualBasic

Exempled'architecture3couchesenVisualBasic
Exempled'architecture3couchesenVisualBasic
Articlelu812fois.
L'auteur
Inconnu
L'article
Publile17mars2003Misjourle3janvier2013
VersionPDFVersionhorsligne
I.Exempled'applicationclassique
ePub,AzwetMobi
Prenonsenexempleuneapplicationtrssimpledegestiondecomptesbancaires.Lesdonnessontstockesdansunebase
Lienssociaux
composedeces3tables:

Table

tPersonne:
TabletCompte

:
Table

tOperation:

Titulairesdes
comptes
Lescomptes
bancaires

Operationssur
lescomptes

Pourvoirlastructuredestablesendtail,Cliquezici.

http://rp.developpez.com/vb/tutoriels/troistiers/

1/6

17/2/2015

Exempled'architecture3couchesenVisualBasic

Danslafeuillecicontre,l'utilisateurdemande
l'affichagedescomptesd'unclientenentrant
l'identifiantduclient,puisencliquantsurlebouton
"Afficher".

Voiciunefaonsimpledegrerl'affichagedescomptesdansladatagrid,surl'vnementClick()dubouton:

Slectionnez
Silecontenuduchamptexteestnumrique,uneconnexionestcre,lescomptessontrcuprsdansunrecordsetquidevientla
sourcedeladatagrid.
L'affichagedescomptesd'unepersonnepeuttrescinden3partiesdistinctes:
L'interfaceutilisateur
Lalogiquedel'application:vrificationdel'identifiantsaisietlectureducomptedanslabase
Connexionlabasededonnesetouvertured'unrecordset
Lecodesourcecidessuscontientdonccestroisparties,alorsqu'ellesdevraienttreclairementdistinctes.Celapermettraitde
rutiliserlecodequicreuneconnexionlabasededonnes,etceluiquiretrouvelescomptesbancairesd'unepersonne.De
faongnrale,ilvautmieuxprogrammeruneapplicationensparantces3fonctions:prsentation,logiquedel'application,et
stockagedesdonnes.
II.Rledechacunedescouches
Lacoucheprsentation:
Affichelesdonnes.
Envoielesdemandesdel'utilisateurlacouchemtierpourqu'elleleseffectue.
Reoitlesrsultatsrenvoysparlacouchemtieretlesaffiche.
Lacouchemtier(logiquedel'application):
Reoitetanalyselesdemandesdel'utilisateur.
http://rp.developpez.com/vb/tutoriels/troistiers/

2/6

17/2/2015

Exempled'architecture3couchesenVisualBasic

Retrouveetmodifielesdonnesvialacouchedonnes.
Renvoielesrsultatslacoucheprsentation.
Lacouchedonnes:
Modifielesdonnes
Rcuprelesdonnes
Assurelascuritetl'intgritdesdonnes
III.Avantagesdecettearchitecture
Sparerl'applicationen3couchesadenombreuxavantages,envoiciunelistenonexhaustive:
Lagestiondesdonnesetlalogiquemtierpeuventtreindpendantesdutyped'interface:
Lalogiquedel'applicationetsesdonnespourronttreutilisesparuneinterfaceWindowsouparunsiteASPparexemple.
Lescouchesmtieretdonnessontencapsules:
cescouchesassurentl'intgritdesdonnesenanalysantlesdemandesduclientavantdeleseffectuer,etongagnedoncen
robustesse.Pendantlaralisationdelacouchemtier,onpeutseconcentrersurlalogiquedel'applicationetl'intgritdes
donnes,sanssesoucierdelaprsentation,etlamaintenanceendevientplusfacile.
Lescouchesmtieretdonnespeuventtreplacessurunserveurouchacunesurunserveurdistinct.
Lacoucheprsentationn'accdantpasdirectementauxdonnes,laconfigurationdel'accsauxdonnesnesefait
alorsquesurleserveurorsidelacouchedonnes.
Silacouchemtieroucelledesdonnesestmodifie,iln'yapasderinstallationfairesurlespostesclients.
IV.Exempled'architecture3couches
Nousallonsreprendrel'applicationdegestiondecomptesbancaires,quinousavaitservid'exemple.
LacoucheprsentationseraunEXEstandard,etlescouchesmtieretdonnesserontchacuneuneDllActiveX.Commenonspar
lacouchedesdonnes.

IVA.Couchedonnes
Cettecoucheauradonclaformed'unedllActiveX.Pourcrercetypedeprojet,cliquezsurlemenuFichier>Nouveauprojet,
puissurDLLActiveX.Allezdanslespropritsduprojetetsaisissez"Data"pourlenomduprojet.LaclasseClass1atcrepar
dfaut,renommezlaenclsData.Ceseralaseuleclassecontenuedanscettecouche.
LaclasseclsDatadoitpouvoir:ouvriruneconnexionlabasededonnes,etrenvoyerunrecordsetdconnectpartird'une
requtepasseenparamtre.

Slectionnez
http://rp.developpez.com/vb/tutoriels/troistiers/

3/6

17/2/2015

Exempled'architecture3couchesenVisualBasic

Nousavonstoutd'abordunenumrationquireprsentelesnumrosd'erreursquipeuventtrecresparcetteclasse.Ces
erreurspeuventtresignaleslacouchemtier.LaprocdureClass_Initialize()estexcutel'initialisationdelaclasse.C'est
ceniveauquenousinitialisonslesvariablesquicontiennentlesparamtresdenotreconnexion.

Slectionnez
LafonctionCreeConnexion()instancieunobjetADODB.Connection,seconnectelabasededonnesetrenvoiel'objetinstanci.
LafonctionCreeRecordset()crepuisrenvoieunrecordsetdconnect,lecodesqldelarequtedevanttrepassenparamtre.
Nousrenvoyonsunrecordsetdconnect,carunrecordsetconnectquiesttransfrsurlerseau,conserveavecluitoutesles
informationsncessairespourresterlisasourcededonnes.
Pourquelerecordsetsoitdconnect,vousdevez:
DonnerlapropritCursorLocationlavaleuradUseClient,etceciavantd'ouvrirlerecordset.Ainsilecurseurseragrdu
ctclient.
DonnerlapropritActiveConnectionlavaleurNothing,aprsl'ouverturedurecordset.Celaapoureffetdedconnecterle
recordsetdesasourcededonnes.
Enutilisantcettemthode,lerecordsetesttransfrduserveurversleclient,morceauparmorceau.Ilfautdoncplusieursallers
retoursentreleserveuretleclientpourquelerecordsetsoittotalementtransfr,cequin'estpasl'idal.Cecipeuttreencore
amliorenutilisantlescomposantsRDSpouraccderauxdonnes.Pourplusd'informationssurRDS,voirladocumentationsur
MSDN.
Icilavaleurchoisiepourle"locktype"durecordsetestadLockReadOnly,parcequelesenregistrementsn'ontpasbesoind'tre
modifiablesparleclient.

IVB.Couchemtier
Nousallonscrercettecouchesouslaformed'uneautredllActiveX.Toutd'abordleprojetDatadoitavoirtcompil.Puissans
fermerleprojet,cliquezsurlemenuFichier>Ajouterunprojet,etslectionnezDLLActiveX.Renommezlenouveauprojeten
"Rules".Lacouchemtiervautiliserlacouchedonnes,doncl'activeX"Data"doittreajoutdanslesrfrencesduprojet.
Lacouchedonnescontiendradeuxclasses.LaclasseclsServicesquinousfourniralescomptesdequelqu'un,ainsiqueles
oprationsd'uncompte.EtclsComptequinouspermettradelireoudemodifieruncompte.Voicilecodesourcedelaclasse
clsServices:

Slectionnez
Cesdeuxmthodesrenvoientunrecordsetdconnect.Aceniveauonseconnectelabasededonnes,maisl'onnesaitpas
http://rp.developpez.com/vb/tutoriels/troistiers/

4/6

17/2/2015

Exempled'architecture3couchesenVisualBasic

comment.Letypedebasededonnes,sonemplacement,lamaniredeseconnecter,lemotdepasses'ilyenaun,sontgrs
danslacouchedesdonnes.
VoicilaclasseclsCompte:

Slectionnez
Cecin'estqu'unaperudecequepourraittrelaclasseclsComptedansuneapplicationcomplte.Elledoitcontenirtoutesles
rglesdefonctionnementrelativesuncompte.Lesvaleursdeschampsnesontmodifiablesqueparl'intermdiairedesproprits
delaclasse,quicontrlentleurmodification.Parexemple,ilestinterditdemodifierlenumroducomptesiceluiciadjt
cr.
UncompteestluaveclamthodeLoad().LamthodeSave()permetd'ajouterunnouveaucompteoud'enregistrerles
modificationseffectuessuruncompteexistant.

IVC.Coucheprsentation
Acestadenousn'avonsplusqu'programmerl'interface,quiafficheralesdonneseteffectueralescommandesdemandespar
l'utilisateur,etcecisimplementenmanipulantlesobjetsdelacouchemtier.
Pourcrercettecouche,ajoutezunprojetdetypeExeStandard.Ajoutezl'activeXRulesdanssesrfrences.
Voicicequedevientnotrecodesourcedupremierchapitre,quiaffichaitlescomptesd'unepersonnedansunedatagrid:

Slectionnez
Vouspouveztlchargerlessources.

Copyright2003Inconnu.Aucunereproduction,mmepartielle,nepeuttrefaitedecesiteetdel'ensembledesoncontenu:textes,documents,images,etc.sansl'autorisation
expressedel'auteur.Sinonvousencourezselonlaloijusqu'troisansdeprisonetjusqu'300000dedommagesetintrts.

ResponsablebnvoledelarubriqueVisualBasic6:PhilippeBaquerContacterparemail

Developpez.com
Nouscontacter
Participez
Informationslgales

http://rp.developpez.com/vb/tutoriels/troistiers/

Services
ForumVisualBasic6
Blogs
Hbergement

Partenaires

PlanetHoster
5/6

17/2/2015

Exempled'architecture3couchesenVisualBasic

Copyright20002015www.developpez.com

http://rp.developpez.com/vb/tutoriels/troistiers/

6/6

Vous aimerez peut-être aussi