Sunteți pe pagina 1din 7

Primii pai n Visual Basic .

NET

Laboratorul 1 Primii pai n Visual Basic .NET

Ce ne propunem astzi? n laboratorul de astzi ne propunem crearea unei aplicaii simple pentru evidena studenilor unei faculti. n cadrul acestei aplicaii vom utiliza cteva dintre facilitile POO oferite de Visual Basic .NET. Din pcate vom arta numai o mic parte din acestea, urmnd s nvm mai mult la curs i pe parcursul lucrrilor de laborator ce vor urma.

Microsoft Visual Studio.NET este un mediu de dezvoltare folosit pentru crearea de aplicaii n limbajele de programare: Visual Basic, C#, C++ sau J# (ncepnd cu versiunea 2005). Visual Studio.NET dispune de un editor complex de cod, care se folosete pentru crearea, modificarea i depanarea codului aplicaiei (poate fi vorba de cod Visual Basic .NET, Visual C# .NET etc.). De asemenea, ofer un set de obiecte i instrumente cu ajutorul crora se pot realiza cu uurin interfee cu utilizatorul pentru Windows, Web, servicii WEB etc. Visual Basic .NET este un limbaj de programare care face parte din familia de limbaje .NET, dup cum o sugereaz i numele. Este un limbaj modern, puternic, complet orientat pe obiecte, la fel de valoros ca C# sau Java, care permite dezvoltarea att de aplicaii Windows ct i de aplicaii i servicii WEB. O alta caracteristic demn de amintit a acestui limbaj este aceea ca reuete s pstreze sintaxa simpl care a fost ntotdeauna elementul distinctiv al familiei de limbaje BASIC. O aplicaie tipic Windows, realizat n Visual Basic .NET, afieaz unul sau mai multe ecrane coninnd obiecte cu care utilizatorul va interaciona. Obiectele programului sunt ferestrele aplicaiei (denumite de asemenea Forms, sau formulare) i controalele desenate pe ele n mod vizual. n cadrul unei aplicaii Windows formularele sunt elementele de baz ale interfeei cu utilizatorul. n Visual Basic .NET formularele sunt complet orientate pe obiecte, ele reprezentnd de fapt clase. n momentul n care se creeaz un nou formular, fie deschiznd un proiect nou de tip Windows Application, fie adugnd un nou formular proiectului existent (folosind caseta de dialog Add New Item), i se adaug de fapt proiectului o clas care deriv din clasa System.Windows.Forms.Form, creia i se mai spune pe scurt clasa Form, iar noua clas motenete toi membrii clasei existente. Controalele sunt suportul interfeei cu utilizatorul, al dialogului cu acesta. Acestea nu pot exista independent de formular, formularul fiind din acest punct de vedere un container cu mai multe controale. Dup realizarea formularelor i adugarea controalelor dorite pe acestea, programatorul trebuie s adauge cod surs i s-l ataeze unor evenimente care s permit utilizatorilor s

Laborator 1 MTP

interacioneze cu programul. De exemplu, dac se dorete ca un buton de comand s deschid un formular, n procedura corespunztoare evenimentului Click asociat acelui buton, se va plasa codul corespunztor deschiderii unui nou formular. Evenimentele se produc ca urmare a unei aciuni a utilizatorului, a execuiei programului sau pot fi declanate de sistem. Producerea unui eveniment (Click, Double Click, Drag&Drop, KeyPress etc.) declaneaz execuia unei proceduri eveniment. Utilizatorul poate crea propriul cod n corpul acestei proceduri. Apelarea unei proceduri eveniment pentru un obiect dat se face automat, dac obiectul e focalizat i dac se produce o aciune care s declaneze respectivul eveniment. Procedura eveniment poate fi apelat i prin cod, la fel ca orice alt procedur, ns acest lucru nu va duce i la declanarea evenimentului asociat. Exemplu:
Nume_Obiect.Nume_Eveniment(Lista_Argumente)

Metodele obiectelor vizuale , spre deosebire de procedurile eveniment, sunt read-only. Ele pot fi doar apelate. Exista cteva metode comune tuturor obiectelor vizuale, n rest fiecare obiect avnd propriile lui metode. Metodele se apeleaz n felul urmtor:
Nume_Obiect.Nume_Metoda(Lista_Argumente)

Att formularele ct i controalele au asociate un set de proprieti prin intermediul crora pot fi setate caracteristici ale acestora, cum ar fi: poziia i dimensiunea stilul i comportamentul aspectele grafice etc.

Anumite proprieti pot fi modificate la proiectare (folosind fereastra de proprieti), altele pot fi modificate doar n timpul execuiei, altele permit accesul i la proiectare i la execuie. La execuie, valoarea unei proprieti poate fi modificata prin instruciuni de forma:
Nume_Obiect.Nume_Proprietate = Valoare

Realizarea unei aplicaii Visual Basic .NET nseamn parcurgerea urmtoarelor etape: proiectarea mental sau pe hrtie a interfeei utilizator, crearea unui proiect nou, crearea de formulare (unul pentru fiecare fereastr a aplicaiei), adugarea de controale formularelor, folosind caseta de instrumente (ToolBox), crearea unei bare de meniu i/sau a unei bare de instrumente (ToolBar) pentru funciile principale ale aplicaiei (opional), setarea proprietilor formularelor i controalelor, scrierea codului (declaraii de variabile, funcii, proceduri sau clase, respectiv asocierea de cod pentru evenimentele obiectelor vizuale), testarea aplicaiei, crearea fiierului executabil i a kit-ului de distribuie.

Primii pai n Visual Basic .NET

Noiuni elementare de Programare Orientat pe Obiecte n Visual Basic .NET


Clase i proprieti
O clas poate conine cmpuri, metode sau proprieti. Membrii claselor pot avea oricare din specificatorii de acces permii n Visual Basic: Private, Friend, Protected, Protected Friend i Public. Proprietile reprezint modaliti de expunere public a cmpurilor unei clase, putnd, la nevoie, s ofere numai drept de citire (read only) sau drept de scriere (write only). Avantajul utilizrii proprietilor este acela c ele permit scrierea de cod asociat operaiilor de atribuire i verificarea n acest fel a validitii datelor transmise. n exemplul de mai jos se definete clasa Persoana care are dou cmpuri private i dou proprieti publice care acceseaz cmpurile private nume i varsta. Proprietatea NumePersoana poate fi accesat att n mod citire ct i n mod scriere, pe cnd proprietatea VarstaPersoana poate fi accesat numai n mod citire.
Class Persoana Private nume As String Private varsta As Byte Public Property NumePersoana() As String Get Return nume End Get Set(ByVal value As String) nume = value End Set End Property Public ReadOnly Property VarstaPersoana() As Byte Get Return varsta End Get End Property End Class

Motenire
Pentru a putea observa modul de utilizare a motenirii n Microsoft Visual Basic, vom defini o clas de baz:
Public Class Persoana ' campuri publice Public Nume As String Public Prenume As String Public Function NumeComplet() As String Return Nume & " " & Prenume End Function End Class

Pentru a deriva o clas Angajat din Persoana avei nevoie s adugai o clauz Inherits imediat dup declaraia clasei:

Laborator 1 MTP

' clasa Angajat motenete clasa Persoana. Public Class angajat Inherits Persoana End Class

Interfee
n linii mari, o interfa reprezint o clas abstract, un set de membri pe care i expune o clas. De exemplu, toi membrii publici ai unei clase se spune c aparin interfeei clasei, ns o clas poate de asemenea s expun i alte grupuri de proprieti i metode care nu sunt vizibile public. O interfa definete numai semntura proprietilor i metodelor (numele membrului, numrul i tipul parametrilor, tipul i valoarea returnat), pe cnd o clas poate implementa acea interfa furniznd, dup nevoie, codul pentru aceste proprieti i metode. Codul din fiecare proprietate i metod poate s difere de la clas la clas, semantica fiecrei metode fiind pstrat. Faptul c fiecare clas poate implementa aceeai proprietate sau metod ntr-un mod diferit reprezint baza pentru comportamentul polimorfic. Putei defini o interfa n Visual Basic prin intermediul blocului InterfaceEnd Interface:
Public Interface Interfata ReadOnly Property Denumire() Property Valoare() Sub Init() End Interface

Interfeele Visual Basic nu pot conine cod executabil; putei include numai semnturi de metode i proprieti. Iat cum ar arta o clas care implementeaz interfaa definit mai sus:
Class Clasa Implements Interfata Public Sub Init() Implements Interfata.Init End Sub Public ReadOnly Property Denumire() As Object Implements Interfata.Denumire Get End Get End Property Public Property Valoare() As Object Implements Interfata.Valoare Get End Get Set(ByVal value As Object) End Set End Property End Class

Primii pai n Visual Basic .NET

Partea practic a laboratorului


n cadrul acestui laborator se va crea n Visual Basic .NET o aplicaie care s permit: crearea unei structuri de clase i a unei liste de studeni, afiarea ntr-un control de tip ListBox a studenilor din cadrul unei faculti, adugarea unui nou student, ordonarea studenilor dup nume, ordonarea studenilor dup medie descresctor, afiarea studenilor dintr-un anumit an de studiu, cutarea unui student dup nume, tergerea unuia sau a mai multor studeni (n funcie de selecia facut n ListBox).

Figura 1. Fereastra aplicaiei Sfaturi utile Nu pierdei timpul ncercnd s construii o interfa grafic extraordinar de spectaculoas. Axai-v n principal asupra aspectului funcional al aplicaiei. ncercai s implementai toate cerinele aplicaiei, apoi testai aplicaia i eliminai posibilele erori!

Mod de lucru
Iat paii care trebuie urmai: Se definesc doua clase: clasa Persoana (clas de baz) i clasa Student (clas derivat).

Laborator 1 MTP

Clasa Persoana va avea ca membri: o Variabile protected: nume (String), varsta (Byte) Clasa Student va avea ca membri: o Variabile private: an (Byte), grupa (Byte), note(4) (Byte - ir de 5 note) o Proprieti publice read only: AnStudiu (Byte), NumeStudent (String) o Metode publice: Medie() As Single, AfisareStudent() Este preferabil ca declararea celor dou clase s se fac ntr-un modul nou de program (din meniul Project, comanda Add Module). De regul modulele de program Visual Basic sunt utilizate atunci cnd dorim s declarm clase, funcii, variabile sau constante publice al cror domeniu de vizibilitate s fie extins la ntregul proiect.

Observaie:

Se implementeaz o list de obiecte pentru clasa Student.

Exemplu:
Dim stud As New ArrayList 'crearea listei de studenti Dim s as New Student 'crearea unui obiect de tip Student ' stud.Add s 'adaugarea obiectului anterior creat in lista stud CType(stud(0),Student).Afisare 'apelarea unei metode a primului obiect din lista

Observai c, pentru accesarea unui membru al listei, este nevoie de o conversie explicit a obiectului returnat de list la tipul Student (funcia CType din ultima linie de cod). Acest lucru se ntmpl deoarece membri listei sunt stocai ca obiecte de tip Object (acest tip de dat poate stoca orice tip de obiect). Se vor prevedea modaliti de verificare a validitii datelor introduse de la tastatur (cazul variabilelor numerice), prin utilizarea blocurilor TryCatch.

Exemplu:
Try 'instructiunile care pot provoca aparitia unei erori Catch ex As Exception 'Tratarea erorii, eventual prin afisarea descrierii erorii: 'MessageBox.Show(ex.Message) End Try

Observaii:

Proprietile read-only NumeStudent i AnStudiu din clasa Student, dau acces n mod citire la datele studentului, care altfel nu ar fi fost accesibile din afara clasei. Sortarea studenilor se va face prin metoda Sort a listei (ArrayList). Pentru aceasta trebuie definit o clas care s implementeze interfaa IComparer (aceasta are un singur membru: metoda public Compare) i s suprancarce metoda Compare pentru a-i da sensul dorit. o Mai multe informaii despre aceasta se pot gsi la o cutare n Help dup: ArrayList.Sort Method (IComparer).

Primii pai n Visual Basic .NET

Cu ce ne-am ales? Prin aplicaia dezvoltat n cadrul laboratorului de astzi am reuit s ne familiarizm pe de-o parte cu stilul de programare Visual Basic .NET, iar pe de alt parte am luat contact cu o parte din facilitile POO oferite de acest limbaj.

Bibliografie [1] http://msdn.microsoft.com/en-us/vbasic/default.aspx