Net Prezentare

download Net Prezentare

of 7

description

Toate compilatoarele limbajelor .NET emit instructiuni CIL si metadata.Cand un *.dll sau *.exe a fost creat cu un compilator .Net, se foloseste termenul abstract assembly.Un assembly contine cod CIL (este similar notiunii de bytecod din JAVA) si metadata. De exemplu, daca am clasa Agent, metadata va contine detalii despre clasa de baza a clasei Agent, despre interfetele implementate si informatii despre fiecare membru al clasei.Un assembly este la randul lui descris folosind metadata. Aceste informatii reprezinta un manifest (detalii despre versiunea curenta a assembly-ului, referinte catre assembly-uri externe).

Transcript of Net Prezentare

Risipa de key_press | Programare Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple Tutoriale si exercitii Video tutorial android Quiz c# incepatori About Notiuni fundamentale .Net Framework Scopul acestui articol este de a fixa cat mai bine conceptul de functionare al platformei de programare .Net. Dupa opinia mea, acest lucru este esential pentru un dezvoltator .Net. Vom enumera, pe scurt, cateva caracteristici importante din .NET, apoi vom descrie componentele .Net Framework. Functionalitati .NET Sa enumeram cateva din functionalitatile importante ale .NET, care au reusit sa ii convinga pe programatori sa adopte aceasta platforma: interoperabilitate cu secvente de cod unmanaged (cod care ruleaza in afara CLR). suport pentru numeroase limbaje de programare. executie comuna pentru toate limbajele .NET. Programele in .Net se executa sub supravegherea CLR, acesta garantand anumite proprietati si un anumit comportament din punct de vedere al memoriei, securitatii, erorilor. o imensa librarie de clase de baza care se adreseaza tuturor limbajelor .Net. Sunt disponibile clase care incapsuleaza functii de grafica, interactiune cu baza de date, XML, algoritmi, etc. un model simplu de deployment prin includerea unor instrumente care ajuta la instalarea programului in conditiile de securitate si fara a interfera cu versiuni anterioare. Cele trei entitati care stau la baza functionarii .Net sunt: CLR, CTS, CLS. Common Language Runtime Cel mai important concept in functionarea .NET il reprezintaCommon Language Runtime. El este un layer (nivel, strat) intre sistemul de operare si aplicatiile .Net. Acestea nu comunica direct cu sistemul de operare, ci prin intermediul CLR. Ca sa definim runtime putem spune ca poate fi inteles ca o colectie de servicii care este apelata la executia unui anumite unitati de cod compilat. Termenul runtime in .Net este reprezentat de Common Language Runtime (CLR). Pentru dezvoltatorii Java, exista Java Virtual Machine. Principalul scop al CLR este de a localiza, incarca si de a administra tipurile .Net. De asemenea, se ocupa de managementul memoriei, al thread-uilor si de securitate. Pe scurt, CLR se ocupa de executia programului. Baza CLR o reprezinta un dll numitmscoree.dll(Common Object Runtime Execution Engine). Functionalitatile din CLR sunt disponibile pentru orice limbaj de programare .Net folosit. Daca la runtime se folosesc exceptii pentru a raporta eventuale erori, atunci toate limbajele vor receptiona erorile prin execeptii. CLR nu stie ce limbaj de programare a fost folosit in fisierele cod-sursa ale programului. Se poate folosi orice limbaj de programare atat timp cat compilatorul acestuia este compatabil cu CLR. O data cu lansarea .Net Framework 4.0, versiunea CLR a ajuns la 4.0. Pentru mai multe informatii despre CLR, puteti urmari uninterviu cu Ian Carmichael, despre istoria si viitorul CLR. Common Type System .Net este independent de limbaj (suporta peste 20 de limbaje de programare diferite). Cu toate acestea, un programator se poate folosi de tipurile de date specifice limbajului preferat, fara a intampina probleme. De exemplu, in fiecare limbaj exista un cuvant cheie unic pentru a defini un tip de baza (o variabila de tip intreg este declarata in C# caint, in Visual Basic este declarata caintegersau in C++ caint. Acestea indica in cele din urma tipul de baza System.Int32 in .Net Framework, in assembly-ulmscrolib.dll. Common Type System defineste modul in care tipurile de date urmeaza sa fie declarate si administrate la executie. Functionalitatea principala a CTS este de a standardiza conventiile pe care trebuie sa le respecte toate limbajele de programare din .Net. In plus, CTS se ocupa si detype safety. Cu ajutorul CTS se elimina probleme legate deoverflow/underflowpentru datele numerice, sau probleme despre reprezentarea tipurilor, de exemplu, string, boolean, etc, in alte limbaje. CTS suporta tipurile valoare si tipurile referinta. Observatie: Un limbaj de programare .Net nu suporta fiecare functionalitate definita de CTS. Important de retinut este ca CTS este o specificatie formala care arata cum trebuie sa fie definite tipurile pentru a fi gazduite de CLR. Probabil cei mai interesati de modul cum functioneaza CTS sunt programatorii care dezvolta instrumente de programare/compilatoare care au ca tinta platforma .Net. Puteti accesahttp://www.dotnetlanguages.netpentru a vedea o lista cu limbajele de programare din .Net. Common Language Specification Fiecare limbaj de programare indica in mod unic, cu ajutorul sintaxei proprii, aceleasi constructii de programarare (tipuri de date, controlul fluxului) programming constructs. De exemplu, in C# concatenarea se poate face cu ajutorul operatorului +, iar in VB se foloseste &. Aceste diferente minore sunt aproapte neinsemnate pentru .Net runtime, deoarece compilatoarele limbajelor respective emit acelasi set de instructiuni in limbaj MSIL. CLS reprezinta regulile care descriu setul de functionalitati pe care un compilator .Net trebuie sa il suporte pentru a produce cod care sa fie gazduit de CLR. Regulile din CLS trebuie cunoscute de cei care dezvolta compilatoare si vor ca produsele lor sa functioneze perfect in mediul .Net. CLS Compliance Exista situatii in care, in C#, este nevoie de programming constructs care nu sunt conforme cu CLS. In aceste cazuri, se poate folosi atributulCLSCompliantpentru a instrui compilatorul sa verifice fiecare linie de cod din punct de vedere al regulilor CLS. Daca sunt gasite incalcari ale acestor reguli, vor fi afisate erori de compilare. Microsoft Intermediate Language Cand se compileaza un program .Net, codul sursa nu se converteste in cod binar, ci intr-un cod intermediar numitMicrososft Intermediate Language(MSIL) sau, dupa noua denumire,Common Intermediate Language. Toate compilatoarele limbajelor .NET emit instructiuni CIL si metadata. Cand un *.dll sau *.exe a fost creat cu un compilator .Net, se foloseste termenul abstractassembly. Un assembly contine cod CIL (este similar notiunii de bytecod din JAVA) si metadata. De exemplu, daca am clasaAgent, metadata va contine detalii despre clasa de baza a claseiAgent, despre interfetele implementate si informatii despre fiecare membru al clasei. Un assembly este la randul lui descris folosind metadata. Aceste informatii reprezinta unmanifest(detalii despre versiunea curenta a assembly-ului, referinte catre assembly-uri externe). In cele mai multe cazuri, exista o singura corespondenta intre un assembly .Net si un fisier binar (.dll,.exe). In cazul in care scriem un program pentru desktop, executabilul poate fi referit ca assembly-ul in sine. Daca un assembly este compus dintr-un singur dll sau exe atunci se numestesingle-file assembly. Acesta contine instructiunile CIL, metadata si fisierulmanifestintr-un pachet bine definit, independent. Daca un assembly este compus din mai multe fisiere binare, el se numestemulti-file assembly. Fiecare fisier component poarta numele demodul. Unul din aceste module trebuie sa fie considerat principal si sa contina fisierul manifest al assembly-ului. Codul MSIL contine instructiuni care sunt independente de orice CPU. Este treaba CLR sa transforme acest cod intermediar intr-un cod executabil pe un mediu in care regulile CLR sunt implementate. Compilatorul JIT Atunci cand codul CIL compilat trebuie sa fie executat, CLR invoca compilatorulJust In Time(Jitter). Acesta va compila instructiunile CIL in cod executabil specific masinii sau sistemului de operare. Compilatoarele JIT se diferentiaza de cele traditionale prin faptul ca ele transforma codul CIL in cod nativ doar cand e nevoie. De exemplu, atunci cand o functie este apelata, codul CIL al functiei este convertit in cod nativ chiar atunci,just in time. Daca o sectiune de cod CIL este convertita la cod nativ, data viitoare cand este nevoie de aceasta, CLR va folosi aceeasi copie (deja compilata) fara a recompila. Compilatoarele JIT optimizeaza codul in functie de procesor si sistem de operare, la executie. Microsoft spune ca C# si .Net nu concureaza cu C++ din punct de vedere al eficientei si al vitezei de executie, dar in anumite cazuri datorita compilatoarelor JIT, codul poate devine mai rapid decat in C++. Base class libraries Pe langa CLR si specificatiile din CLS/CLR, platofrma .NET pune la dispozitie o librarie pentru toate limbajele de programare din .Net. BCL incapsuleaza functii pentru lucrul cu thread, I/O, grafica, interactiune cu dispozitive hardware externe. De asemea, BCL furnizeaza suport pentru servicii apelate de aplicatii din lumea reala (acces la baza de date, manipularea documentelor XML, securitate). BCL a fost actualizata cu fiecare versiune de .Net Framework. Observatie: A nu se confunda BCL cu FCL. Chiar daca nu are un mare impact asupra dezvolatorilor, consider ca este util sa cunoastem aceste diferente. FCL reprezinta tot ce este inclus in instalarea .Net (ADO.NET, ASP.NET,

Risipa de key_press | ProgramareProgramare .Net | Tehnici de programare | Tutoriale | Lectii si exempleTutoriale si exercitiiVideo tutorial androidQuiz c# incepatoriAboutNotiuni fundamentale .Net FrameworkScopul acestui articol este de a fixa cat mai bine conceptul de functionare al platformei de programare .Net. Dupa opinia mea, acest lucru este esential pentru un dezvoltator .Net.Vom enumera, pe scurt, cateva caracteristici importante din .NET, apoi vom descrie componentele .Net Framework.

Functionalitati .NETSa enumeram cateva din functionalitatile importante ale .NET, care au reusit sa ii convinga pe programatori sa adopte aceasta platforma:interoperabilitate cu secvente de cod unmanaged (cod care ruleaza in afara CLR).suport pentru numeroase limbaje de programare.executie comuna pentru toate limbajele .NET. Programele in .Net se executa sub supravegherea CLR, acesta garantand anumite proprietati si un anumit comportament din punct de vedere al memoriei, securitatii, erorilor.o imensa librarie de clase de baza care se adreseaza tuturor limbajelor .Net. Sunt disponibile clase care incapsuleaza functii de grafica, interactiune cu baza de date, XML, algoritmi, etc.un model simplu de deployment prin includerea unor instrumente care ajuta la instalarea programului in conditiile de securitate si fara a interfera cu versiuni anterioare.Cele trei entitati care stau la baza functionarii .Net sunt: CLR, CTS, CLS.Common Language RuntimeCel mai important concept in functionarea .NET il reprezintaCommon Language Runtime. El este un layer (nivel, strat) intre sistemul de operare si aplicatiile .Net. Acestea nu comunica direct cu sistemul de operare, ci prin intermediul CLR.Ca sa definim runtime putem spune ca poate fi inteles ca o colectie de servicii care este apelata la executia unui anumite unitati de cod compilat.Termenul runtime in .Net este reprezentat de Common Language Runtime (CLR). Pentru dezvoltatorii Java, exista Java Virtual Machine.Principalul scop al CLR este de a localiza, incarca si de a administra tipurile .Net. De asemenea, se ocupa de managementul memoriei, al thread-uilor si de securitate. Pe scurt, CLR se ocupa de executia programului.Baza CLR o reprezinta un dll numitmscoree.dll(Common Object Runtime Execution Engine).Functionalitatile din CLR sunt disponibile pentru orice limbaj de programare .Net folosit. Daca la runtime se folosesc exceptii pentru a raporta eventuale erori, atunci toate limbajele vor receptiona erorile prin execeptii.CLR nu stie ce limbaj de programare a fost folosit in fisierele cod-sursa ale programului. Se poate folosi orice limbaj de programare atat timp cat compilatorul acestuia este compatabil cu CLR.O data cu lansarea .Net Framework 4.0, versiunea CLR a ajuns la 4.0.Pentru mai multe informatii despre CLR, puteti urmari uninterviu cu Ian Carmichael, despre istoria si viitorul CLR.Common Type System.Net este independent de limbaj (suporta peste 20 de limbaje de programare diferite). Cu toate acestea, un programator se poate folosi de tipurile de date specifice limbajului preferat, fara a intampina probleme.De exemplu, in fiecare limbaj exista un cuvant cheie unic pentru a defini un tip de baza (o variabila de tip intreg este declarata in C# caint, in Visual Basic este declarata caintegersau in C++ caint. Acestea indica in cele din urma tipul de baza System.Int32 in .Net Framework, in assembly-ulmscrolib.dll.Common Type System defineste modul in care tipurile de date urmeaza sa fie declarate si administrate la executie. Functionalitatea principala a CTS este de a standardiza conventiile pe care trebuie sa le respecte toate limbajele de programare din .Net. In plus, CTS se ocupa si detype safety.Cu ajutorul CTS se elimina probleme legate deoverflow/underflowpentru datele numerice, sau probleme despre reprezentarea tipurilor, de exemplu, string, boolean, etc, in alte limbaje.CTS suporta tipurile valoare si tipurile referinta.Observatie: Un limbaj de programare .Net nu suporta fiecare functionalitate definita de CTS.Important de retinut este ca CTS este o specificatie formala care arata cum trebuie sa fie definite tipurile pentru a fi gazduite de CLR. Probabil cei mai interesati de modul cum functioneaza CTS sunt programatorii care dezvolta instrumente de programare/compilatoare care au ca tinta platforma .Net.Puteti accesahttp://www.dotnetlanguages.netpentru a vedea o lista cu limbajele de programare din .Net.Common Language SpecificationFiecare limbaj de programare indica in mod unic, cu ajutorul sintaxei proprii, aceleasi constructii de programarare (tipuri de date, controlul fluxului) programming constructs. De exemplu, in C# concatenarea se poate face cu ajutorul operatorului +, iar in VB se foloseste &.Aceste diferente minore sunt aproapte neinsemnate pentru .Net runtime, deoarece compilatoarele limbajelor respective emit acelasi set de instructiuni in limbaj MSIL.CLS reprezinta regulile care descriu setul de functionalitati pe care un compilator .Net trebuie sa il suporte pentru a produce cod care sa fie gazduit de CLR.Regulile din CLS trebuie cunoscute de cei care dezvolta compilatoare si vor ca produsele lor sa functioneze perfect in mediul .Net.CLS ComplianceExista situatii in care, in C#, este nevoie de programming constructs care nu sunt conforme cu CLS. In aceste cazuri, se poate folosi atributulCLSCompliantpentru a instrui compilatorul sa verifice fiecare linie de cod din punct de vedere al regulilor CLS. Daca sunt gasite incalcari ale acestor reguli, vor fi afisate erori de compilare.Microsoft Intermediate LanguageCand se compileaza un program .Net, codul sursa nu se converteste in cod binar, ci intr-un cod intermediar numitMicrososft Intermediate Language(MSIL) sau, dupa noua denumire,Common Intermediate Language.Toate compilatoarele limbajelor .NET emit instructiuni CIL si metadata.Cand un *.dll sau *.exe a fost creat cu un compilator .Net, se foloseste termenul abstractassembly.Un assembly contine cod CIL (este similar notiunii de bytecod din JAVA) si metadata. De exemplu, daca am clasaAgent, metadata va contine detalii despre clasa de baza a claseiAgent, despre interfetele implementate si informatii despre fiecare membru al clasei.Un assembly este la randul lui descris folosind metadata. Aceste informatii reprezinta unmanifest(detalii despre versiunea curenta a assembly-ului, referinte catre assembly-uri externe).In cele mai multe cazuri, exista o singura corespondenta intre un assembly .Net si un fisier binar (.dll,.exe). In cazul in care scriem un program pentru desktop, executabilul poate fi referit ca assembly-ul in sine.Daca un assembly este compus dintr-un singur dll sau exe atunci se numestesingle-file assembly. Acesta contine instructiunile CIL, metadata si fisierulmanifestintr-un pachet bine definit, independent.Daca un assembly este compus din mai multe fisiere binare, el se numestemulti-file assembly. Fiecare fisier component poarta numele demodul. Unul din aceste module trebuie sa fie considerat principal si sa contina fisierul manifest al assembly-ului.Codul MSIL contine instructiuni care sunt independente de orice CPU. Este treaba CLR sa transforme acest cod intermediar intr-un cod executabil pe un mediu in care regulile CLR sunt implementate.Compilatorul JITAtunci cand codul CIL compilat trebuie sa fie executat, CLR invoca compilatorulJust In Time(Jitter). Acesta va compila instructiunile CIL in cod executabil specific masinii sau sistemului de operare. Compilatoarele JIT se diferentiaza de cele traditionale prin faptul ca ele transforma codul CIL in cod nativ doar cand e nevoie. De exemplu, atunci cand o functie este apelata, codul CIL al functiei este convertit in cod nativ chiar atunci,just in time. Daca o sectiune de cod CIL este convertita la cod nativ, data viitoare cand este nevoie de aceasta, CLR va folosi aceeasi copie (deja compilata) fara a recompila.Compilatoarele JIT optimizeaza codul in functie de procesor si sistem de operare, la executie. Microsoft spune ca C# si .Net nu concureaza cu C++ din punct de vedere al eficientei si al vitezei de executie, dar in anumite cazuri datorita compilatoarelor JIT, codul poate devine mai rapid decat in C++.Base class librariesPe langa CLR si specificatiile din CLS/CLR, platofrma .NET pune la dispozitie o librarie pentru toate limbajele de programare din .Net.BCL incapsuleaza functii pentru lucrul cu thread, I/O, grafica, interactiune cu dispozitive hardware externe. De asemea, BCL furnizeaza suport pentru servicii apelate de aplicatii din lumea reala (acces la baza de date, manipularea documentelor XML, securitate).BCL a fost actualizata cu fiecare versiune de .Net Framework.Observatie: A nu se confunda BCL cu FCL. Chiar daca nu are un mare impact asupra dezvolatorilor, consider ca este util sa cunoastem aceste diferente.FCL reprezinta tot ce este inclus in instalarea .Net (ADO.NET, ASP.NET,

Toate compilatoarele limbajelor .NET emit instructiuni CIL si metadata.Cand un *.dll sau *.exe a fost creat cu un compilator .Net, se foloseste termenul abstractassembly.Un assembly contine cod CIL (este similar notiunii de bytecod din JAVA) si metadata. De exemplu, daca am clasaAgent, metadata va contine detalii despre clasa de baza a claseiAgent, despre interfetele implementate si informatii despre fiecare membru al clasei.Un assembly este la randul lui descris folosind metadata. Aceste informatii reprezinta unmanifest(detalii despre versiunea curenta a assembly-ului, referinte catre assembly-uri externe).

Exista situatii in care, in C#, este nevoie de programming constructs care nu sunt conforme cu CLS. In aceste cazuri, se poate folosi atributulCLSCompliantpentru a instrui compilatorul sa verifice fiecare linie de cod din punct de vedere al regulilor CLS. Daca sunt gasite incalcari ale acestor reguli, vor fi afisate erori de compilare.Microsoft Intermediate LanguageCand se compileaza un program .Net, codul sursa nu se converteste in cod binar, ci intr-un cod intermediar numitMicrososft Intermediate Language(MSIL) sau, dupa noua denumire,Common Intermediate Language.

Common Language SpecificationFiecare limbaj de programare indica in mod unic, cu ajutorul sintaxei proprii, aceleasi constructii de programarare (tipuri de date, controlul fluxului) programming constructs. De exemplu, in C# concatenarea se poate face cu ajutorul operatorului +, iar in VB se foloseste &.Aceste diferente minore sunt aproapte neinsemnate pentru .Net runtime, deoarece compilatoarele limbajelor respective emit acelasi set de instructiuni in limbaj MSIL.CLS reprezinta regulile care descriu setul de functionalitati pe care un compilator .Net trebuie sa il suporte pentru a produce cod care sa fie gazduit de CLR.Regulile din CLS trebuie cunoscute de cei care dezvolta compilatoare si vor ca produsele lor sa functioneze perfect in mediul .Net.

Common Language SpecificationFiecare limbaj de programare indica in mod unic, cu ajutorul sintaxei proprii, aceleasi constructii de programarare (tipuri de date, controlul fluxului) programming constructs. De exemplu, in C# concatenarea se poate face cu ajutorul operatorului +, iar in VB se foloseste &.Aceste diferente minore sunt aproapte neinsemnate pentru .Net runtime, deoarece compilatoarele limbajelor respective emit acelasi set de instructiuni in limbaj MSIL.CLS reprezinta regulile care descriu setul de functionalitati pe care un compilator .Net trebuie sa il suporte pentru a produce cod care sa fie gazduit de CLR.Regulile din CLS trebuie cunoscute de cei care dezvolta compilatoare si vor ca produsele lor sa functioneze perfect in mediul .Net.