Sunteți pe pagina 1din 22

Introducere n Visual Studio .

Net

1. Introducere n Visual Studio .NET

1.1. Visual Basic


Limbajul Visual Basic deriv din limbajul BASIC, sau, mai precis din versiunea Microsoft a limbajului BASIC QuickBasic. Prima dat cnd a aprut, Visual Basic a revoluionat programarea Windows. Prin tratarea multor aspecte ale procesrii evenimentelor Windows, acesta a permis programatorilor s se concentreze asupra detaliilor specifice aplicaiilor n loc s se risipeasc n probleme de rutin ce in de programarea Windows. n ceea ce privete stilul de programare, Visual Basic a urmrit o cale diferit fa de alte limbaje, precum C++, anume aceea de a oferi un mediu de programare mai productiv i, n general, o sintax mai intuitiv. n orice caz, sintaxa Visual Basic nu era prea recomandat celor care doreau s dezvolte aplicaii orientate pe obiecte. Dezvoltatorii software puteau, totui, s construiasc aplicaii sigure, fiabile i extensibile, ns aveau nevoie de ceva experien. Visual Studio .NET a reuit s rezolve multe dintre deficienele versiunilor anterioare. Astfel, Visual Basic conine numeroase mbuntiri, apropiindu-se ca stil de programare de C++, dar, n acelai timp, pstrnd sintaxa specific limbajului. A fost adugat C#, un limbaj avnd o sintax orientat pe obiecte, bazat pe C++, care include de asemenea aspecte specifice ctorva limbaje de programare, n special Delphi i Java (proiectul C# a fost condus de ctre Anders Hejlsberg, cel care anterior a condus proiectul Delphi), cu accent special pe simplificare. Visual Basic .NET conine modificri menite s-l alinieze la CLR (Common Language Runtime) i la celelalte limbaje de programare. Astfel, include o nou modalitate de tratare a erorilor, sintaxe noi pentru declaraii i iniializri de variabile, suprancrcarea funciilor i a subrutinelor i un model mai puternic pentru crearea claselor care include motenire real (comparativ cu versiunile anterioare ale limbajului, care permiteau declaraii de clase, ns nu i mecanisme de motenire). Visual Basic 2008 adaug faciliti noi care fac din Visual Basic un limbaj mai puternic ca oricnd. Astfel, acesta include noi faciliti de limbaj i mbuntiri specifice programrii orientate pe obiecte. Visual Basic .NET poate fi vzut ca o evoluie a clasicului Visual Basic, implementat ns pe Microsoft .NET Framework. Introducerea acestuia a generat unele controverse n rndul comunitii de dezvoltatori prin faptul c Visual Basic a suferit modificri majore care rup compatibilitatea cu versiunile anterioare (compatibilitatea de sus n jos). Proiectele mai vechi, scrise Visual Basic, pot fi importate n .NET folosind un wizard dedicat acestui scop, excepie fcnd, printre altele, secvenele de cod care acceseaz baze de date prin alte tehnologii dect Microsoft ADO (ActiveX Data Objects).

1.2. .NET Framework


Microsoft a creat .NET Framework pentru a face mai uoar dezvoltarea de aplicaii pentru diversele versiuni ale sistemului de operare Windows.

Medii i Tehnologii de Programare curs

Totui, dezvoltarea aplicaiilor n .NET nu ar trebui s fie mai greoaie dect n versiunile anterioare, , ci dimpotriv. .NET Framework i Visual Basic 2008 pot fi unelte puternice, iar trucul const n descoperirea modului n care acestea conlucreaz prin intermediul mediului de dezvoltare integrat (IDE - Integrated Development Environment) Visual Studio. O bun parte din dificultile pe care le ntmpin programatorii cnd migreaz migre la .NET Framework provin deruta provocat de terminologia specific. Pentru ru eliminarea oricror confuzii vom expune n continuare principalii termenii utilizai n dezvoltarea aplicaiilor .NET. Cadrul de lucru .NET) este plasat ntre limbajul de programare (de ( .NET Framework (Cadrul exemplu, Visual Basic, C# etc.) i sistemul de operare (de la Windows 98 i Windows NT pn la Windows Vista i Windows Server 2008, sau orice alte sub-versiuni versiuni ale acestora, cum ar fi cele destinate dispozitivelor mobile). mobile) .NET Framework ofer funcionaliti funcionalit specifice sistemului de operare Windows, Windows furniznd ns i biblioteci care extind aceste funcionaliti (calcule matematice, accesarea bazelor de date). date) Figura 1.1 ilustreaz vizual relaia ntre toate nivelele din .NET Framework.

Figura 1.1. Ierarhia .NET Framework.

Microsoft .NET Framework reprezint re o tehnologie software care include o uria bibliotec de clase (BCL), care ofer soluii la probleme uzuale de programare, programare i o main virtual (CLR) care gestioneaz execuia execu programelor scrise special pentru cadrul de lucru. Soluiile pre-codate care formeaz Base Class Library (BCL) (biblioteca de clase de baz) acoper o gam larg de aspecte de programare, clasificate pe domenii precum interfee utilizator, baze de date, conectivitate, onectivitate, criptografie, aplicaii web, algoritmi numerici sau comunicaii n reea. Pentru scrierea aplicaiilor aplicaii programatorii pot utiliza biblioteca de clase mpreun cu codul scris de ei nii. Programele scrise pentru .NET Framework sunt executate ntr-o o main virtual care gestioneaz programele n timpul rulrii din punct de vedere al a necesitilor acestora. Aceast main virtual este cunoscut sub denumirea de Common Language Runtime (CLR) i face parte din .NET Framework. Framework Datorit faptului c programul va rula pe maina virtual (CLR) programatorul nu are nevoie s ia n considerare tipul procesorului de pe calculatorul care va rula aplicaia. Toate programele .NET ruleaz sub supervizarea CLR, fiind garantate anumite proprieti i comportamente comportamente n ceea ce privete gestiunea memoriei, securitatea i tratarea excepiilor. Common Language Runtime (CLR) .NET Framework utilizeaz o arhitectur pe nivele, la baza creia se situeaz Windows API (Figura 1.1). .NET Framework ofer o vedere orientat pe

Introducere n Visual Studio .Net

obiecte a funciilor sistemului de operare, fr ns a le nlocui, astfel c majoritatea apelurilor din .NET Framework sunt rezolvate n final ca apeluri ntr-unul din DLL-urile nucleului Windows. CLR reprezint primul nivel care aparine lui .NET Framework, fiind responsabil pentru serviciile de baz .NET, precum gestiunea memoriei, colectarea de gunoaie, tratarea structurat a excepiilor i multithreading. Ar trebui s imaginai CLR ca fiind supervizorul tuturor aplicaiilor .NET: nu interacionai niciodat direct cu CLR, ns toate aplicaiile voastre sunt controlate de acesta. CLR ofer suport pentru mai multe limbaje de programare, asigurnd un mediu de execuie robust i sigur. De asemenea acesta simplific procesul de distribuire i de management al aplicaiei (scpai de comarul DLL). CLR ruleaz o form de cod octet numit Common Intermediate Language (CIL), cunoscut i sub denumirea de Microsoft Intermediate Language (MSIL). Procesul de rulare a unui program scris ntr-unul din limbajele .NET este ilustrat n Figura 1.2.

Figura 1.2. Diagrama CLR

Intermediate Language (IL sau MSIL). Spre deosebire de limbajele de programare tradiionale compilatoarele .NET nu produc cod nativ care s poat fi executat direct de ctre procesor. n schimb, acestea produc aa-numitul cod IL, care reprezint un soi de limbaj main pentru un procesor virtual care nu corespunde niciunui procesor fizic. Dei codul IL este la un nivel mai jos dect majoritatea limbajelor de programare moderne, acesta este la un nivel mai nalt dect limbajul de asamblare pur. IL este un limbaj orientat pe stiv (stack-oriented) care nu adreseaz direct regitrii procesorului i nu are legtur cu conceptele specifice limbajelor de nivel nalt (stringuri, excepii sau crearea obiectelor). Limbajele .NET. Dei limbajele Visual Basic i Visual C# (spre exemplu) au sintax diferit i cuvinte cheie diferite, ele sunt n linii mari echivalente, ambele permind utilizarea .NET Framework la capacitate maxim. n plus, toate limbajele .NET Framework sunt compilate la cod MSIL, care apoi este compilat n cod nativ. Din aceast cauz, nu pot fi sesizate diferene notabile ntre limbaje diferite. O excepie de la aceast regul este cazul unei aplicaii C++ care utilizeaz pointeri i cod nesigur (unsafe code). Aceasta poate rula semnificativ mai rapid dect o aplicaie echivalent scris n Visual Basic. Compilatorul Just-in-Time (JIT Compiler). Deoarece nici un procesor nu poate executa cod IL, CLR trebuie s l converteasc n cod nativ n timpul rulrii programului prin lansarea compilatorului JIT i transmiterea ctre acesta a adresei funciei cu care pornete aplicaia

Medii i Tehnologii de Programare curs

(de obicei, ntr-o aplicaie Visual Basic, procedura Sub Main). Atunci cnd procedura principal apeleaz alte metode, .NET utilizeaz compilatorul .NET pentru transformarea codului IL din aceste metode n cod nativ, apoi execut codul nativ. Aceast compilare din zbor este efectuat numai o singur dat pentru fiecare metod pe durata de via a aplicaiei, deoarece codul nativ este pstrat n memorie i reutilizat atunci cnd o metod este apelat din nou. Common Type Specifications (CTS). Acest set de specificaii dicteaz modul n care un tip de dat expune cmpuri, metode, proprieti i evenimente; de asemenea definete modul n care un tip de dat poate moteni alt tip de dat i poate suprancrca membrii acestuia. Datorit faptului c toate limbajele .NET recunosc aceste specificaii, acestea pot face schimb de date, pot utiliza sau moteni tipuri definite ntr-un alt limbaj. Spre exemplu, putei scrie o clas Visual Basic care s moteneasc o alt clas scris n C#, i putei scrie o clas C# care implementeaz o interfa definit Visual Basic. Common Language Specifications (CLS). Acest set de specificaii dicteaz minimul de caracteristici pe care un limbaj de programare trebuie s le aib pentru a face parte din categoria limbajelor .NET. Spre exemplu, toate limbajele .NET trebuie s poat opera cu tipuri de date primitive precum stringuri sau ntregi, i trebuie s fie capabile s proceseze o excepie care apare ca urmare a unei erori. Cod gestionat i cod negestionat (Managed and Unmanaged Code). Se spune c aplicaiile .NET execut cod gestionat deoarece ruleaz sub controlul CLR i sunt mpiedecate a rula cod nesigur care poate afecta rularea sistemului sau poate compromite datele utilizatorilor. Spre exemplu, CLR trebuie s previn accesarea fiierelor sistem sau a regitrilor sistem n cazul n care aplicaia a fost lansat dintr-o locaie Internet care nu este de ncredere. Prin contrast, aplicaiile non-.NET, cum ar fi cele scrise n Visual Basic 6, execut cod negestionat, sau cod nativ. Dintre toate limbajele de programare de la Microsoft, numai C++ poate produce att cod gestionat ct i cod negestionat, ns chiar i dezvoltatorii C++ ar trebui s recurg la scrierea de cod gestionat numai dac este strict nevoie spre exemplu, pentru efectuarea operaiilor low-level deoarece numai codul gestionat beneficiaz de avantajele platformei .NET.

n lumea .NET, limbajele de programare devin doar o modalitate de a interaciona cu cadrul de lucru i, n consecin, cu sistemul de operare Windows. Toate programele au nevoie de un set de reguli stabilite pentru interpretarea fluxului de instruciuni din cadrul programelor. Visual Basic furnizeaz un set de reguli, iar cadrul de lucru (framework) furnizeaz obiectele i evenimentele cu care se poate interaciona. n esen, orice lucru pe care Windows l poate face este cuprins n cadrul .NET Framework. n mod specific,.NET Framework d un nume programatic fiecrui obiect i eveniment pe care Windows l poate controla. Orice programator poate utiliza acel nume pentru a se referi n cod la orice are legtur cu sistemul de operare. De exemplu, dorii s i transmitei imprimatei s efectueze dou copii ale documentului vostru? ncercai:
My.Computer.Printers.DefaultPrinter.PrinterSettings.Copies = 2

Avei nevoie s desenai pe ecran elemente grafice de culoare albastr? ncercai:


System.Drawing.Brushes.Blue

Introducere n Visual Studio .Net

Pn acum, prezentnd .NET Framework, am fcut referire numai la sistemele de operare din familia Windows. Exist ns un proiect open source, Mono (http://www.mono-project.com), (http://www.mono care i-a a propus implementarea .NET Framework pe sistemele de operare Linux, BSD i OS X. Astfel, Mono poate rula fiierele binare obinute pe platforme Windows cu Visual Visual Studio .NET fr a mai fi nevoie de recompilarea acestora. n Figura 1.3 este prezentat mediul MonoDevelop, un IDE GNOME gratuit, proiectat special pentru programarea n C# i alte limbaje .NET.

Figura 1.3. Scrierea unei aplicaii C# folosind IDE-ul IDE MonoDevelop.

Medii i Tehnologii de Programare curs

2. Mediul de dezvoltare integrat (IDE) Visual Basic 2008


rezultat Aceast Un proiect reprezint un grup de fiiere care produc la ieire un anumit rezultat. ieire poate fi, , printre altele, un u fiier executabil, un DLL care poate fi folosit n cadrul altor proiecte sau un control grafic care s fie utilizat pe suprafaa suprafa altor ferestre. O soluie reprezint un grup format dintr-unul dintr unul sau mai multe proiecte care sunt gestionate mpreun. . Spre exemplu, presupunem presupunem c dezvoltm o aplicaie server care ofer acces la o anumit baz de date. De asemenea, dezvoltm o aplicaie client care va fi utilizat de mai multe persoane pentru interogarea aplicaiei server. Datorit strnsei legturi dintre aceste dou proiecte, iecte, este firesc ca ele s fie gestionate ntr-o ntr singur soluie. . Atunci cnd soluia va fi deschis, vei avea acces la toate fiierele din cadrul celor dou proiecte. Att proiectele ct i soluiile pot include fiiere asociate, care pot fi utile pentru pent dezvoltarea aplicaiilor, dar care nu vor face parte din produsul final compilat. La dublu click pe numele fiierelor, acestea vor fi deschise cu aplicaia potrivit. Spre exemplu, un fiier cu extensia .doc va fi deschis de ctre Visual Studio cu Microsoft Micro Word. Pentru asocierea unuia din aceste fiiere cu proiectul sau cu soluia, dai click dreapta pe proiect n Solution Explorer i selectai comanda Add-> Add New Item i utilizai fereastra dialog pentru selectarea fiierului dorit (vezi Figura 1.4).

Figura 1.4. 1.4 Adugarea unui nou fiier n proiect

Un scenariu frecvent utilizat este acela n care codul Visual Basic este plasat ntr-un ntr proiect, iar documentaia n alt proiect din aceeai soluie.

Introducere n Visual Studio .Net

2.1. Scurt prezentare a mediului de dezvoltare integrat (IDE)


Figura 1.5 prezint mediul de dezvoltare integrat (IDE) imediat dup crearea unui proiect nou. Acesta este extrem de configurabil, astfel nct poate s arate complet diferit dac rearanjai dup bunul plac elementele de interfa.
1 2

3 5 4

6 7

Figura 1.5. Configuraia iniial a mediului de dezvoltare Visual Studio 2008.

Elementele cheie ale mediului de dezvoltare vizibile n Figura 1.5 sunt numerotate dup cum urmeaz. Meniuri conin comenzi standard Visual Studio. Acestea manipuleaz elementele soluiei curente i ale modulelor componente ale acesteia. Visual Studio activeaz sau dezactiveaz meniurile i comenzile disponibile n funcie de obiectele selectate curent. n Figura 1.5, este deschis form designer (marcat cu numrul 4) , astfel c mediul de dezvoltare afieaz meniurile i comenzile pentru editare de formulare (ferestre). Toolbars Barele de unelte conin unelte care pot efectua aciunile cel mai frecvent utilizate. Aceleai comenzi pot fi disponibile att n meniuri ct i n barele de unelte (pentru o apelare mai rapid). Mediul de dezvoltare integrat definete cteva bare de unelte standard cum ar fi Formatting, Debug, i Image Editor. Putei construi de asemenea propriile bare de unelte pentru accesarea rapid a uneltelor favorite. Toolbox Csua cu unelte conine unelte potrivite cu obiectul curent selectat i cu tipul de proiect la care lucrai. n Figura 1.5, un Form Designer este selectat n cadrul unei aplicaii Windows, astfel c Toolbox conine uneltele potrivite pentru un Form Designer: controale Windows i componente, plus unelte din alte tab-uri cuprinse n Toolbox: Crystal Reports, Data, Components etc. Pentru alte categorii de proiecte acestea pot s difere. Spre exemplu, un proiect Web ar afia controale i componente Web. Form Designer permite modificarea designului grafic al unei ferestre din cadrul proiectului. Dac adugai pe suprafaa ferestrei un control din csua cu unelte, putei utiliza fereastra

Medii i Tehnologii de Programare curs

de proprieti (marcat cu 6) pentru modificarea proprietilor controlului nou desenat. n Figura 1.5, nici un control nu este selectat, astfel c fereastra de proprieti va afia proprietile ferestrei. Solution Explorer acesta v permite s gestionai fiierele asociate cu soluia curent. Spre exemplu, n Figura 1.5, putei selecta Form1.vb din Project Explorer apoi s dai click pe butonul View Code (al treilea de la dreapta n partea de sus a ferstrei Solution Explorer) pentru a deschide editorul de cod asociat ferestrei. Putei de asemenea s dai click dreapta pe un obiect n Solution Explorer pentru a avea acces la comenzile potrivite acelui obiect. Properties fereastra de proprieti v permite modificarea proprietilor unui obiect n timpul desenrii interfeei (design time). Atunci cnd selectai un obiect n Form Designer sau n Solution Explorer, fereastra de proprieti afieaz proprietile acelui obiect. Pentru a modifica valoarea unei proprieti, dai click pe proprietate i introducei noua valoare. Error List lista de erori reprezint fereastra care afieaz erorile si avertismentele (warnings) din proiectul curent. Spre exemplu, dac o variabil este folosit fr a fi declarat, aceast list va afia la compilare aceast eroare. Dac o variabil este declarat, dar nu este folosit, lista va afia la compilare un avertisment n acest sens.

2.1.1. Structura meniului


n continuare vor fi descrise meniurile cuprinse n IDE-ul Visual Studio .Net 2008, nencercnd ns o prezentare exhaustiv a comenzilor cuprinse n cadrul acestora. Ne vom axa n consecin asupra unor comenzi mai importante, considernd inutil prezentarea comenzilor uzuale.

Meniul FILE
Meniul File conine comenzi pentru creare, deschidere, salvare i nchidere a proiectelor i a fiierelor asociate acestora (Figura 1.6).

Figura 1.6. Meniul File cuprinde comenzi asociate cu soluia i cu fiierele acesteia

New submeniul New permite crearea unor proiecte noi, site-uri Web (ASP.NET sau Servicii Web), sau fiiere (text, bitmap, icon, pagin html, clas etc.). Comanda Project From Existing Code creeaz un proiect nou i permite alegerea fiierelor care s fie incluse n nou proiect.

Introducere n Visual Studio .Net

Open submeniul Open conine comenzi pentru deschiderea unei soluii, a unui proiect, site Web sau fiier. Comanda Convert permite prin intermediul unui wizard conversia proiectelor scrise n versiuni mai vechi ale Visual Basic la Visual Basic 2008. Save All salveaz toate fiierele modificate de la deschiderea acestora sau de la ultima operaie de salvare. Export Template acest wizard permite crearea unui ablon de proiect sau alte elemente care pot fi utilizate mai trziu. Page Setup i Print permit configurarea imprimantei, respectiv tiprirea documentului curent. Aceste comenzi sunt activate numai cnd are sens tiprirea documentului curent. De exemplu, sunt activate atunci cnd vizualizai un fiier text (fiier surs sau XML), ns sunt dezactivate atunci cnd vizualizai un bitmap sau suntei n Form Designer.

Meniul EDIT
Meniul Edit (Figura 1.7) conine comenzi care manipuleaz text sau alte tipuri obiecte. Printre acestea clasicele comenzi Undo, Redo, Copy, Cut i Paste pe care le putei gsi n majoritatea aplicaiilor Windows.

Figura 1.7. Meniul Edit conine comenzi pentru manipularea textului i a altor tipuri de obiecte

Cycle Clipboard Ring Clipboard ring conine ultimele elemente copiate n clipboard. Aceast comand copiaz n locaia curent elementul anterior din clipboard ring. Prin utilizarea repetat a acestei comenzi, putei parcurge elementele din clipboard ring pn la gsirea celui pe care l dorii. Go To permite poziionarea rapid pe o anume linie n fiierul surs curent. Advanced submeniul Advanced conine comenzi pentru efectuarea unor formatri mai complexe ale documentului, cum ar fi convertirea textului la majuscule sau minuscule, word wrap, comentarea i decomentarea codului. Bookmarks submeniul Bookmarks conine comenzi pentru adugarea i tergerea marcajelor, precum i poziionarea pe marcajele deja memorate.

Medii i Tehnologii de Programare curs

Outlining submeniul Outlining permite expandarea sau colapsarea seciunilor de cod, precum i activarea sau dezactivarea acestei opiuni. IntelliSense ofer acces la facilitile IntelliSense. Spre exemplu, comanda List Members duce la afiarea listei cu proprietile, metodele i evenimentele obiectului curent.

Meniul VIEW
Meniul View (Figura 1.8) conine comenzi care permit ascunderea sau afiarea diverselor ferestre sau bare de unelte din cadrul mediului de dezvoltare integrat al Visual Studio.

Figura 1.8. Meniul View permite afiarea i ascunderea ferestrelor i a barelor cu unelte asociate IDE-ului Visual Studio

Code comanda Code deschide fiierul selectat ntr-un editor de cod. Spre exemplu, pentru editarea codului asociat unui formular, dai click pe formular n Solution Explorer i selectai View\Code. Designer comanda Designer deschide fiierul selectat ntr-un editor grafic, dac exist vreunul definit pentru acel tip de fiier. Spre exemplu, dac fiierul este un formular, Visual Studio l deschide ntr-un editor grafic de formulare. Dac fiierul este un modul de clas sau unul de cod, meniul View ascunde aceast comand deoarece Visual Studio nu dispune de un editor grafic pentru acest tip de fiiere. Open deschide elementul selectat cu editorul implicit pentru acesta. Open With deschide elementul selectat cu un editor la alegere. Spre exemplu, putei deschide codul asociat unui formular cu un editor de text. Tab Order Dac un formular conine controale, comanda Tab Order afieaz deasupra fiecrui control o cifr care indic ordinea n care vor fi selectate controalele la apsarea

10

Introducere n Visual Studio .Net

tastei TAB (n timpul rulrii). Pentru a defini aceast ordine trebuie s dai click pe controale n ordinea dorit.

Meniul PROJECT
Meniul Project (Figura 1.9) conine comenzi care v permit adugarea, respectiv tergerea de elemente n/din proiectul curent. n funcie de elementul selectat difer i comenzile disponibile n acest meniu.

Figura 1.9. Meniul Project v permite adugarea de fiiere i referine n proiectul curent

Iat o descriere a comenzilor asociate cu meniul Project: Add New Item afieaz dialogul din Figura 1.10. Dialogul permite selecia dintr-o gam larg de elemente printre care fiiere text, fiiere bitmap i module de clas.

Figura 1.10. Comanda de meniu Add New Item v permite adugarea unei largi game de elemente n cadrul proiectului.

Show All Files aceast comand face ca Solution Explorer s afieze lista cu fiierele care, n mod normal, sunt ascunse. Acestea includ fiiere de resurse asociate formularelor, clase

11

Medii i Tehnologii de Programare curs

pariale ascunse cum ar fi secvene de cod generate automat, fiiere din directoarele OBJ i BIN, care sunt create automat de Visual Studio atunci cnd compileaz programul. n mod normal nu avei nevoie s interacionai direct cu aceste fiiere, astfel c ele sunt ascunse. Selectai aceast comand pentru afiarea lor, apoi selectai-o din nou pentru ascunderea lor. Add Reference permite n prim faz selectarea categoriei unui obiect extern, a unei clase, sau a unei biblioteci pe care dorii s o gsii. Putei aduga o referin la o component .NET, la o component COM (Component Object Model), cum ar fi o bibliotec ActiveX sau un control creat n Visual Basic 6, sau la un alt proiect Visual Studio. Dup ce ai adugat o referin la un proiect, putei s accesai prin cod obiectele publice ale referinei. Spre exemplu, dac fiierul MyMathLibrary.dll definete o clas numit MathTools, iar acea clas definete o funcie public Fibonacci, un proiect care are o referin la acest DLL poate utiliza urmtoarea secven de cod:
Dim math_tools As New MyMathLibrary.MathTools MsgBox(Fib(5) = & math_tools.Fibonacci(5))

Add Service Reference afieaz un dialog prin care putei s adugai referine la servicii Windows Communication Foundation (WCF) i ADO.NET Data. Set as StartUp Project seteaz unul dintre proiectele unei soluii ca fiind proiectul care va rula implicit la rularea soluiei curente. [Nume proiect] Properties aceast comand afieaz paginile cu proprieti ale aplicaiei, vizibile n Figura 1.11.

Figura 1.11. Pagina de proprieti a proiectului

Pe tab-ul Compile exist trei proprieti care merit o atenie special (vezi Figura 1.12). Prima dintre ele, Option Explicit determin din partea Visual Basic cerina ca toate variabilele s fie declarate nainte de a fi utilizate. Inactivarea acestei opiuni poate conduce uneori la bug-uri subtile. Spre exemplu, urmtoarea secven de cod intenioneaz s afieze

12

Introducere n Visual Studio .Net

o list a numerelor pare ntre 0 i 10. Din nefericire, o greeal de tastare face ca funcia Debug.WriteLine s tipreasc valoarea variabilei j, nu a lui i. Deoarece j nu este iniializat, codul produce la ieire o list de valori nule. Dac setai Option Explicit la valoarea On, compilatorul va semnala faptul c variabila j nu este declarat, iar problema devine uor de rezolvat.
For i = 1 To 10 If i Mod 2 = 0 Then Debug.WriteLine(j) Next i

Figura 1.12. Tab-ul Compile conine proprieti importante pentru controlul generrii codului

A doua opiune de compilare este Option Strict. Atunci cnd aceast opiune este inactiv, Visual Studio permite n cod conversii implicite de la un tip de dat la altul, chiar dac tipurile de date nu sunt ntotdeauna compatibile. Spre exemplu, Visual Basic va permite urmtoarei secvene de cod s ncerce copierea stringului s n ntregul i. Dac textul din string se ntmpl s reprezinte o valoare numeric, precum n primul caz, va funciona. n cazul contrar, precum se vede n cel de al doilea caz, va aprea o eroare la rulare.
Dim Dim s = i = s = i = i As Integer s As String 10 s This works. Hello s This Fails.

Dac activai opiunea Option Strict, IDE-ul v va avertiza cu privire la incompatibilitatea dintre cele dou tipuri de date, astfel c vei putea rezolva uor problema n timp ce scriei codul. Vei putea utiliza funcii de conversie de date precum CInt, Int i Integer.Parse pentru convertirea stringului la ntreg, ns va trebui s efectuai explicit aceste aciuni. Acest lucru va duce la diminuarea ansei de apariie a erorilor de conversie. Pentru evitarea confuziilor sau a unor sesiuni lungi i obositoare de depanare, ar trebui s setai permanent opiunile Option Explicit (On) i Option Strict (On). Le putei activa pentru un anume proiect accesndu-le din pagina de proprieti. Pentru a le activa implicit pentru

13

Medii i Tehnologii de Programare curs

toate proiectele nou create, deschidei meniul Tools i selectai Options. Deschidei directorul Projects and Solutions, selectai pagina VB Defaults i activai opiunile. Directiva de compilare Option Compare, poate lua valorile Binary sau Text. Dac setai Option Compare la Binary, Visual Basic compar string-urile pe baza reprezentrii lor binare. Dac setai Option Compare la Text, Visual Basic compar sting-urile folosind o metod case-insensitive care depinde de setrile calculatorului. Compare Binary este mai rapid, dar poate s nu produc ntotdeauna rezultatele ateptate. Ultima directiv de compilare, Option Infer poate lua valorile On sau Off. Odat setat pe On, este activat opiunea de deducere a tipului unei variabile locale, n cazul n care, pentru respectiva variabil, tipul acesteia nu a fost precizat explicit.

IntelliSense cnd Option Infer este activat IntelliSense cnd Option Infer i Option Strict sunt dezactivate Option Infer On ' Variabila num este de tip Integer. Dim num = 5 ' Variabila dbl este de tip Double. Dim dbl = 4.113 ' Variabila str este de tip String. Dim str = "abc"

Dac selectai o soluie, apoi apelai comanda Properties din meniul Project, Visual Studio afieaz paginile cu proprieti ale soluiei (Figura 1.13).

Figura 1.13. Pagina de proprieti a soluiei.

14

Introducere n Visual Studio .Net

Meniul BUILD
Meniul Build (Figura 1.14), conine comenzi care permit compilarea proiectelor dintr-o soluie.

Figura 1.14. Meniul Build permite compilarea ferestrelor.

Urmeaz o scurt descriere a unor comenzilor asociate meniului Build: Build Solution Aceast comand compileaz numai acele fiiere i componente care au fost modificate de la ultima compilare. Rebuild Solution aceast comand terge nti fiierele temporare i intermediare (similar comenzii "clean") ale soluiei, apoi compileaz de la zero toate fiierele i componentele proiectelor din cadrul soluiei curente. Clean Solution aceast comand terge fiierele temporare sau intermediare create la compilarea soluiei, pstrnd doar fiierele surs i rezultatele finale (fiierele EXE sau DLL). Build [nume proiect] Aceast comand compileaz proiectul curent, n cazul de fa proiectul cu numele [nume proiect]. Visual Studio examineaz fiierele proiectului pentru a vedea dac au aprut modificri de la ultima compilare a proiectului. La orice modificare din cadrul fiierelor, Visual Studio recompileaz aceste fiiere i actualizeaz rezultatul. Rebuild [nume proiect] aceast comand foreaz recompilarea de la zero a proiectului curent. Clean [nume proiect] aceast comand terge fiierele temporare sau intermediare create la compilarea proiectului curent, pstrnd doar fiierele surs i rezultatele finale (fiierele EXE sau DLL). Publish [nume proiect] aceast comand pornete un wizard care pune la dispoziie aplicaia n vederea redistribuirii locale, pentru partajare de fiiere, site FTP sau site Web. Configuration Manager comanda Configuration Manager afieaz dialogul din Figura 1.15. Acest dialog poate fi folosit pentru a indica n ce mod se va compila un proiect (debug sau release), i platformele destinaie (de exemplu Itanium, x64, sau x86). Putei utiliza csuele de bifare Build (vizibile i n figur) pentru a determina care proiect va fi compilat. V putei folosi de aceast opiune pentru a evita compilarea anumitor proiecte din cadrul soluiei curente. Dac observai c anumite pri din soluie nu sunt compilate, verificai opiunile din Configuration Manager.

15

Medii i Tehnologii de Programare curs

Figura 1.15. Configuration Manager

Configuraiile Release utilizeaz mai multe optimizri dect configuraiile Debug, astfel nct ele furnizeaz programe executabile mai mici i mai rapide. Acestea nu includ suport pentru depanare, astfel c nu vei putea depana un program compilat pentru release. n csua combo Active solution configuration selectai <New...> pentru crearea unei noi configuraii. Atunci cnd selectai aceasta, Visual Studio va fia un dialog n care putei da un nume configuraiei i putei selecta o configuraie existent de la care vor fi copiate valorile implicite. Vei putea astfel s indicai compilatorului c dorii ca unele proiecte din cadrul soluiei s fie compilate folosind configuraia Debug, iar altele folosind configuraia Release. Evident, cele compilate cu Release nu vor putea fi depanate ulterior. Acest mod de abordare a problemei poate fi util n cazul n care dorii s predai anumite proiecte clienilor (versiunile release), n timp ce versiunile debug ale proiectelor continuai s le dezvoltai. Dac debifai csua Build asociat unui proiect, acel proiect va fi exclus din cadrul operaiilor de construire. La construirea soluiei acesta nu va fi compilat. Visual Studio afieaz rezultatele compilrii n fereastra Output i contorizeaz numrul de proiecte necompilate. Urmtoarea linie arat un exemplu n care, la construirea unei soluii care conine dou proiecte, un proiect a fost compilat iar cellalt nu.
======== Build: 1 succeeded or up-to-date, 0 failed, 1 skipped ========

Meniul DEBUG
Meniul Debug (Figura 1.16), conine comenzi care v ajut s depanai un program. Aceste comenzi v ajut s rulai un program n mod depanare (debugger), s v deplasai prin cod, s setai i s eliminai breakpoint-uri i, n general, s urmrii execuia codului pentru a observa modul n care acesta ruleaz, n sperana gsirii eventualelor erori.

16

Introducere n Visual Studio .Net

Figura 1.16. Meniul Debug conine comenzi pentru depanarea unei aplicaii.

Comenzile vizibile n meniu se modific n funcie mai multe condiii, cum ar fi: tipul fiierului deschis, starea programului (dac programul ruleaz sau nu), linia de cod care conine cursorul, sau dac linia de cod curent conine un breakpoint. Iat o scurt descriere a unor comenzilor asociate meniului Debug: Windows Acest submeniu pune la dispoziie alte ferestre ce au legtur cu depanarea. Continue Comanda reia execuia unui program. Programul va rula pn la terminarea execuiei acestuia, pn la ntlnirea unui breakpoint, sau pn la oprirea manual a execuiei lui. Break All Oprete execuia tuturor programelor rulate n mod depanare. Comanda aceasta poate fi util dac mai multe programe ruleaz n strns legtur unul cu cellalt. Stop Debugging Oprete execuia programului i termin sesiunea de depanare. Detach All Detaeaz debugger-ul de orice proces de care acesta este ataat. Acest lucru nu duce la oprirea acestor procese. Terminate All Oprete orice proces la care este ataat debugger-ul. Restart Oprete procesul care ruleaz i repornete proiectul setat ca implicit. Attach to Process Afieaz un dialog care permite s ataai debugger-ul la un proces care ruleaz. Exceptions Aceast comand afieaz un dialog care conine o list de erori posibile. Dac bifai n dreptul unei erori csua Thrown, debugger-ul se va opri oride cte ori eroare selectat va aprea. Dac bifai User-unhandled, debugger-ul se va opri la apariia acelei erori, iar programul nu va putea s o trateze nici mcar cu ajutorul codului de tratare a excepiilor. Step Into Face ca debugger-ul s execute linia de cod curent. Dac aceast linie apeleaz o funcie sau procedur, punctul de execuie se mut n acea procedur. Step Over Face ca debugger-ul s execute linia de cod curent. Dac aceast linie apeleaz o funcie sau procedur debugger-ul apeleaz acea rutin, dar nu va intra n interiorul codului acesteia dect dac acea rutin conine un breakpoint.

17

Medii i Tehnologii de Programare curs

Step Out Aceast comand face ca debugger-ul s ruleze pn la prsirea rutinei care se afl n execuie, apoi execuia se va ntrerupe la ntlnirea liniei de cod care a apelat acea rutin. QuickWatch Afieaz un dialog care ofer informaii legate de obiectul din secvena de cod selectat. Din aceast fereastr putei modifica valoarea unei variabile sau s o adugai la fereastra Watch.

Ferestrele Command i Immediate


Ferestrele Command i Immediate permit executarea de comenzi cnd programul este oprit n mod depanare. Una dintre cele mai utile comenzi este Debug.Print. De exemplu, comanda Debug.Print x afieaz valoarea variabilei x. Putei utiliza un semn de ntrebare ca abreviere a acestei comenzi:
>? x 123

Simbolul > reprezint prompterul ferestrei, iar 123, valoarea variabilei x. Dei, n aparen, exist multe lucruri n comun ntre cele dou ferestre, totui nu este chiar aa. Fereastra Command poate apela comenzi ale IDE-ului Visual Studio, pe cnd fereastra Immediate poate executa instruciuni Visual Basic. Spre exemplu, din fereastra Command putem deschide fereastra QuickWatch pentru variabila nume.
>Debug.QuickWatch nume

n fereastra Immediate putem utiliza, de exemplu, urmtoarea linie de cod pentru deschiderea unui fiiei n mod citire:
Dim fs As FileStream = File.OpenRead( _ C:\Program Files\Customer Orders\Summary & _ datetime.Now().ToString(yymmdd) & .dat)

n cazul de fa putei verifica n fereastra Immediate dac fiierul dorit exist, evitnd astfel apariia unei erori n program:
?System.IO.File.Exists(C:\Program Files\Customer Orders\Summary & _ DateTime.Now().ToString(yymmdd) & .dat)

Ambele ferestre, Command i Immediate, includ suport pentru IntelliSense.

Meniul DATA
Meniul Data (Figura 1.17), conine comenzi legate de lucrul date i surse de date. Unele comenzi sunt vizibile numai dac suntei n modul form designer, iar fereastra conine obiecte pentru lucrul cu date.

Figura 1.17. Meniul Data conine comenzi legate de lucrul cu baze de date.

Iat, n continuare, o descriere a comenzilor din acest meniu.

18

Introducere n Visual Studio .Net

Show Data Sources Afieaz fereastra Data Sources, unde putei opera cu sursele de date ale programului. Putei, de exemplu, prin operaii de drag&drop s tragei pe fereastr tabele sau cmpuri pentru crearea de controale legate la o baz de date. Preview Data Afieaz un dialog care v permite ncrcarea de date ntr-un DataSet i vizualizarea lor n mod design. Add New Data Source Aceast comand afieaz Data Source Configuration Wizard, care v permite adugarea unei surse de date la proiect. Add Query Comanda aceasta este diponibil atunci cnd suntei n mod form designer i i ai selectat un control legat la o baz de date. Comanda deschide un dialog n care putei scrie interogri. Aceasta va duce la plasarea unui ToolStrip care va conine butoane cu comenzi de populare a controalelor prin executarea interogrilor.

Meniul FORMAT
Meniul Format (Figura 1.18), conine comenzi pentru aranjarea controalelor pe un formular.

Figura 1.18. Meniul Format conine comenzi pentru formatarea i aranjarea controalelor pe un formular.

Meniul TOOLS
Meniul Tools (Figura 1.19), conine diverse unelte care nu s-ar potrivi altor meniuri. Acesta conine de asemenea unele dubluri ale comenzilor din alte meniuri i comenzi care modific IDE-ul Visual Studio.

19

Medii i Tehnologii de Programare curs

Figura 1.19. Meniul Tools conine comenzi diverse i comenzi care modific IDE-ul.

Iat o list a celor mai importante comenzi din meniul Tools: Attach to Process Afieaz un dialog care v permite s ataai debugger-ul la un procesa care ruleaz. Connect to Device Aceast comand v permite conectarea la dispozitive fizice sau emulatoare (PocketPC, SmartPhone), pe care le putei la testarea programelor pe care le scriei pentru dispozitive care ruleaz pe platforme diferite de cea pe care scriei aplicaia. Connect to Database Afieaz dialogul Connection Properties,n care putei defini o conexiune la o baz de date. Conexiunea este adugat la fereastra Server Explorer i putei s o utilizai ulterior. Code Snippets Manager Afieaz fereastra Code Snippets Manager, care v permite adugarea sau tergerea fragmentelor de cod pe care le putei insera n programele pe care le scriei. Dotfuscator Community Edition Aceast comand lanseaz i afieaz Dotfuscator Community Edition, o unealt pe care o putei utiliza pentru a face codul intermediar (IL) generat de Visual Basic mai obscur i greu de utilizat n operaii de reverse engineer. Error Lookup Afieaz un dialog n care putei afla, pe baza unui cod de eroare introdus de dumneavoastr, o descriere a erorii respective. Spy++ Aceast comand lanseaz o unealt numit Spy++, care v permite s vedei mesajele trimise ctre aplicaie. External Tools Afieaz un dialog care v permite s adugai/tergei comenzi n/din meniul Tools. Putei, de exemplu, s adugai comenzi pentru lansarea oricrei aplicaii pe care o considerai util.

20

Introducere n Visual Studio .Net

Meniul WINDOW
Meniul Windows conine comenzi care ofer control asupra ferestrelor din Visual Studio. Comenzile active depind de tipul ferestrei care are focalizarea.

2.1.2. Editorul de cod Visual Studio


Editorul de text din IDE-ul Visual Studio este adesea referit ca editor de cod, deoarece este utilizat pentru editarea codului programelor Visual Studio. Putei s l folosii de asemenea ca editor XML, HTML sau CSS. Putei deschide mai multe instane ale editorului de cod asociat diferitor formulare sau module i putei copia sau lipi secvene de cod dintr-una ntr-alta. n meniul Windows avei acces la toate documentele deschise n instane diferite ale editorului de cod. Editorul de cod, pentru limbajul n care scriei cod, ofer caracteristici precum: Acces la proprietile, metodele i evenimentele obiectelor n modul design. Completarea instruciunilor pe baza IntelliSense. Seciuni de cod care pot fi expandate sau colapsate, dup preferin, cu ajutorul directivei #Region ... #End Region. fereastr de definire a codului care afieaz codul surs pentru un obiect sau element. Opiune de inserare a unor fragmente de cod predefinite (code snippets), care v permite s adugai blocuri de cod prefabricate. Opiuni pentru definirea indent-urilor, tab-urilor i a comportamentului la operaii de tip drag&drop. Pagini de cod unicode. Emulri ale editoarelor Emacs i Brief.

O facilitate a editorului de cod din pachetul Microsoft Visual Studio, foarte util programatorilor, este IntelliSense. Aceasta implementeaz autocompletarea codului scris de programator (automat n diverse momente ale scrierii codului surs, sau manual prin combinaia de taste CTRL+Spaiu), servind de asemenea ca documentaie pentru numele variabilelor, funciilor, metodelor sau evenimentelor unui obiect (Figura 1.20).

Figura1.20. IntelliSense n aciune

21

Medii i Tehnologii de Programare curs

Elemente ale editorului de cod


Panoul de cod. Acesta reprezint zona n care este afiat pentru editare codul sau textul. Acesta ofer faciliti IntelliSense pentru limbajul n care scriei codul. Marginea pentru indicatori. Aceasta reprezint o coloan gri, situat n partea stng a editorului de cod, pe care sunt afiai indicatori de tip breakpoint, bookmark sau shortcut. Dac dai click pe aceast margine vei seta un breakpoint pe linia de cod corespunztoare. Marginea de selecie. Aceasta reprezint o coloan, situat ntre marginea pentru indicatori i fereastra de editare, pe care putei da click pentru selectarea liniilor de cod. Modificrile fcute n cod sunt reflectate pe aceast margine cu diferite culori (verde, galben, rou). Listele Class Name i Method Name. Acestea reprezint dou liste derulante plasate n partea superioar a editorului de cod. Lista Class Name, situat n partea stng, ofer acces la componentele clasei curente (de exemplu, pentru formulare lista controalelor situate pe formular, iar pentru module Visual Basic lista claselor, funciilor, procedurilor etc. declarate n interiorul acestuia). Lista Method Name, situat n partea dreapt, ofer, n funcie de elementul selectat n Class Name, acces la membrii acestuia (pentru clase lista metodelor acesteia, pentru controale lista evenimentelor acestora).

22

S-ar putea să vă placă și