Interfete Grafice Si ADO in VB NET

Embed Size (px)

Citation preview

  • 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'+