Sunteți pe pagina 1din 10

www.ls-infomat.ro www.manuale-de-informatica.

ro

Despre limbajul C# i platforma .NET


Numele limbajului C# a fost inspirat din notaia (diez) din muzic, care indic faptul c nota muzical urmat de este mai nalt cu un semiton. Este o similitudine cu numele limbajului C++, unde ++ reprezint att incrementarea unei variabile cu valoarea 1, dar i faptul c C++ este mai mult dect limbajul C. Limbajul C# a fost dezvoltat n cadrul Microsoft. Principalii creatori ai limbajului sunt Anders Hejlsberg, Scott Wiltamuth i Peter Golde. Prima implementare C# larg distribuit a fost lansat de ctre Microsoft ca parte a iniiativei .NET n iulie 2000. Din acel moment, se poate vorbi despre o evoluie spectaculoas. Mii de programatori de C, C++ i Java, au migrat cu uurin spre C#, graie asemnrii acestor limbaje, dar mai ales calitilor noului limbaj. La acest moment, C# i-a ctigat i atrage n continuare numeroi adepi, devenind unul dintre cele mai utilizate limbaje din lume. Creatorii C# au intenionat s nzestreze limbajul cu mai multe faciliti. Succesul de care se bucur n prezent, confirm calitile sale: Este un limbaj de programare simplu, modern, de utilitate general, cu productivitate mare n programare. Este un limbaj orientat pe obiecte. Permite dezvoltarea de aplicaii industriale robuste, durabile. Ofer suport complet pentru dezvoltarea de componente software, foarte necesare de pild n medii distribuite. De altfel, se poate caracteriza C# ca fiind nu numai orientat obiect, ci i orientat spre componente. La aceste caracteristici generale se adaug i alte trsturi, cum este de pild suportul pentru internaionalizare, adic posibilitatea de a scrie aplicaii care pot fi adaptate cu uurin pentru a fi utilizate n diferite regiuni ale lumii unde se vorbesc limbi diferite, fr s fie necesare pentru aceasta schimbri n arhitectura software. n strns legatur cu Arhitectura .NET (.NET Framework) pe care funcioneaz, C# gestioneaz n mod automat memoria utilizat. Eliberarea memoriei ocupate (garbage collection) de ctre obiectele care nu mai sunt necesare aplicaiei, este o facilitate important a limbajului. Programatorii nu mai trebuie s decid singuri, aa cum o fac de pild n C++, care este locul i momentul n care obiectele trebuie distruse. n C# se scriu de asemenea aplicaii pentru sisteme complexe care funcioneaz sub o mare varietate de sisteme de operare, ct i pentru sisteme dedicate (embeded systems). Acestea din urm se ntind pe o arie larg, de la dispozitive portabile cum ar fi ceasuri digitale, telefoane mobile, MP3 playere, pn la dispozitive staionare ca semafoare de trafic, sau controlere pentru automatizarea produciei. Din punct de vedere sintactic C# deriv din limbajul C++, dar include i influene din alte limbaje, mai ales Java.

.NET Framework
Arhitectura .NET este o component software care ofer un mediu de programare i de execuie a aplicaiilor pentru sistemele de operare Microsoft. Este inclus n sistemele de operare Windows Server 2008 i Windows Vista i poate fi instalat pe Windows XP i Windows Server 2003. .NET Framework este un mediu care permite dezvoltarea i rularea aplicaiilor independente de platform. i a serviciilor Web,

Limbajul C# se afl ntr-o strns legatur cu arhitectura .NET. Iniial, C# a fost dezvoltat de ctre Microsoft pentru crearea codului platformei .Net, la fel cum destinaia iniial a limbajului C a fost aceea de a implementa sistemul de operare UNIX. .NET pune la dispoziie o colecie impresionant de clase organizate n biblioteci, pe care C# le utilizeaz. Este momentul s precizm c C# funcioneaz avnd .NET ca infrastructur, dar .NET suport i alte limbaje, cum este C++, Visual Basic sau Java. n oricare dintre aceste limbaje programai, avei la dispoziie aceleai biblioteci de clase. .NET se realizeaz n acest fel interoperabilitatea limbajelor. .NET este constituit din dou entiti importante: Common Language Runtime (CLR) Acesta este mediul de execuie al programelor. Este modulul care se ocup cu managementul i execuia codului scris n limbaje specifice .NET. CLR furnizeaz de asemenea servicii importante, cum sunt securitatea aplicaiilor, portabilitatea acestora, managementul memoriei i tratarea excepiilor. Base Class Library Este vorba despre Biblioteca de Clase .NET. Aceast bibliotec acoper o arie larg a necesitilor de programare, incluznd interfaa cu utilizatorul, conectarea cu bazele de date i accesarea datelor, dezvoltarea aplicaiilor web, comunicarea n reele i altele. Codul bibliotecii este precompilat, fiind ncapsulat de regul n funcii, numite metode, pe care programatorul le poate apela din propriul program. La rndul lor, metodele aparin claselor, iar clasele sunt organizate i separate ntre ele cu ajutorul spaiilor de nume (namespaces). Despre toate aceste noiuni vom vorbi pe larg n capitolele urmtoare. Ceea ce trebuie reinut pentru moment, este c programatorii combin propriul cod cu codul Bibliotecii de Clase .NET pentru producerea de aplicaii.

Compilarea programelor pe platforma .NET


Limbaje interpretate Cnd programai ntr-un limbaj de programare interpretat, vei scrie codul i vei rula aplicaia. Cu ajutorul unui interpretor specific limbajului, fiecare linie de cod este interpretat chiar n momentul rulrii i este preschimbat imediat n cod main i executat. Partea bun este c putei rula codul pn la primul bug, putei nltura eroarea n cod iar apoi s continuai execuia codului. Limbajul nu necesit timp de compilare i de legare. Partea neplcut este c limbajele interpretate sunt lente. Limbajul Basic a fost iniial un limbaj interpretat, dar mai apoi, ncepnd cu anii 1980, au aprut i versiuni compilate. Marea majoritate a limbajelor de scriptare Web sunt de asemenea limbaje interpretate. Limbaje compilate Codul scris ntr-un asemenea limbaj, numit cod surs, este translatat de ctre compilator ntr-un cod apropiat de nivelul mainii, numit cod executabil (de exemplu codul coninut n fiierele (*.exe). Dac n timpul compilrii apar erori, atunci este necesar s le nlturai, dup care vei compila din nou. Dac aplicaia trece acum de

compilare fr erori de sintax, atunci se va produce codul executabil i vei putea s rulai aplicaia. Limbajele C i C++ sunt exemple clasice de limbaje compilate. Din aceast perspectiv C# este un limbaj compilat. Dar nu n sensul descris mai sus. Ca s nelegei, este necesar s tii c n urma compilrii unui program C#, nu se creaz un cod executabil. Se creeaz un fiier numit assembly care de regul se identific cu extensia .exe sau .dll. Un asemenea fiier nu poate fi executat pe un sistem pe care nu exist infrastructura .NET. Fiierul conine un tip special de cod, numit Limbaj Intermediar, pe scurt CIL (Common Intermediate Language). Limbajul CIL definete un set de instruciuni portabile, independente de orice tip de procesor i platform. Figura ilustreaz procesul de creare a codului executabil pe platforma .NET. Cod surs C# Cod surs J# Cod surs C++ Cod surs VB

Compilator C# .Net

Compilator J# .Net

Compilator C++.Net

CIL i metadate (.exe i .dll)

compilare cu JIT i execuie

Compilator VB .Net

Fig. 1 Procesul de compilare pe platforma .NET n momentul n care un program este executat, CLR activeaz un compilator special, numit JIT (just in time). Acesta preia codul CIL i l transform n cod executabil. Transformarea se face la cerere, n sensul c o secven de cod se compileaz doar n momentul n care este utilizat pentru prima oar. Un program compilat n format CIL poate rula pe orice sistem pe care s-a instalat Common Language Runtime. Aceasta asigur portabilitatea aplicaiilor .NET. Fiierul .exe sau .dll produs la compilare conine pe lng codul CIL, aa numitele metadate. Metadatele descriu datele utilizate de ctre aplicaie.

Instrumente de dezvoltare a aplicaiilor .NET


Platforma .NET actual a ajuns la versiunea 3.5. Microsoft pune la dispoziia programatorilor dou unelte pentru dezvoltarea aplicaiilor: 1. Visual Studio .NET i varianta free Visual Studio Express 2008 2. .NET Framework SDK Pachetul de dezvoltare a aplicaiilor pentru .NET 3.5 (Microsoft .NET Framework 3.5 SDK1), include: .NET Framework Compilatorare n linie de comand pentru limbajele de programare: C#, C++ , Visual Basic, i Jscript. Instrumente pentru crearea, depanarea i configurarea aplicaiilor .NET. Exemple i documentaie.
1

Software Development Kit Kit de Dezvoltare a Aplicaiilor

Trebuie s tii c exist compilatoare pentru platforma .NET create de anumite firme sau organizaii, pentru limbajele Smaltalk, Perl, Cobol sau Pascal, ca s enumerm doar cteva disponibile pe pia.

Principalele caracteristici ale arhitecturii .NET


Independena de procesor i de platform Codul CIL este independent de sistemul de operare i de procesor. De aceea, n scrierea aplicaiilor nu trebuie s fii preocupai de caracteristicile hardware sau software ale sistemului. Spre surpriza multor programatori, aplicaiile .NET pot fi dezvoltate i executate pe sisteme de operare non-Microsoft, (Mac OS X, numeroase distribuii Linux i Solaris, ca s numim numai cteva). Managementul automat al memoriei Alocara i eliberarea memoriei nu mai este o problem care trebuie s-i preocupe pe programatori, datorit mecanismului automat de garbage collection. Interoperabilitatea limbajelor Este un fapt comun ca diversele componente ale unei aplicaii s fie scrise n limbaje diferite, suportate de ctre platforma .NET. Securitate .NET furnizeaz un model comun de securitate, valabil pentru toate aplicaiile, care include un mecanism unificat de tratare a excepiilor . O excepie este un eveniment neprevzut, care ntrerupe execuia unui program, atunci cnd de pild, se execut o intruciune ilegal. Portabilitate Un program scris pentru platforma .NET poate rula fr nici o modificare pe oricare sistem pe care platforma este instalat. Caracteristicilor de mai sus li se adaug i altele, care ies ns din cadrul acestei lucrri.

Mediul Integrat Visual C# 2008 Express Edition


Visual C# 2008 Express Edition (pe scut: VCSE), este un mediu free de dezvoltare a aplicaiilor produs de Microsoft. Este un IDE (integrated development environment), care ofer un set de instrumente, ntre care un editor de cod pentru scrierea programelor C#, compilator, depanator, instrumente pentru build automation (automatizarea procesului de compilare) i altele. Kit-ul de instalare C# Express, include Platforma .NET 3.5, iar aceasta la rndul ei include ntre altele Biblioteca de Clase.

Cerine de sistem
Sistemele de operare suportate sunt: Windows Server 2003, Windows Vista; Windows XP. Pentru Microsoft Windows XP, Service Pack 2: - minim 192 MB de RAM (preferabil cel puin 384 MB) - cel puin un procesor de 1 GHz (preferabil > 1.6 GHz) Pentru Microsoft Windows Vista i Microsoft Windows Server 2003: - minim 768 MB de RAM (preferabil cel puin 1 GB) - cel puin un procesor de 1,6 GHz (preferabil > 2.2 GHz)

Instalare
Visual C# 2008 Express Edition poate fi descrcat de pe site-ul Microsoft, la adresa http://www.microsoft.com/express/download/. Alternativ, n josul paginii avei opiunea de a descrca Visual Studio Express Edition pentru o instalare offline. Visual Studio conine mediile de programare Visual C#, Visual Basic, Visual C++, precum i serverul de baze de date Microsoft SQL Server 2005. Instalarea se face simplu, cu ajutorul unui wizard, ns pentru montarea imaginii DVD-ului (fiier cu extensia ISO) avei nevoie de un utilitar cum ar fi de pild Daemon Tools. Ca observaie, indiferent dac vei instala Visual Studio sau doar Visual C# 2008 Express, vei opta ntotdeauna pentru instalarea .NET Framework, Visual C#, MS SQL Server i MSDN (Micorsoft Developer Network). MSDN conine o foarte bogat documentaie de care nu v putei lipsi cnd dezvoltai aplicaii. Exist i versiunile Visual C# 2008 i Visual Studio 2008 cu faciliti suplimentare, dar care nu sunt gratuite. Ajuni n acest punct, dorim s atragem atenia asupra faptului c o prejudecat rspndit privind dezvoltarea .NET este aceea c programatorii trebuie s instaleze Visual Studio ca s poat crea aplicaii C#. Nu este adevrat. Putei s compilai i s rulai orice tip de program .NET folosind kit-ul de dezvoltare a aplicaiilor .NET Framework 3.5 Software Development Kit (SDK), care este downloadabil n mod gratuit. Acest SDK v pune la dispoziie compilatoare, utilitare n linie de comand, conine Biblioteca de Clase .Net, exemple de cod i o documentaie complet. Se pot crea aplicaii C# n dou moduri diferite: 1. Folosind Notepad sau oricare editor de text i apoi compilarea n linie de comand. 2. Utiliznd Visual Studio Express Edition. Aceasta este metoda preferabil, datorit sprijinului considerabil pe care-l ofer mediul integrat n dezvoltarea aplicaiilor, mai ales a acelora cu interfa cu utilizatorul.

Compilare n linie de comand


Dei s-ar putea ca niciodat s nu v decidei s dezvoltai aplicaii mari folosind compilatorul C# n linie de comand, este totui important s nelegei cum se lucreaz n linie de comand fie doar i pentru urmtoarele motive: Nu avei o copie a Visual C# 2008 Express, sau sistemul pe care-nu satisface cerinele hardware sau software minimale: Dorii s proiectai un build tool automatizat, aa cum este MSBuild sau Nant, care necesit s cunoatei opiunile n linie de comand ale utilitarelor. Dorii o nelegere profund a C#, dorii s vedei ce se petrece n spatele scenei atunci cnd utilizai IDEuri pentru dezvoltarea aplicaiilor.

Primul program C#
Este o tradiie pstrat n timp, ca o carte de programare s nceap cu programul care afieaz pe ecran Salut lume !. Vom compila i executa acest program C# n linie de comand, urmnd paii de mai jos: 1. Editarea codului surs. Deschidei Notepad i scriei urmtorul cod: using System; class Salut { static void Main() { Console.WriteLine("Salut lume!"); } } n C# fiierele surs au extensia cs. Salvai fiierul cu numele salut.cs ntr-un folder oarecare, de exemplu C:\teste. 2. Compilarea n linie de comand. La promptul de comand, compilai astfel: csc salut.cs

Fig. 2 Exemplu de compilare n linie de comand

Aadar, compilatorul csc.exe (C sharp compiler) primete ca argument n linie de comand numele fiierului surs. Vei constata c n urma compilrii, n folderul C:\teste s-a creat fiierul salut.exe. Acesta este un assembly, coninnd codul intermediar CIL. Executarea lui este posibil doar pe sistemele care au infrastructura .NET. 3. Executarea programului. Rularea programului se face simplu, prin tastarea numelui fiierului .exe: c:\teste>salut Programul afieaz: Salut lume!

Fig. 3 Executarea programului dat ca exemplu Setarea variabilei de mediu PATH. Dac platforma .NET a fost instalat odat cu Visual Studio sau VCSE, atunci la instalare putei opta ca variabila de mediu PATH s rein n mod implicit cile spre utilitarele n linie de comad, inclusiv spre compilator, ceea ce v scutete de efortul de a le introduce manual. Dac PATH nu reine aceste ci, atunci nu vei putea lucra n linie de comand, deoarece sistemul de operare nu va gsi aceste utilitare. n cazul n care nu ai ales varianta setrii PATH la instalare, o putei face ulterior astfel: La promptul de comand, mutai-v n subdirectorul Common7\Tools al instalrii. Rulai fiierul de comenzi VSVARS32.bat scriind: VSVARS32.

Crearea unei aplicaii de tip consol


1. Deschidei mediul integrat de programare: Start->All Programs-> Visual C# 2008 Express Edition. 2. n meniul File, selectai New Project. Se deschide dialogul New Project. Acesta permite alegerea diferitor tipuri de aplicaii. Selectai Console Application ca tip de proiect i schimbai numele aplicaiei n salut. Click OK. Visual C# Express Edition 2008 creaz un nou folder pentru proiect, cu acelai nume cu cel al proiectului. Deschide de asemenea fereastra principal i Editorul de Cod unde vei intra i vei modifica codul surs C#.

Toolbars

Solution Explorer

Fig. 4 Crearea unei aplicaii de tip consol

Barele de instrumente (Toolbars) sunt n partea de sus a ferestrei principale. Acestea conin icon-uri pentru crearea, ncrcarea i salvarea proiectelor, editarea codului surs, compilarea aplicaiei. Accesare: View- >Toolbars. n partea a doua a lucrrii, prin Toolbar vom identifica bara de intrumente care pstreaz iconuri cu controalele Windows Forms. Solution Explorer este un panou foarte util care afieaz fiierele care constituie proiectul. Cel mai important fiier este Program.cs," care conine codul surs al aplicaiei. 3. Este permis s schimbai numele clasei n Editorul de Cod. De exemplu schimbai Program cu Salut. 4. Scriei codul de mai jos:

using System; static void Main(string[] args) { Console.WriteLine("Imi place C# !"); Console.ReadLine(); }

5.

Rularea programului. Programul este gata de compilare i rulare. Se apas F5 ori click pe iconul

IntelliSense o facilitate important a editorului de cod


Cnd se scrie un nume sau un cuvnt cheie n editor, se poate utiliza instrumentul numit IntelliSense care este parte a panoului de cod. De exemplu, cnd metoda ReadLine apare evideniat n list, Apsai Enter sau Tab sau facei dublu-click i ReadLine va fi adugat n cod:

Fig. 4 Facilitatea IntelliSense Avantajul utilizrii IntelliSense este pe de o parte faptul c programatorul nu trebuie s memoreze toate tipurile i metodele vizibile ntr-un anumit context deoarece acestea apar n mod automat n list. Pe de alt parte, poate fi sigur c ceea ce scrie este corect.

10