Interfete Grafice Si ADO in VB NET
-
Upload
elenamaria1588 -
Category
Documents
-
view
221 -
download
0
Transcript of Interfete Grafice Si ADO in VB NET
-
8/16/2019 Interfete Grafice Si ADO in VB NET
1/32
4.1. Noţiunea de interfaţă grafică utilizator
Noţiunea de interfaţă poate denită ca o graniţă de-a lungul căreia două sisteme
independente se întâlnesc şi comunică între ele. În domeniul tehnologiei informaţiei
există trei tipuri de interfeţe:
- Interfeţe-utilizator - ansamblul de echipamente şi programe care oferăutiliatorilor posibilitatea de a interacţiona cu o aplicaţie! "ot :
#nterfeţe grace
#nterfeţe baate pe comeni introduse de la tastatură
- interfeţe-software $ ansamblul de programe specialiate pe care aplicaţiile le
utilieaă pentru a comunica unele cu altele!
- interfeţe-hardware $ ansamblul de instrumente pe care dispoiti%ele hard&are
le utilieaă pentru a comunica unele cu altele
În general' o interfaţă gracă utiliator se obţine prin integrarea mai multor
elemente prin care se asigură repreentarea gracă a programelor' datelor şi a
opţiunilor pe care le %a a%ea utiliatorul la un moment dat. ( interfaţă gracă încearcă
să ofere utiliatorilor aplicaţiei şi mi)loacele necesare pentru ca ei să facă ceea ce %or
şi nu să le arate o listă cu ce poate calculatorul să facă.
#ată o listă a caracteristicilor pe care trebuie să le regăsim la o *+# ,*raphical +ser
#nterface:
- foloseşte un aşa) /hartă de biţi/' de înaltă reoluţie!
- utilieaă un echipament de indicare ,de regulă' mouse!
- oferă o repreentare %iuală a textelor şi a altor elemente grace aşa cum apar la
tipărire ,012#01*-0hat 1ou 2ee #s 0hat 1ou *et!
- respectă paradigma de interacţiune obiect-acţiune!
- permite transferul de informaţii între programe!
- permite manipularea directă a obiectelor şi informaţiilor de pe ecran!
- oferă elemente de interfaţă standard' cum ar meniurile'sau ferestrele de
dialog !
- asigură repreentarea %iuală a obiectelor pe ecran ,ferestre şi icon-uri!
- asigură feed-bac3 %iual la acţiunile utiliatorului!
- repreintă %iual acţiunile şi operaţiunile posibile ,în meniuri' bare de
instrumente' butoane de comandă!
- asigură preluarea opţiunilor şi şi a caracterelor introduse de la tastatură de
către utiliator' prin intermediul unor componente grace standard ,căsuţe
de text' liste' butoane de opţiune,chec3box !
- permite utiliatorului să personaliee interfaţa şi interacţiunile!
4icrosoft 5orporation' 6he 0indo&s #nterf ace *uidelines for 2oft&are 7esign' 4icrosoft "ress' 889
1
-
8/16/2019 Interfete Grafice Si ADO in VB NET
2/32
- asigură utiliatorului libertatea de opţiune de a utilia tastatura sau alte
echipamente de intrare' după dorinţă şi obişnuinţă.
4ulte dintre interfeţele grace pe care le utiliăm' între care şi 0indo&s' întrunesc
doar o parte din aceste caracteristici sau pe toate.
a modul cel mai simplu' o interfaţă gracă este denită pr in 0#4" - 0indo&s'#cons' 4enus and "ointing de%ice $ acel tip de interfaţă-utiliator in%entat şi
populariat cu succes de 4acintosh în 8;< şi imitat ulterior de sistemele 0indo&s.
=cest gen de interfaţă gracă se distinge prin faptul că pe ecran apar ferestre' icon-uri
şi meniuri şi există un mouse pentru exploatarea acestora. În proiectarea unei *+#'
este esenţial ca utiliatorul să %adă pe ecran obiectele pe care le-a denit exact aşa
cum arată ele şi cum se %or obţine pe hârtie dacă sunt tipărite.
( altă caracteristică fundamentală a #*+ este asigurată de manipularea directă de
către utiliator a obiectelor şi informaţiilor de pe ecran. "reentarea gracă a
componentelor nu este sucientă ca să dispunem de o interfaţă gracă. +n icon
constituie o repreentare gracă pentru un obiect' dar dacă utiliatorul nu poate
decât să se uite la el' atunci nu a%em în faţă o interfaţă gracă. 4anipularea directă
îmbracă mai multe forme' în ma)oritatea caurilor ind %orba de un clic3 de mouse
,apăsarea unui buton' selecţia unei opţiuni dintr-o listă sau >bifarea? unui
chec3box' şi constituie unul dintre aspectele cheie ale *+#.
=m menţionat între caracteristicile *+# şi utiliarea controalelor grace. @ste %orba
despre acele componente ale interfeţei prin care utiliatorul alege' introduce date'
iniţiaă acţiuni sau na%igheaă prin interfaţa aplicaţiei. 2e încadreaă aici controale
simple' precum casete de %alidare ,chec3box' casete de text ,textbox' butoane de
comandă sau liste' dar şi containere sau casete de dialog,forms care reunesc mai
multe controale simple. #ncluderea acestor controale în interfaţă ţine seama de
modelul utiliatorului şi de metaforele comune' cunoscute acestuia. 2e urmăreşte de
asemenea utiliarea similară a acestor controale cu alte aplicaţii sau medii de lucru
familiare utiliatorilor sau recomandate de standarde. 7e fapt' standardele
recomandă utiliarea acelor controale care %alorică experienţa utiliatorilor şi
foloseşte memoria asociati%ă a acestora.Principii de urmat în dezvoltareainterfeţelor grace
( interfaţă gracă bine proiectată trebuie să respecte următoarele principiiA:
- controlul aplicaţiei de către utiliator!
- manipularea directă a informaţiilor!
- consistenţă!
- toleranţă la greşelile utiliatorului!
- asocierea de /replici/ pentru comenile unei aplicaţii!
- estetică!- claritate!
A "rincipii de proiectare a interfeţelor grace utiliator' în "5 Beport' nr. 9C88D' p. AD
2
-
8/16/2019 Interfete Grafice Si ADO in VB NET
3/32
- simplitate.
Controlul aplicaţiei de către utilizator
5onform primului principiu enunţat' este foarte important ca utiliatorul să simtă
că el este cel care controleaă aplicaţia şi nu in%ers' în ai doilea rând' utiliatorultrebuie să aibă posibilitatea să personaliee mediul de iucru' conform preferinţelor
sale. +tiliatorul trebuie să e acela care iniţiaă acţiuni le! ei trebuie să aibă un rol
acti% şi nu reacti%. @xistă şi procese care pot automatiate' dar derularea lor trebuie
să se facă sub controlul utiliatorului ,la apariţia unor cauri excepţionale
utiliatorul trebuie să decidă acţiunea ce %a executată. "entru a putea răspunde
acestui principiu aplicaţia trebuie:
,asă e interacti%ă ,trebuie să ofere întotdeuana un reultat %iual în urma
unei acţiuni a utiliatorului
,bsă răspundă la ecare acţiune a utiliatorului
,csă e Eexibilă.
Manipularea directă a informaţiilor
5onform acestui principiu' utiliatorul trebuie să poată manipula informaţiile întro
manieră familiară' indiferent de modul în care acestea sunt repreentate intern la
ni%elul soft-ului-applicaţie. =stfel' utiliatorul poate constata direct relaţia cauă-efect
între acţiunea sa efectuată prin intermediul interfeţei şi reultatul acesteia ,modul în
care programul reacţioneaă la acţiunea sa. Fie că mută un obiect sau se deplaseaă
în cadrul unui document' utiliatorul trebuie să %adă modul în care acţiunea sa
afecteaă obiectele existente pe ecran. Giibilitatea informaţiilor şi a opţiunilor reduc
supraîncărcarea mentală a utiliatorilor. "entru satisfacerea acestei cerinţe'
interfaţa trebuie să ofere utiliatorului o manieră directă şi intuiti%ă de operare.
+tiliatorii recunosc mai uşor o comandă sau un instrument de lucru dacă le
asociaă cu o imagine sau un simbol. 7e aceea' în cadrul interfeţelor grace se
utilieaă metaforele. =cestea faciliteaă în%ăţarea şi exploatarea unei aplicaţii'
permiţând utiliatorilor să-şi transfere cunoştinţele şi experienţa. 4etaforele sunt
deosebit de utile' deoarece utiliatorii reţin mai uşor un înţeles sau o semnicaţieataşate unui obiect familiar' decât ar reţine numele unei comeni. 5ând se
utilieaă o metaforă' nu este neapărat necesar ca implementarea în cadrul
aplicaţiei să f ie limitată de corespondentul său din lumea reală. 7e exemplu' un folder
,dosar din 0indo&s' spre deosebire de corespondentul său real' poate organia nu
doar documente sau aplicaţii' ci şi echipamente ,calculatoare' imprimante sau alte
foldere. 4oti%ul folosirii metaforelor într-o interfaţă este construirea unui /pod
cogniti%/.
Consistenţa"rincipiul consistenţei cere ca interfaţa să e familiară şi predictibilă' oferind
utiliatorului sentimentul de stabilitate. =stfel' indiferent de opţiunile pe care le
selecteaă la un moment dat' reultatul obţinut ,o fereastră sau un mesa) de
3
-
8/16/2019 Interfete Grafice Si ADO in VB NET
4/32
atenţionare trebuie să furniee o repreentare gracă familiară' cu care
utiliatorul s-a obişnuit de)a în cadrul acti%ităţilor ilnice pe care le desfăşoară.
5onsistenţa permite utiliatorilor să transfere cunoştinţele existente în procese noi şi
să în%eţe mai rapid aplicaţiile noi. 5onsistenţa este citată ca ind cea mai importantă
în obţinerea unei interfeţe de calitate. 7acă este asigurată' consistenţa îl %a spri)ini peutiliator în a-şi construi un model mental adec%at al modului de funcţionare al
aplicaţiei' ceea ce înseamnă costuri de instruire şi suport post-instalare mai scăute.
#ată câte%a obiecti%e pe care programatorul trebuie să le urmărească în de%oltarea
interfeţelor grace pentru a asigura consistenţă la ni%elul aplicaţiei:
- un dublu clic într-o listă anume' poate declanşa o anumită acţiune. =r de
dorit să se producă aceeaşi acţiune ,un acelaşi tip de reultat atunci când se
efectueaă dublu clic într-o altă listă din aplicaţie.
- Hutoanele trebuie plasate în locuri /strategice/' locuri ce trebuiesc păstrate
pe parcursul tuturor formularelor aplicaţiei
- 6extul' sau imaginea' aşată de butoane trebuie să e acelaşi pentru
butoanele care produc reultate similare ,adăugarea unor date noi' sal%area
datelor modicate' etc.
- (rganiarea componentelor de editare a datelor ,căsuţe de text' liste de
opţiuni trebuie să e aceeaşi în toate ferestrele ce furnieaă acces la date.
- 2chema de culori utiliată trebuie să e şi ea consistentă ,dacă utiliăm
aceeaşi culoare pentru două obiecte' între ele ar trebui să existe o legătură .
5onsistenţa trebuie asigurată în toate aspectele interfeţei:
- numele comenzilor - comeni similare în aplicaţii diferite să aibă acelaşi
nume' pentru a folosi cunoştinţele pe care le au utiliatorii de la
aplicaţiile precedente ,ma)oritatea aplicaţiilor folosesc
pentru deschiderea unui şier comanda (pen!
- prezentarea vizuală a aplicaţiei - comenile similare din aplicaţii diferite
trebuie să e apelabile prin aceleaşi elemente %iuale ,de exemplu'
sal%area unui şier se face în ma)oritat:ea aplicaţiilor prin clic pe butonul
care are stiliată o dischetă!- comportamentul operaţional al aplicaţiei - operaţiile similare trebuie să
aibă o interfaţă %iuală identică sau măcar asemănătoare' iar cererea de
informaţii suplimentare pentru realiarea unei operaţiuni trebuie făcută
utiliând elemente de interfaţă comune operaţiunilor ,de exemplu'
operaţiunile de acces la şiere - citire sau sal%are - ar trebui să
deschidă casete de dialog asemănătoare.
"entru asigurarea consistenţei trebuie a%ute în %edere următoarele aspecte ale
acesteia:- consistenţa în cadrul aplicaţiei. "reentarea funcţiilor comune trebuie
să se facă folosind un ansamblu consistent de comeni şiCsau interfeţe
%iuale. #mplementarea unei comeni /copI/ care într-un ca genereaă o
4
-
8/16/2019 Interfete Grafice Si ADO in VB NET
5/32
operaţie imediată' iar în alt ca aşeaă o fereastă de dialog pentru
introducerea unei destinaţii este un exemplu de inconsistenţă. "roiectantul
trebuie să folosească aceleaşi comeni pentru operaţii care utiliatorului îi
par similare din punct de %edere al funcţionalităţii. Gersiunile noi ale
aplicaţiei' îmbogăţite funcţional' nu trebuie să modice maniera de lucruanterior adoptată.
- consistenţa cu mediul de operare - menţinerea unui grad ridicat de
consistenţă cu con%enţiile de interacţiune şi interfaţă furniate de
sistemul de operare %a asigura exploatarea mai facilă a aplicaţiei'
utiliatorul ind de)a familiariat cu acestea. (rice nouă aplicaţie
destinată unui sistem de operare trebuie să se aliniee la standardele pe care
acesta le impune' iar efectul acestei constrângeri nu poate decât benec'
facilitând însuşirea mai rapidă a noului produs.
- consistenţa cu metaforele utilizate. 2e recomandă menţinerea
metaforelor cu care utiliatorul este de)a familiariat şi alegerea cu gri)ă a
metaforelor noi. =desea' dacă un comportament particular nu poate
asociat unui obiect aşa cum reiese din metafora denită' utiliatorul are
dicultăţi în realiarea unei asocieri între comportament şi obiect.
"rin respectarea acestui principiu se obţine ceea se numeşte stabilitate
-interfaţa este familiară ,chiar dacă e %orba de o aplicaţie nouă' iar răspunsul
aplicaţiei este pre%iibil ,se mieaă pe comportamentul similar al aplicaţiilor.
Toleranţa la erori
6oleranţa este necesară datorită comportamentului utiliatorilor' care sunt în
deniti% simpli oameni' supuşi greşelilor. 5el mai la îndemână exemplu este
ştergerea unui şier' efectuată din greşeală' ind grăbiţi' obosiţi sau neatenţi. (
astfel de eroare are un impact puternic asupra moralului utiliatorului' mai ales când
nu există o modalitate de recuperare sau aceasta este dicil de identicat. #mpunerea
acestui principiu pleacă deci de la premia că utiliatorul obişnuit face frec%ent greşeli'
atât ice ,cum ar apăsarea accidentală a unei taste' cât şi de logică. ( interfaţă
bine proiectată trebuie să înţeleagă gama de erori potenţiale pe care utiliatorui poatesă le comită şi să aibă pre%ăute posibilităţi de ieşire din astfel de situaţii şi de
recuperare a e%entualelor pierderi.
+n alt aspect deosebit de important în cadrul acestui principiu se referă la maniera
de atenţionare a utiliatorului asupra apariţiei unei erori sau asupra riscului unei
anumite operaţii. 4esa)ele furniate în această situaţie trebuie să descrie succint şi
concis problema' astfel încât utiliatorul să înţeleagă sursa erorii sau riscul la care se
poate aştepta în caul continuării unei peraţii ,de obicei este %orba de operaţiile de
ştergere şi modicare a datelor preluate de)a la ni%elul aplicaţiei2pre exemplu' să discutăm despre butoanele predenite sau combinaţiile de taste
pentru anumite comeni,cunoscute sub numele de >shortcut?. 7e regulă' ecare ecran
sau casetă de dialog are un buton de comandă predenit' care este in%ocat atunci
5
-
8/16/2019 Interfete Grafice Si ADO in VB NET
6/32
când utiliatorul apasă tasta @nter şi pentru ecare buton de acţiune există şi o
combinaţie de taste ce poate utiliată în lolocul mouse-ului. Biscul este ca
utiliatorul să apese in%oluntar tasta @nter' lansând astfel comanda ataşată butonului
implicit' sau o combinaţie de taste %alidă care dfeclanşeaă comanda asociată unui
anumit buton. În aceste cauri este esenţial un mesa) de a%ertiare ,în special pentruoperaţiile distructi%e.
În plus' utiliatorii sunt adesea tentaţi să exp loree o interfaţă' prin selectarea
/oarbă/ şi /la întâmplare/ a comenilor şi opţiunilor unei aplicaţii' în acest fel
utiliatorii îşi însuşesc modul de exploatare al unei aplicaţii - este metoda numită
/încercare şi eroare/ sau în%ăţarea prin descoperire. ( interfaţă bine proiectată
permite descoperirea interacti%ă a modului de exploatare aJ unei aplicaţii.
"re%enirea distrugerii datelor sau a blocării sistemului trebuie asigurată prin mesa)e
de a%ertiare în situaţiile în care starea aplicaţiei sau datele cu care opereaă aceasta
se pot deteriora şi prin re%ersibilitatea unor acţiuni ,posibilităţi de anulare sau de
recuperare a datelor
7acă la un moment dat' într-un anume context' o opţiune sau un submeniu nu se
pot utilia' cel mai bine este să indicăm cum%a indisponibilitatea' într-un mod distinct
faţă de opţiunile disponibile ,printr-o proprietate de tip Grayed, care lasă opţiunea
%iibilă' dar nu permite selectarea ei şi nu să le ascundem. =scunderea componentelor
îl poate bul%ersa pe utiliator' care încearcă să-şi construiască un model mentaJ al
funcţionării aplicaţiei.
Asocierea de "replici" pentru comenzile unei aplicaţii
5onform acestui principiu' o interfaţă este bine să transmită câte o replică sau un
răspuns pentru ecare acţiune a utiliatorului. =ceastă cerinţă contribuie şi ea la
sporirea confortului utiliatorului şi ea impune ca aplicaţia să conrme ,prin replici
că a preluat cererea utiliatorului şi că este în curs execuţia acţiuni i aferente cererii.
Beplicile pot %iuale sau auditi%e şi trebuie să conrme utiliatoru lui că aplicaţia
răspunde într-ade%ăr la acţiunile sale. =ceste replici trebuie să apară în timp real'
adică concomitent cu desfăşurarea operaţiei cerute. "uţini utiliatori ,în fapt' cei
a%iaţi şi experimentaţi rămân indiferenţi în faţa unui ecran care nu aşeaă nici unmesa) şi care nu reacţioneaă în nici un fel dacă prelucrarea ce se execută la
momentul respecti% dureaă ce%a mai mult timp. 5ând este %orba de acţiuni de
durată mai mare' replica ce trebuie aşată trebuie să preciee: starea ,derularea
acţiunii în curs ,de obicei cu exprimare în procente sau în secunde ce au rămas'
precum şi modul în care acţiunea poate suspendată sau anulată. @xistă două
posibilităţi de informare a utiliatorului asupra acţiunii pe care aplicaţia o execută la
un moment dat:
- prin actualiarea liniei de stare ,linia care apare în partea inferioară aferestrei principale!
- prin aşarea de casete de mesa).
6
-
8/16/2019 Interfete Grafice Si ADO in VB NET
7/32
=tunci când informaţia ce trebuie aşată este redusă ca dimensiuni' linia de stare a
aplicaţiei este sucientă pentru aşarea de mesa)e. 7acă însă este ne%oie de aşarea
unui mesa) mai amplu şi dacă particularităţile acţiunii în curs permit întreruperea
şiCsau abandonarea acesteia' atunci se recomandă să se recurgă la o casetă de dialog
non-modală care să cuprindă atât informaţiile' cât şi butoanele corespunătoareacţiunilor de întrerupere sau terminare a acţiunii în curs.
K Estetica
"rincipiul acesta se referă la proiectarea elementelor %iuale. #nterfaţa trebuie să
atragă utiliatorul! un mediu de lucru plăcut' prietenos contribuie la confortul
utiliatorului şi la o mai bună înţelegere a informaţiei preentate. =tributele %iuale
furnieaă date preţioase şi comunică informaţii importante cu pri%ire la
comportamentul diferitelor obiecte. ( recomandare care decurge din aplicarea
acestui principiu este implicarea utiliatorului în proiectarea interfeţei. 7e multe ori'
lucruri care par e%idente pentru proiectant sunt pentru utiliatoru l de rând neclare
sau ambigue.
+rmătoarele aspecte detaliaă principiul esteticii:
- utiliarea corespunătoare a culorilor. +n prim aspect se referă la folosirea
aceleaşi scheme de culori în toate ecranele aplicaţiei. =poi' trebuie
respectată regula contrastului ,culoare închisă pe fond deschis sau culoare
deschisă pe fond închis' astf el încât ecranele să e citibile. ( combinaţie
roşu-albastru este foarte frumoasă' dar absenţa contrastului poate crea
probleme de urmărire a textului pe ecran. #n ne' se alege uneori o anume
culoare pentru a scoate în e%idenţă o opţiune sau o situaţie deosebită'
întrucât nu toţi utiliatorii reacţioneaă la culori' se recomandă folosirea şi a
unui indicator secundar ,un simbol deosebit sau un semnal sonor.
- folosirea de fonturi adec%ate - este %orba aici de fontur i uşor de citit ,spre
xemplu' 6imes Ne& Boman în loc de 5omic 2ans 42. 7e asemenea' atenţie
la numărul de fonturi ce se folosesc pe acelaşi ecran - în nici un ca mai
mult de trei. 2e pot obţine efecte diferite prin folosirea de atribute ,bold'
italic' umbrit pentru acelaşi font.- alinierea câmpurilor şi datelor propriu-ise. 7atele se aliniaă corespunător
tipului lor astfel: şirurile la stânga' datele numerice întregi la dreapta' iar
cele numerice reale se aliniaă după marca ecimală' datele calendaristice tot
la dreapta.
Claritatea
"rincipiul clarităţii poate discutat din L puncte de %edere: %iua l' conceptual'
ling%istic.
Claritatea vizuală este asigurată de elementele %iuale ,obiectele care o compun.=cestea trebuie să e sugesti%e' uşor de înţeles' ele repreentând în fapt o
transpunere simplicată a unor obiecte reale. 7e asemenea' este importantă şi
aran)area obiectelor pe ecran. (pţiunile sau comenile care se grupeaă din punct de
7
-
8/16/2019 Interfete Grafice Si ADO in VB NET
8/32
%edere logic trebuie reunite şi delimitate de celelalte prin chenare sau cadre' în mod
simiiar' trebuie plasate separat şi delimitate între ele opţiunile între care nu există
legătură.
Claritatea conceptuală se caracterieaă prin două atribute: simplu şi realistM
2implitatea interfeţei înseamnă aşarea unui număr reonabil de obiecte pe ecran,într-o fereastră' iar caracterul realist este asigurat prin similitudinea cu obiectele
reale ,de exemplu' dacă o fereastră preintă o factură' este de dorit ca obiectele care
o descriu să reproducă cât se poate de exact aspectul acesteia.
Claritatea lingvistică se referă la textul ce apare în interfaţă. 7enumiri le opţiunilor
de meniu' mesa)ele' opţiunile' etc. trebuie să e clare' neambigue. 6extul pe care îl
af işăm pe ecran este o sursă principală de informare a utiliatorilor' de aceea ar trebui
să se utiliee cu%inte sau propoiţii întregi' nu prescurtări. 4esa)ele trebuie să f ie
formulate categoric şi fără ambiguităţi. 2pre exemplu' la operaţiunea de introducere a
codului clientului' dintre următoarele două mesa)e /ungimea codului de client este de 9
caractereJ/' /=ţi introdus o %aloare eronatăJ/ ar trebui utiliat primul' altfel utiliatorul %a
derutat' pentru că nu are cum să intuiască ce anume se doreşte de la el.
implitate
( interfaţă trebuie să e simplă' uşor de în%ăţat şi exp loatat. @a trebuie să permită
accesul facil la toate funcţionalităţile oferite de aplicaţie. @ste recomandată reducerea
inf ormaţiilor preentate în interfaţă la strictul necesar unei comunicări eciente
,trebuie e%itate descrierile detaliate' fraele stufoase sau irele%ante. #mportantă este
şi aran)area şi preentarea elementelor interfeţei ,se %or folosi semantici şi ordini de
repreentare naturale.
4aximiarea funcţionalităţii unei aplicaţii intră în contradicţie cu simplitatea cerută'
dar cele două aspecte pot echilibrate printr-o proiectare corespunătoare.
( metodă recomandată' mai ales pentru aplicaţiile cu grad mare de complexitate'
este metoda descoperirii progresi%e. =ceastă metodă se baeaă pe două aspecte:
- organiarea atentă a informaţiilor' e%itând aglomerarea pe un singur ecran!
- preentarea ecărei informaţii la momentul potri%it - atunci când nu este
ne%oie de ea' informaţia se ascunde. /=scunderea/ datelor reducecantitatea de informaţii cu care utiliatorul %ine în contact la un moment dat.
7eci' o interfaţă bună %a preenta informaţia într-o manieră ierarhică. 7e exemp lu'
informaţia de control ,comenile disponibile ale aplicaţiei se înglobeaă' de obicei' în
meniuri' în funcţie de contextul de utiliare' o parte din opţiunile unui meniu'
indisponibile la un moment dat' se pot ascunde sau inhiba' în plus' este posibilă
introducerea unor instrumente de lucru suplimentare. +n exemplu este linia de
intsrumente ,toolbar-ui' care reuneşte comenile de meniu mai frec%ent folosite sub
formă de butoane' tocmai în ideea ca accesarea acestor comeni să se facă cât maisimplu.
.
8
-
8/16/2019 Interfete Grafice Si ADO in VB NET
9/32
4.2. Ciclul de dezvol tare a unei interfeţe g rafice u ti l izator
7e%oltarea unei *+# se baeaă pe un ciclu iterati%' care cuprinde fae:
- determinarea cerinţelor!
- construirea prototipului ,proiectarea formularelor $ de denesc doar
formele cu obiectele grace ,fără sec%ente de cod pentru implementareacomportamentului !
- %alidarea prototipului cu utiliatorul $ interfaţa se e%alueaă' de regulă' din
punct de %edere ergonomic
- implementarea comportamentului $ se scriu sec%enţele de cod pentru
tratarea e%enimentelor corespunătoare acţiunilor posibil a efectuate de
utiliator
- testare
4.2.1. Construirea interfeţelor grafice în VisualBasic.NET
"roiectarea formularelor presupune:
- combinarea prin compunere a componentelor grace necesare pentru a
obţine funcţionalitatea dorită
- stabilirea denumirii ecărei componente ,proprietatea name a obiectului
grac
- stabilirea textului ce %a aşat de componentele de tip label' meniu'
commandButton sau RadioButton
În general' componentele grace se pot încadra în una din următoarele mari
categorii:
• container - poate conţine alte obiecte sau containere. 2e comportă ca obiect
părinte pentru alte obiecte ,formularul însuşi este un obiect de tip container pentru
celelalte obiecte de pe el. 6oate obiectele din container moştenesc %alorile setate
pentru unele din proprietăţile containerului ,ex: Enabled' Visible etcO! În Gisual
Hasic' pentru a construi un container dispunem de controlul Frame.• componente atomice $ sunt utiliate pentru interacţiunea directă cu utiliatorul
,butoane' căsuţe de text' liste de opţiuni' butoane de opţiune şi casete de %alidare
.
5omponentele grace sunt' în fapt' clase denite de producătorii limba)ului sau de
terţe persoane' clase pe care le utiliăm ,de obicei prin intermediul unei alte interfeţe
grace în crearea propriilor clase ce %or repreenta interfeţa gracă a aplicaţiei.
+n formular ,forma gracă nu este altce%a decât o clasă ale cărei atribute
,proprietăţi sunt date de componentele grace ataşate. =ceastă calsă poate denită în mod %iual ,de regulă sau direct prin scrierea sec%enţelor de cod specice
pentru denirea oricărei clase ,o formă mai rară de abordare. =tributele
,proprietăţile unei clase de tip 0indo&s Form ,clasa de baă Gisual Hasic .N@6 %or
9
-
8/16/2019 Interfete Grafice Si ADO in VB NET
10/32
stoca referinţe către obiecte aparţinând altor clase denite de producătorii limba)ului
,Form' TextBox' ListBox' etc.. a momentul lansării în execuţie' se instanţiaă clasa
respecti%ă şi se obţine obiectul complex repreentat %iual pe ecran.
În acest material nu ne propunem să detaliem proprietăţile şi metodele de care
dispune ecare componentă gracă în parte' aceste aspecte ind disponibile atât înbibliograa furniată la începutul semestrului cât şi în documentaţia standard .N@6.
Figura 4-1 Construirea unui formular în manieră vizuală (Projectadd Windows Form)
7enumirile componentelor grace ,proprietatea name plasate pe formularul din
gura - sunt următoarele :
- containere: form1 ,chiar obiectul-formular' grpOrdine ,obiect de tip *roupHox ce
poate gasit în fereastra 6oolboxC5ontainers
- componente atomice: lstStanga' lstDreapta' cmd2elect ,butonul care are drept
tex aşăt semnul PQ?' cmdUnselect, rad!scendent ,butonul radio cu textulP=scendent?' radDescendent, cmd!dd,cmdUpdate cmdRemo"e, txtValoare
,textHox-ul de deasupra butoanelor =ddCBemo%e
4.2.2. Implementarea comportamentului - Programarea a!at" pe
e#enimente
#n programarea procedurală tradiţională' procesul de calcul este in intregime ghidat
de instructiunile programului. #mediat ce s-a incheiat executarea unei instructiuni' se
trece la instructiunea urmatoare' respectand Euxul programului respecti%. =ceasta se
refera şi la interactiunea dintre program si utiliator. 5hiar dacă programul este
interacti%' initiaţi%a pri%ind datele ce trebuie introduse si in ce moment se introduc
acestea aparţine programului. (peratorului uman nu îi ramane decat sa se
conformee solicitărilor acestuia şi să introducă date atunci cand ele sunt cerute de
program. @ste e%ident ca un asemenea rol nu este deloc con%enabil pentru utiliator'care de cele mai multe ori doreşte să deţină controlul şi să e el cel care ia iniţiati%a
acţiunilor.
=pariţia interfeţelor grace a permis introducerea unei noi concepţii in
interactiunea dintre operator si aplicaţie' astfel că iniţiati%a să îi re%ina operatorului
uman' iar programul să execute comenile acestuia. 2-a trecut astfel de la
programarea procedurala traditionala la programarea orientata pe evenimente
,englea: vent-!riented "rogramming' cunoscuta şi sub numele de programare
ghidata de evenimente ,englea: vent #riven "rogramming.2e numeşte eveniment orice modicare care are loc e in starea dispoiti%elor de
intrare' e in cea a obiectelor grace de pe ecran: apasarea sau eliberarea unei taste'
deplasarea mouse-ului' apasarea sau eliberarea unui buton al mouse-ului' deschiderea
10
-
8/16/2019 Interfete Grafice Si ADO in VB NET
11/32
sau inchiderea unei ferestre' efectuarea unui clic de mouse pe un obiect de control
,buton' caseta de %alidare' bara de delare etc. ' intrarea cursorului mouse-ului în
campul acti% al unui obiect grac sau părăsirea acestuia etc. 6rebuie menţionat că pot
exista şi alte tipuri de e%enimente' fără legătură cu interfaţa gracă ,%ei noţiunea de
declanşator ,trigger pentru bae de date' dar aici ne intereseaa numai cele legatede interfaţa gracă a aplicaţiei.
#n cazul modelului de programare orientat pe evenimente' iniţiati%a execuţiei unei
anumite sec%enţe de cod aparţine întotdeauna utiliatorului. =cesta acţioneaa asupra
dispoiti%elor de intrare ,tastatura' mouse si altele' generand astfel evenimente la
care trebuie sa raspundă programul.
#nteractiunea dintre operator si aplicatie intr-un sistem baat pe e%enimente
decurge astRel:
. operatorul pro%oaca generarea unui e%eniment' acţionand asupra tastaturii'
mouse-ului sau a altui dispoiti% de intrare. #n caul tastaturii' e%enimentul
este generat prin apasarea sau eliberarea oricarei taste. #n caul mouse-ului
generarea se face e direct de catre acesta' ca urmare a deplasarii mouse-
ului sau apasarii Celiberarii unui buton' e de catre un obiect grac de pe
ecran' ca urmare a interacţiunii dintre acesta şi cursorul de mouse.
A. $n urma unei asemenea acţiuni, limba%ul &n care a fost scrisă aplicaţia
generează un obiect speci'c, numit obiect ( eveniment, obiect ce poartă )i
informaţia referitoare la controlul gra'c pentru care s-a declan)at .
L. (biectul-e%eniment este preluat de mediul run-time în care se execută
aplicaţia şi' în funcţie de tipul de e%eniment şi obiectul grac pentru care a
fost declanşat' este furniat unei metode ,operaţii specice' dacă această
operaţie există ,a fost scrisă de programator în faa Pdesign-time?.
=şadar' problema constă în identicarea modului de construire a unui program
astfel încât el să reacţionee la e%enimente. =rhitectura sistemului de operare
0indo&s este destul de complicată şi nu ne %om ocupa aici de explicarea modului
cum se nasc e%enimentele! e sucient să ştim care sunt acestea şi că mediile de
de%oltare oferă mecanisme pentru captarea şi interpretarea acestor e%enimente. În%arianta Gisual Hasic .N@6 şi a produselor similare' o aplicaţie constă din:
. un ansamblu de subrutine ce implementeaa logica de baă
A. subrutine ,proceduri sau subprograme numite metode de tratare a
evenimentelor care execută o anumită sec%enţă de cod la apariţia unui
e%eniment indi%idual. ( astfel de procedură ,mai bine is' metodă' pentru că
formularul este o clasă se ataşeaă unui control grac şi se execută numai
atunci când controlul respecti% intercepteaă e%enimentul pentru care a fostscrisă. *ltfel spus, un program va răspunde unui eveniment, care se produce
la e+ecuţie, numai dacă a fost scrisă o procedură pentru evenimentul )i
11
-
8/16/2019 Interfete Grafice Si ADO in VB NET
12/32
componenta gra'că respectivă &n caz contrar, evenimentul nu va genera
vreo modi'care vizibilă pentru utilizator .
Fiecare control plasat pe un form ,ca şi form-ul însuşi suportă mai multe tipuri de
e%enimente. 7e exemplu' o casetă de text poate răspunde la unul din următoarele
e%enimente: clic' dublu clic' introducerea unui text. 7acă pentru e%enimentul clic estescrisă o procedură' atunci când aplicaţia se %a lansa în execuţie' iar utiliatorul %a
efectua clic pe caseta de text ,se produce în acest fel e%enimentul $ se va lansa
automat &n e+ecuţie procedura de'nită.
În caul GH .N@6' metodele de tratare a e%enimentelor sunt similare
metodelorCprocedurilor clasice' diferenţa ind dată de semnătura specică:
u! denumire"etoda(#$%al sender &s $stem'!ject #$%al e &s $stem'*vent&rgs)
$an%les numeControl+rafic'numeE#eniment
'''' cod ''''
*nd ,#
=şadar' în GH .N@6' o metodă se %a declanşa automat la apariţia unui e%eniment
dacă:
1' deneşte două argumente precum cele de mai sus' unde sender %a
parametrul ce %a deţine o referinţă către controlul grac ce a generat
e%enimentul iar e %a chiar obiectul-e%eniment ,un obiect ce conţine
informaţii specice în funcţie de tipul e%enimentului
' adaugă la nalul semnăturii sec%enţa $an%les
numeControl+rafic'numeE#eniment & în mod e%ident' această parte de
semnătură precieaă mediului run-time ca' la apariţia e%enimentului
numeE#eniment pentru obiectul grac numeControl+rafic să declanşee
execuţia metodei denumire"etoda
#ată şi un simplu exemplu:
2i metodele de tratare a cator%a e%enimente :#ublic $lass Form%
#ri"ate Sub Form%&Load'B(Val sender !s S(stem)Ob*ect, B(Val e !s S(stem)E"ent!rgs+andles -(Base)Load -sgBox'.se initiali/ea/a formularul.+
End Sub
#ri"ate Sub Button1&$lic0'B(Val sender !s S(stem)Ob*ect, B(Val e !s S(stem)E"ent!rgs+andles Button1)$lic0 -sgBox'.buton apasat.+
End Sub
#ri"ate Sub Button1&-ouseLea"e'B(Val sender !s Ob*ect, B(Val e !s S(stem)E"ent!rgs+andles Button1)-ouseLea"e -sgBox'.cursorul mouseului a iesit din /ona buton1.+ End Sub
12
-
8/16/2019 Interfete Grafice Si ADO in VB NET
13/32
#ri"ate Sub $2ec0Box1&$2ec0ed$2anged'B(Val sender !s S(stem)Ob*ect, B(Val e !s S(stem)E"ent!rgs+ andles $2ec0Box1)$2ec0ed$2anged -sgBox'.noua "aloare a c2ec0boxului este3. 4 -e)$2ec0Box1)$2ec0ed+ 5f -e)$2ec0Box1)$2ec0ed T2en -e)$2ec0Box1)Font 6 7e8 Font'7e8 FontFamil('.!rial.+, 19, FontSt(le)Bold+
Else -e)$2ec0Box1)Font 6 7e8 Font'7e8 FontFamil('.!rial.+, 1:,FontSt(le)Regular+ End 5f
End SubEnd $lass
!otă. 2emnătura ,declaraţia metodelor de tratare a e%enimentelor poate
obţinută automat prin utiliarea celor două liste de tip comboHox indicate în gura de
mai )os : se %a selecta mai intâi obiectul şi apoi e%enimentul pentru care dorim să
scriem o sec%enţă de cod ce se %a declanşa la apariţia respecti%ei combinaţiie%enimentCobiect
Eemplul #
Be%enind la formularul din gura .' comportamentul acestuia ar trebui să-i ofere
utiliatorului posibilitatea de a introduce %alori ce %or apoi ascendentCdescendent' în
funcţie de butonul radio selectat. +tiliatorul %a a%ea la dispoiţie o căsuţă de text'denumită TxtValoare' prin intermediul căreia %a actualia ,adăuga'modica'şterge
elementele listei de %alori ,de tip istHox cu numele LstStanga. 5+ a)utorul
butoanelor PQP şi PSP ,cmdSelect şi cmdUnslect utiliatorul %a putea selecta
elementele pe care doreşte să le sortee ascendentCdescendent' în funcţie de butonul
radio selectat
+tiliatorul %a putea actualia lista de %alori posibile ,stanga prin una din
următoarele tehnici disponibile:- introduce un text în căsuţa TxtValoare şi îl adaugă în lista LstValori prin
intermediul butonului P=dd? ,cu numele cmd!ddd
- ştergerea elementului curent selectat în listă prin apăsarea butonului
PBemo%e?
( dată construită macheta formularului conform gurii -' %a trebui să
implementăm procedurile specice ecărui e%eniment prin care trebuie asigurată
funcţionalitatea descrisă mai sus."rimul pas în realiarea acestui deiderat este de a identica e%enimentele
generate de di%ersele componente grace ce trebuiesc interceptate şi la apariţia
cărora trebuie să se asigure un comportament addec%at. #mportant de remarcat este
13
istae%enimentelorposibil a generate deobiectul selectatin lista din stanga
ista de obiecte
grace plasate pe
formular
-
8/16/2019 Interfete Grafice Si ADO in VB NET
14/32
faptul că' deşi ecare componentă gracă poate genera mai multe tipuri de
e%enimente ,clic0' c2ange' gotfocus'lostfocus'"alid' etc.' trebuie identicate
doar acelea care au rele%anţă din perspecti%a funcţionalităţii ce trebuie implementată.
=stfel:
-
pentru butoanele de comandă %om identica e%enimentul clic0 drepte%eniment rele%ant' acesta declanşându-se apăsarea butonului atât prin
intermediul mouse-ului cât şi prin tastatură ,tasta @nter atunci când butonul
deţine controul curent al tastaturii. "entru ecare din butoanele de comandă
%om impelmenta o sec%enţă de cod specică ,ce se %a executa drept
răspuns la acelaşi e%eniment clic0 în funcţie de operaţia ce trebuie
realiată ,adăugare'modicare' ştergere sau sortare!
- pentru căsuţa de text ,txtValoare nu există deocamdată un e%eniment ce
trebuie interceptat' ea ind doar instrumentul prin care utiliatorul introducenoile %alori.
- "entru lista de elemente posibile ,lstStanga %a trebui să identicăm
e%enimentul ce se declanşeaă la selectarea unui element al listei' pentru a
prelua %aloarea selectată şi a o introduce în căsuţa de text. =stfel' utiliatorul
%a a%ea posibilitatea de a o modica. "entru componenta gracă de tip
ListBox' în GisualHasic' acest e%eniment poate tot clic0 ,se declanşeaă
e la selectarea unui element cu a)utorul mouse-ului' e la selectarea cu
a)utorul tastaturii ,tastele +p şi 7o&nd sau selected5ndex$2anged ,sedeclanşeaă şi atunci când poiţia selectată se schimbă ca urmare a execuţiei
unei sec%enţe de cod.
Listing 91) #rocedurile pentru implementarea comportamentului formularului
#ublic $lass Form1
#ri"ate Sub cmd!dd&$lic0'B(Val sender !s S(stem)Ob*ect, B(Val e !s
S(stem)E"ent!rgs+ andles cmd!dd)$lic0 5f -e)txtValoare)Text 6 .. T2en -sgBox'.5ntroduceti o "aloare;., -sgBoxSt(le)$ritical, .Eroare.+ Return End 5f
-
8/16/2019 Interfete Grafice Si ADO in VB NET
15/32
lstStanga)5tems)Remo"e!t'index+ Else -sgBox'.selectati un element din lista stanga;.+ End 5f
End Sub
#ri"ate Sub cmdUnselect&$lic0'B(Val sender !s S(stem)Ob*ect, B(Val e !s S(stem)E"ent!rgs+ andles cmdUnselect)$lic0 Dim index !s 5nteger index 6 -e)lstDreapta)Selected5ndex 5f index => 1 T2en lstStanga)5tems)!dd'lstDreapta)5tems'index++ lstDreapta)5tems)Remo"e!t'index+ Else -sgBox'.selectati un element din lista dreapta;.+ End 5f End Sub
#ri"ate Sub cmdRemo"e&$lic0'B(Val sender !s S(stem)Ob*ect, B(Val e !s S(stem)E"ent!rgs+ andles cmdRemo"e)$lic0 Dim index !s 5nteger index 6 -e)lstStanga)Selected5ndex 5f index => 1 T2en
lstStanga)5tems)Remo"e!t'index+ Else -sgBox'.selectati un element din lista stanga;.+ End 5f End Sub
#ri"ate Sub cmdSort&$lic0'B(Val sender !s S(stem)Ob*ect, B(Val e !s S(stem)E"ent!rgs+ andles cmdSort)$lic0 Dim aElemente'lstDreapta)5tems)$ount 1+ !s String
-
8/16/2019 Interfete Grafice Si ADO in VB NET
16/32
-
8/16/2019 Interfete Grafice Si ADO in VB NET
17/32
Tr( nr 6 $T(pe't)Text, Double+ $atc2 ex !s Exception -sgBox'.Doar "alori numerice;;;., -sgBoxSt(le)$ritical, .eroare "alidare date.+
-
8/16/2019 Interfete Grafice Si ADO in VB NET
18/32
frm1)lstStanga)Selected5ndex 6 : -sgBox'.next.+ frm1)cmdSelect&$lic0'frm1)cmdSelect, 7e8 E"ent!rgs'++ -sgBox'.next.+ 7ext
-
8/16/2019 Interfete Grafice Si ADO in VB NET
19/32
În ultima %reme' un nou standard a fost impus ca ind cea mai ecientă modalitate
de acces la orice tip de sursă de date externă ,relaţională şi non-relaţională:
/niversal #ata *ccess ,&$A. "rin această nouă abordare' de%oltatorul de aplicaţii
are la dispoiţie un set predenit de funcţii specice pe care le utilieaă indiferent de
tipul sursei de date pe care doreşte să o accesee ,Fox"ro' (racle' =ccess' @xcel'etcO. 4ai mult' +7= este un ansamblu de instrumente soft&are independent de
limba)' astfel că aceleaşi funcţii specice %or utiliate atât de programatorii GH cât şi
5U' .N@6' etc.
În preent standardul +7= este implementat de următoarele tehnologii ,acestea
împreună formeaă +7= ,%ei şi gura -A:
• #nterfeţe de conectare cu surse de date externe ,stratul middle&are - destinate
interconectării între mediile de execuţie a aplicaţiilor şi sursele de date externe
o!#0C $ (pen 7atabase 5onnecti%itI $ un standard middle&are pentru
acces la bae de date relaţionale!
o !1-#0 $ (b)ect in3ing and @mbedding 7H - ultima generaţie de
standard middle&are pentru acces la orice sursă de date' nu neapărat
relaţională ,V4' 6ext' Gideo' etc
• #nterfeţe de ni%el înalt' destinate utiliării în scrierea aplicaţiilor pentru utiliatorii
nali
o *ctive2 #ata !b%ects ,A$% $ o interfaţă soft&are de ni%el înalt' utiliată
de obicei în mod direct de către ma)oritatea de%oltatorilor' ce furnieaătoate funcţiile necesare manipulării datelor' din orice sursă de date' pentru
aplicaţii scrise într-un limba) pre - .N@6
o *#! .34 - acelaşi concept rescris pentru noua platformă .N@6 !
Figura 4- .e/nologii "icrosoft 0entru acces la surse de date eterne (sursa - /tt0233msdn'microsoft'com)
4.'.1. (tan%ar%e %e comunicare cu surse %e %ate )stratul mi%%le*are+
%$'C
(pen 7ataHase 5onnecti%itI constituie o interfaţă soft&are al cărei scop este acela
de a furnia o modalitate standardiată de acces la orice sursă de date ce se
conformeaă modelului relaţional' indiferent de furniorul 2*H7-ului ,#H4-7HA' (racle'
2W-2er%er' Fox"ro' =ccess' etc.. (7H5 este un standard neutru ,independent de un
anumit producător.
"entru a furnia o modalitate standardiată de acces la date în di%erse formate'
(7H5 introduce un ni%el-aplicaţie intermediar' numit driver al baei de date' între
aplicaţia client şi motorul baei de date. +n dri%er este în esenţă un set de programe
de%oltat de un furnior de 2*H7' set de programe care se conformeaă unui standard
,în caul de faţă (7H5 şi al cărui scop este:
19
-
8/16/2019 Interfete Grafice Si ADO in VB NET
20/32
- de a asigura traducerea comenilor de interogareCactualiare disponibile la
ni%elul aplicaţiei client în comeni similare pentru 2*H7-ul respecti% ,comeni
pe care acesta din urmă le Pînţelege?!
- de a returna reultatul interogărilor ,datele extrase într-un format standard'
prin care să se ofere posibilitatea aplicaţiei client de a le prelucra.5aracteristicile generale ale (7H5 sunt:
- ecienţă sporită!
- dicultate în scrierea codului
- cerinţe de resurse ,memorie' 5"+ reonabile
- compatibilitate cu tehnologiile de dae de date existente
- portabilitate la ni%elul sistemelor de operare
@senţial de remarcat este faptul că (7H5 se adreseaă aproape în exclusi%itate
accesului la date stocate în bae de date relaţionale' orice alt format de stocare ind
complicat de gestionat prin intermediul (7H5.
a ni%el arhitectural' (7H5 are la baă patru componente:
• *pplication programming interface *"I $ set de funcţii ,programe la care au
acces aplicaţiile client şi care sunt utiliate de pentru a in%oca funcţiile
interne (7H5 în următoarele scopuri:
o 2tabilirea unei conexiuni la baa de date
o "reluarea unui set de date din sursa de date
o 6rimiterea spre executie a unor comeni de actualiare a datelor
o Închiderea conexiunii
• Gestionar de drivere #river manager $ furnieaă informaţii către aplicaţia
client cu pri%ire la lista de surse de date disponibile şi încarcă dri%erele în
mod dinamic pe măsură ce sunt necesare unei aplicaţii sau alteia
• #river - este componenta furniată în mod specic de proprietarul 2*H7-ului
şi care îndeplineşte următoarele funcţii:
o proceseaă efecti% apelurile aplicaţiei client către funcţiile (7H5!o îi re%ine în exclusi%itate sarcina de a gestiona schimburile de date între
aplicaţia-client şi baa de date !
o dacă este necesar' asigură translaţia comenilor 2W standard în 2W
nati% ,specic pentru sistemul respecti% de gestiune a H7
• 5ursa de date data source - cuprinde datele intrinseci şi motorul de gestiune
a baei de date asociat
Figura 4- &r/itectura 5#C
=spectul fundamental ce trebuie reţinut în legătură cu (7H5 se referă la faptul că
de%oltatorii de aplicaţii %or utilia acelaşi set de funcţii furniate de (7H5-="#'
indiferent de 2*H7-ul la care se conecteaă. 5a urmare' de%oltatorii nu %or ne%oiţi
20
-
8/16/2019 Interfete Grafice Si ADO in VB NET
21/32
să în%eţe comeni 2W specice ecărui 2*H7 ,deşi 2W este în sine un standard'
ma)oritatea producătorilor de 2*H7-uri implementeaă şi extensii proprii' funcţiunea
de translaţie 2W standard2W proprietar ind asigurată de dri%er.
%(E$'
7in capul locului (7H5 nu a fost conceput pentru a oferi un mecanism de conectarela surse de date non-B74H2 ,Belational 7atabase management 2Istems' deşi există
dri%ere non-relaţionale. 6ocmai din acest moti% s-a simţit ne%oia de%oltării unui alt
mecanism.
%(E $' este te)nologia actuală recomandată de Microsoft pentru
conectarea unei aplicaţii la diverse surse de date ,şieree text' @xcel' bae de
date relaţionale' etc. prin intermediul unei interfeţe soft&are standard denumită
generic 5(4 ,5omponent (b)ect 4odel
(@ 7H utilieaă termenul Ppro%iders? pentru a deni acel Pmiddle&are? ,setul de
programe ce gestioneaă specicul comunicaţiei între două sisteme eterogene
corespunător di%erelor (7H5 şi care conţine instrucţiunile necesare pentru a
comunica cu un anumit de depoit de date. "rogramatorii aplicaţiilor front-end trebuie
să-şi procure acest pachet soft&are înainte de a putea realia o conexiune la sursa de
date.
Figura2 6* 5# oferă o interfa7ă standard 0entru conectare la surse de date diverse (nu doar la !aze de daterela7ionale)
Pa*ii pe care o aplicaţie îi va parcurge pentru a manipula datele unei
surse de date eterne
În general' pentru a lucra cu bae de date prin (7H5' o aplicaţie %a parcurge
următorii paşi:
. =locarea unei conexiuni - se alocă spaţiu de memorie pentru datele specice
conexiunii
A. 5onectare $ se specică informaţiile de identicare a sursei de date şi
autenticare ,nume utiliator' parola
L. =locarea fraei 2W $ fraa 2W se asociaă unei conexiuni. "ot asociate mai
multe frae 2W cu o coenxiune dar numai una este cea Pacti%ă? la un moment
dat
. @xecuţia fraei 2W $ este faa de procesare a fraei 2W :
a. Fraa este trimisă dri%er-ului
b. 7ri%er-ul o con%erteşte în 2W nati% 2*H7-ului ,e%entual şi o trimite
motorului H7 pentru execuţie
c. 4otorul H7 execută fraa 2W şi returneaă reultatul
d. 7ri%er-ul preia datele-reultat' le con%erteşte ,e%entual pentru a
inteligibile aplicaţiei-client' şi le trimite aplicaţiei-client
21
-
8/16/2019 Interfete Grafice Si ADO in VB NET
22/32
9. "relucrarea setului de reultate $ aplicaţie client preia de la dri%er reultatele şi
le utilieaă în mod specic!
D. @liberarea conexiunii ,dealocarea fraei 2W$ aplicaţia-client distruge
elementele de asociere fraă-conexiune. În acest moment se poate aloca o nouă
fraă 2W respecti%ei conexiuni!;. 7econectarea $ presupune ştergerea informaţiilor de conectare de la ni%elul
conexiunii!
X. 7ealocarea conexiunii $ eliberarea spaţiului de memorie utiliat de conexiune!
4.'.2. ,cti#e ata /0ects .NET
7upă cum preciam şi ce%a mai de%reme' =7( repreintă o interfaţă de ni%el înalt
destinată utiliării directe de către de%oltatorii de aplicaţii ce implică acces la date
stocate în surse externe.
=7( furnieaă un model logic o+iectual sucient de Eexibil pentru a interoga şi
actualia datele reidente în surse externe. =ccesul la date se realieaă prin
intermediul interfeţei soft&are (@ 7H dar acest ni%el de mi)loc este total transparent
pentru programator. 5a urmare' programatorii nu trebuie decât să înţeleagă looa şi
funcţionalitatea interfeţei =7( pentru a de%olta aplicaţii robuste ce necesită acces la
bae de date.
#ată o parte din %asta funcţionalitate a acestei tehnologii:
• #nterogarea unei bae de date' utiliând 2W' şi aşarea reultatului!
• 5rearea şi reutiliarea comenilor 2W parametriate!
• 5rearea dinamică a unei structuri tabelare Eexibile' denumită Becodset'
pentru a manipula datele extrase din H7!
• Furniarea unui mecanism pentru a grupa actualiările sensibile în tranacţii
distincte!
• 5onectarea atributelor unei tabele la controale grace!
•
Filtrarea şi sortarea dinamică ,pe baa unor parametri furniaţi la runtime acopiilor locale ale datelor extrase din H7
• =ctualiarea înregistrărilor tabelelor din baa de date!
• 5rearea obiectelor în baa de date!
• ansarea în execuţie a procedurilor stocate în baa de date!
• @xtragerea informaţiilor dintr-un şier stocat pe #nternet!
• 4anipularea mesa)elor şi structurilor de stocare într-un sistem e-mail!
• 2la%area datelor extrase dintr-o baă de date într-un alt format: spre exemplu
şier V4 ,eVtended4ar3upanguage!
22
-
8/16/2019 Interfete Grafice Si ADO in VB NET
23/32
"entru a oferi o asemenea Eexibilitate' =7( furnieaă o largă %arietate de opţiuni
de setare şi funcţii specice. 7e aceea este important a se urmări o abordare
metodică pentru a identica modalitatea de utiliare a =7( în aplicaţiile proprii.
Modelul %+iectual A$% .!ET 6ehnic %orbind' interfaţa =7( se constituie dintr-un set de clase predenite ecare
specialiată pentru o anumită operaţie: realiarea conexiunii cu sursa de date'
execuţia unei comeni ,2W sau non-2W pe ser%erul H7' manipularea datelor din
sursa de date' tratarea erorilor. Figura -9 preintă ansamblul celor mai utilizate
dintre aceste clase' şi dependenţele dintre ele' iar tabelul - descrie succint
funcţionalitatea ,scopul ecăreia.
5a urmare' la ni%elul aplicaţiei-client' de%oltatorul nu %a trebui decât să
manipulee în mod corespunător obiecte din aceste clase pentru a-şi asigura accesul
la date precum şi prelucrarea acestora.
Clasa $escriereConnection -
obiect+n obiect din această clasă repreintă o sesiune distinctă
,conexiune către sursa de date. "rin intermediulproprietăţilor,atributelor şi metodelor acestei clase se specicăinformaţiile de conectare ,localiarea sursei de date' nume deutiliator' parolă' etc.. 6ot la acest ni%el sunt furniate şi metodepentru a iniţialia un obiect pentru gestionarea tranacţiilor
Transaction (biect ce furnieaă metode pentru delimitarea tranacţiilor,momentul de la care începe o nouă tranacţie şi metode pentrucommitCrollbac3 ,permanentiareaCanularea modicărilorefectuate asupra datelor din baa de date în cadrul tranacţieirespecti%e.
Command $obiect
Încapsuleaă ,conţine intern comeni exprimate în limba)ulspecic sursei de date ,în caul baelor de date' comeni 2W
"rin intermediul unui obiect din acestă clasă se denesccomeni ce %or trimise sursei de date spre execuţie , 2W 74,2electC+pdateC7eleteC#nsert sau 77 ,5reate' =lter . 6ot cua)utorul unui obiect de acest tip se pot executa proceduristocate.
$ata,eader (biect ce permite obţinerea unui set de date ce poate parcurs doar într-un sisngur sens şi este read-onlI ,nu permitemodicări. "entru că oferă o performanţă ridicată d.p.d.%al%iteei de încărcare a datelor' este recomandat pentru caurile în care se doreşte doar aşarea datelor
$ataAdapter Bealieaă o punte de comunicare între sursa de date şi setulde date obţinut local. +n obiect de acest tip %a utiliat atâtpentru obţinerea şi încărcarea cu date a unuia sau mai multor
obiecte 7ata2et cât şi pentru actualiarea sursei de date externecu datele modicate din obiectul 7ata2et manipulat local.7ata=dapter poate conţine maxim obiecte 5ommand
,pentru extragereCmodicareCştergereCadăugare date şiutilieaă aceste obiecte atunci când aplicaţia solicită încărcarea
23
-
8/16/2019 Interfete Grafice Si ADO in VB NET
24/32
unui 7ata2et ori sal%area modicărilor din 7ata2et în sursa dedate.
$ataet +n obiect Dataset repreintă ,încapsuleaă seturi de înregistrări obţinute în urma execuţiei unor comeni 2elect-2Wsau adăugate de aplicaţie prin sec%enţe de cod specice ,%orde%eni noi înregistrări în sursa de date. @xistă posibilitatea ca
obiectul 7ata2et să conţină înregistrările obţinute în urma maimultor comeni 2elect-2W. 5a urmare' setul de date aferentecărei comeni 2elect-2W %a repreentat sub forma unuiobiect $ataTa+le
$ataTa+le 5onţine setul de date aferent unei singure comeni 2W-2elect. 2etul de date este repreentat intern sub forma unorcolecţii ,obiecte 5ollection $ %ei partea a cursului de obiectede tip $ata,o- ,7ataBo&5ollection şi $ataColumn,7ata5olumn5ollection
$ata,o- 5onţine o colecţie cu toate datele aferente unei singure înregistrări.$ataColumn 5onţine o colecţie cu informaţii despre ecare atribut obţinut
în urma unei interogări 2W ,denumire' tip' dacă este cheieprimară' etc
Parameters colecţie
+tiliat în caul comenilor 2W parametriate. 5onţineparametrii ,obiecte de tip "arameter asociaţi unei comeni,obiect 5ommand.
Primul Test A$%.!ET / structura generală a unui program ce manipulează
date din surse eterne@xemplele ce urmeaă %or a%ea drept sursă de date o baă de date relaţională
,42=ccess' "ostgre2W' (racle' 2W2er%er' etc cu două tabele: "roduse şi 7epoite
,%ei gura următoare
Figura 4-8 !is - 5ate 0entru teste
În general' pentru a utilia surse de date externe' o aplicaţie GH parcurge următoriipaşi:
. instanţiaă clasa (le7H$onnection şi utilieaă metodele obiectului obţinut
pentru a furnia informaţiile de conectare şi a deschide conexiunea cu sursade dateA. efectueaă operaţiuni de citireCactualiare date
o instanţiaă clasa (le7b7ata=dapter şi (le7b7ata2et' acest dinurmă obiect ind utiliat pentru citirea datelor' după ce obiectul(le7b7ata=dapter încarcă datele în 7ata2et
o pentru citirea datelor se utilieaă colecţia 7ataBo&s5ollectionconţinută de obiectul 7ata2et
o pentru actualiarea datelor se poate utilia: obiectul 7ata2et' asupra căruia se efectueaă operaţiuni de
adăugareCmodicareCştergere înregistrări şi' apoi' se utilieaă
obiectul 7ata=dapter pentru a trimite modicările în sursa dedate
un obiect (le7b5(mmand pentru a executa direct frae 2W#nsertC+pdateC7elete în sursa de date
24
-
8/16/2019 Interfete Grafice Si ADO in VB NET
25/32
L. închide conexiunea cu sursa de date atunci când nu mai sunt necesareoperaţii de acces la date
+n prim exemplu %a consta în extragerea şi aşarea datelor pentru "rodusele din
categoria P=? .
Notă. 2tructura baei de date este cea din gura -9
#ată codul sursă GisualHasic .N@6:6isting 4- &fi9area înregistrărilor ta!elei Personal 0rin intermediul &5
-odule Teste!ccessDB
-
8/16/2019 Interfete Grafice Si ADO in VB NET
26/32
Actualizarea $atelor
@xistă două %ariante de lucru pentru actualiarea datelor din surse externe prin
intermediul componentelor =7( .N@6:
. +tiliarea unor obiecte 5ommand ,e (ledb5ommand' e (dbc5ommand $ in
functie de tehnologia middle&are de conectare pentru fraele 2W#nsertC+pdateC7elete. În această %ariantă' se pot construi :
a. (biecte 5ommand diferite ,câte unul pentru updateCinsertCdelete
pentru ecare tabelă ce %a actualiată !
b. un singur obiect 5ommand pentru care proprietatea command6ext se
modică în mod dinamic.
A. utiliarea obiectelor 7ata2et şi 7ata=dapter
0arianta 1 Actualizarea datelor prin intermediul o+iectelor Command
2fraze 3( eecutate direct pe sursa de date4
În această %ariantă se obţine cât un obiect 5ommand pentru ecare ecare fraă
2W şi se in%ocă metoda Eecute!on3uer524. În acest ca' 2tring-ul ce corespunde
fraei 2W se construieşte în mod dinamic prin concatenarea părţilor statice
,precum Pinsert into SnumetabelaQ %alues ,P cu datele corespunzătoare ecărei
operaţii.Sub actuali/ari&%'+ Dim cmd !s OleDb)OleDb$ommand, conn !s OleDb)OleDb$onnection Dim codprod, pret !s Double Dim den, cat !s String, data !s Date
conn 6 get$onexiune'+< "e/i functia in listingurile anterioare
< o noua inregistrare3 codprod 6 1:A den 6 .produs 1:A. pret 6 %%A cat 6 .B. data 6 1:K%AK%::A cmd 6 7e8 OleDb)OleDb$ommand'.insert into produse "alues ' . 4 & codprod 4 .,
-
8/16/2019 Interfete Grafice Si ADO in VB NET
27/32
Tr( cmd)Execute7onIuer('+ $atc2 ex !s Exception -sgBox'.Eroare la modificarea datelor3. 4 ex)-essage+ End Tr(
-
8/16/2019 Interfete Grafice Si ADO in VB NET
28/32
data!dapter)5nsert$ommand 6 builder)Net5nsert$ommand data!dapter)Delete$ommand 6 builder)NetDelete$ommand
dataSet#roduse 6 7e8 DataSet
-
8/16/2019 Interfete Grafice Si ADO in VB NET
29/32
Actualizarea datelor prin fraze 3( parametrizate
5ea mai facilă şi utiliată %ariantă de actualiare a datelor utilieaă obiecte
5ommand şi obiecte "arameter' astfel:
. se denesc fraele 2W de aşa manieră încât' acolo unde %or apare' ulterior ,laexecuţie' %alori introduse de utiliator' se scrie un nume de %ariabilă' precedat de
semnul PY?. 2emnul Y are rolul de a delimita textul static al fraei 2W ,Pinsert
into...? de părţile care %or prelua datele reale ce trebuie modicate. 2pre exemplu'
trei frae 2W parametriate pentru actualiarea tabelei "roduse pot scrise astfel: .insert into produse "alues 'Pcod,Pden,Ppret,Pcateg,Pdata+.
.update produse setcodprodus6Pne8cod,denumire6Pden,pret6Ppret,categorie6Pcateg,dataintrare6Pdata 82erecodprodus6Poldcod.
.delete from produse 82ere codprodus6Pcod.
#4"(B6=N6 : Fiecare semn PY? deneşte un parametru. Înainte ca fraa respecti%ă
să e executată efecti% de motorul baei de date' acel parametru %a trebui să
primească o %aloare
A. fraele 2W astfel denite se utilieaă la iniţialiarea unui obiect $ommand:
Dim cmd !s 7e8 OleDb)OleDb$ommand'Qinsert into produse "alues
'Pcod,Pden,Ppret,Pcateg,Pdata+, conn+
L. "@N6B+ F#@5=B@ "=B=4@6B+ se deneşte câte un obiect #arameter, obiect ce
"a conine "aloarea acelui parametru. #ată modul de denire a doi parametri
pentru codul produslui ,%aloarea 99D si denumirea acestuia ,%aloarea Pprodus
test?:Dim param$od !s OleDb)OleDb#arameter param$od 6 7e8 OleDb)OleDb#arameter'.cod., 1AA+Dim paramDen !s OleDb)OleDb#arameter paramDen 6 7e8 OleDb)OleDb#arameter'.den., Qprodus test+
- primul argument al contructorului corespunde denumirii parametrului $Pcod?'
Pden? $ se obser%ă că în acest ca N+ se utilieaă semnul Y
- al doilea repreintă %aloarea şi trebuie să corespundă restricţiilor atributului'
din tabela sursă' la care se referă. "rincipalele restricţii sunt:
o tipul $ tipul %alorii trebuie să corespundă tipului atributului din tabelă
,#ntegerC7ouble pentru numere' 2tring' 7ate etc.!
o lungimea $ %aloarea nu trebuie să depăşească lungimea maximă
denită pentru atributul tabelei!
. obiectele #rameter obţinute anterior se adaugă în colecţia parameters a obiectului
$ommand. =stfel' pentru exemplu de mai sus:
29
-
8/16/2019 Interfete Grafice Si ADO in VB NET
30/32
cmd)#arameters)!dd'param$od+
-
8/16/2019 Interfete Grafice Si ADO in VB NET
31/32
cmd)#arameters)!dd'param+ Tr( cmd)Execute7onIuer('+ -sgBox'.operatie reali/ata cu succes;.+ $atc2 ex !s Exception -sgBox'ex)-essage, -sgBoxSt(le)$ritical, .Eroare.+ End Tr(
conn)$lose'+ End Sub
Sub modifica#rodus'B(Val ne8cod#rodus !s 5nteger, B(Val old$Od#rodus !s 5nteger, & B(Val denumire !s String, B(Val pret !s Double, & B(Val categorie !s String, B(Val dataintrare !s Date+ Dim nrRo8sUpdated !s 5nteger Dim conn !s OleDb)OleDb$onnection 6 get$onexiune'+
Dim cmd !s 7e8 OleDb)OleDb$ommand'SILUpdate#roduse, conn+ Dim param !s OleDb)OleDb#arameter param 6 7e8 OleDb)OleDb#arameter'.cod., ne8cod#rodus+ cmd)#arameters)!dd'param+ param 6 7e8 OleDb)OleDb#arameter'.den., denumire+ cmd)#arameters)!dd'param+ param 6 7e8 OleDb)OleDb#arameter'.pret., pret+ cmd)#arameters)!dd'param+ param 6 7e8 OleDb)OleDb#arameter'.categ., categorie+ cmd)#arameters)!dd'param+ param 6 7e8 OleDb)OleDb#arameter'.datai., dataintrare+ cmd)#arameters)!dd'param+
-
8/16/2019 Interfete Grafice Si ADO in VB NET
32/32
2curt test al procedurilor:$!LL Teste!ctuali/ari#arametri/ate )adauga#rodus'AWA,.test !.,%:?,.B.,:AK:AK%::+
$!LL Teste!ctuali/ari#arametri/ate )modifica#rodus'AWA,AW,.test !.,%:?,.!.,:AK:AK%::+
$!LL Teste!ctuali/ari#arametri/ate )sterge#rodus'AW+
Managementul tranzacţiilor
Sub test&tran/actii'+ Dim conn !s OleDb)OleDb$onnection 6 get$onexiune'+
Dim tran/actie !s OleDb)OleDbTransaction conn 6 get$onexiune'+