La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Formation universitaire à.NET: Introduction Formation universitaire à.NET: Introduction © Patrick Smacchia © Patrick Smacchia/Microsoft.

Présentations similaires


Présentation au sujet: "Formation universitaire à.NET: Introduction Formation universitaire à.NET: Introduction © Patrick Smacchia © Patrick Smacchia/Microsoft."— Transcription de la présentation:

1 Formation universitaire à.NET: Introduction Formation universitaire à.NET: Introduction © Patrick Smacchia http://www.smacchia.com © Patrick Smacchia/Microsoft Research Cambridge 2004 Les supports (cours et lab) de cette formation peuvent être utilisés gratuitement dans le cadre de tout enseignement à but non lucratif. Contacter moi avant toute utilisation non personnelle de ces supports : patrick@smacchia.compatrick@smacchia.com

2 Introduction à.NET2 Plan Quest ce que.NET? Quest ce que.NET? La notion dassemblage La notion dassemblage Le langage CIL Le langage CIL Le CLR Le CLR La BCL : Base Class Library La BCL : Base Class Library Laspect Multi-Langage Laspect Multi-Langage

3 Introduction à.NET3 Quest ce que.NET? Plus grosse évolution dans le monde du développement depuis Java. Plus grosse évolution dans le monde du développement depuis Java. Plus grosse évolution chez Microsoft depuis le passage de DOS à Windows. Plus grosse évolution chez Microsoft depuis le passage de DOS à Windows. Abstraire la communication inter-machine des OS sous-jacents avec les services web. Abstraire la communication inter-machine des OS sous-jacents avec les services web. Des nouveaux langages (CIL, C#, VB.NET…) Des nouveaux langages (CIL, C#, VB.NET…) Des spécifications techniques normalisées par lECMA et le W3C. Des spécifications techniques normalisées par lECMA et le W3C. Quest ce que.NET?

4 Introduction à.NET4 Plan Quest ce que.NET? Quest ce que.NET? La notion dassemblage La notion dassemblage Le langage CIL Le langage CIL Le CLR Le CLR La BCL : Base Class Library La BCL : Base Class Library Laspect Multi-Langage Laspect Multi-Langage

5 Introduction à.NET5 La notion dassemblage Unités de déploiement logique Unités de déploiement logique Exécutables (.exe) et bibliothèque (.dll) Exécutables (.exe) et bibliothèque (.dll) Assemblage = Produit de la compilation Assemblage = Produit de la compilation Quel que soit le langage (C# VB.NET…)Quel que soit le langage (C# VB.NET…) Quel que soit le type dapplication (application graphique (winforms), console, serveur web, service web…)Quel que soit le type dapplication (application graphique (winforms), console, serveur web, service web…) La notion dassemblage

6 Introduction à.NET6 Bénéfices des assemblages Simplification du versioning Simplification du versioning Simplification du déploiement Simplification du déploiement Simplification de la gestion des cultures Simplification de la gestion des cultures Simplification de la maintenance Simplification de la maintenance Simplification de lanalyse du contenu (car auto- descriptif) Simplification de lanalyse du contenu (car auto- descriptif) Possibilité de les rendre infalsifiables grâce à un mécanisme de signature numérique Possibilité de les rendre infalsifiables grâce à un mécanisme de signature numérique Possibilité de stocker un assemblage sur plusieurs fichiers Possibilité de stocker un assemblage sur plusieurs fichiers La notion dassemblage

7 Introduction à.NET7 Plan Quest ce que.NET? Quest ce que.NET? La notion dassemblage La notion dassemblage Le langage CIL Le langage CIL Le CLR Le CLR La BCL : Base Class Library La BCL : Base Class Library Laspect Multi-Langage Laspect Multi-Langage

8 Introduction à.NET8 Le langage CIL Common Intermediate Language Common Intermediate Language Equivalent bytecode Java Equivalent bytecode Java Normalisé par lECMA Normalisé par lECMA Langage objet, mais proche de la machine Langage objet, mais proche de la machine MSIL : implémentation MS du CIL MSIL : implémentation MS du CIL Le langage CIL

9 Introduction à.NET9 Le langage CIL : Exemple class Prog { static int f(int i1, int i2) { return i1+i2; } public static void Main() { int i1 =5; int i2 =6; int i3 = f(i1,i2); }.maxstack 2.locals ([0] int32 i1, [1] int32 i2, [2] int32 i3) IL_0000: ldc.i4.5 IL_0001: stloc.0 IL_0002: ldc.i4.6 IL_0003: stloc.1 IL_0004: ldloc.0 IL_0005: ldloc.1 IL_0006: call int32 Prog::f(int32,int32) IL_000b: stloc.2 IL_000c: ret Le langage CIL

10 Introduction à.NET10 Langage CIL et assemblage Assemblage Description du contenu de lassemblage (les Métadonnées) Descriptions des types contenus dans lassemblage Description des membres des types Code CIL des méthodes des classes contenues dans lassemblage Le langage CIL

11 Introduction à.NET11 Plan Quest ce que.NET? Quest ce que.NET? La notion dassemblage La notion dassemblage Le langage CIL Le langage CIL Le CLR Le CLR La BCL : Base Class Library La BCL : Base Class Library Laspect Multi-Langage Laspect Multi-Langage

12 Introduction à.NET12 Le CLR Common Langage Runtime Common Langage Runtime Couche logicielle qui gère le code à lexécution Couche logicielle qui gère le code à lexécution Equivalent Machine Virtuelle Java Equivalent Machine Virtuelle Java Implémentation Microsoft du CLI: Common Langage Infrastructure normalisée par lECMA Implémentation Microsoft du CLI: Common Langage Infrastructure normalisée par lECMA Le CLR

13 Introduction à.NET13 Le CLR : vue physique Plusieurs versions du CLR peuvent cohabiter sur la même machine Plusieurs versions du CLR peuvent cohabiter sur la même machine 2 implémentations pour chaque version du CLR : 2 implémentations pour chaque version du CLR : mscorwks.dll/mscorsvr.dll Le CLR est chargé une seule fois par chaque processus exécutant une application.NET Le CLR est chargé une seule fois par chaque processus exécutant une application.NET Le CLR

14 Introduction à.NET14 Le CLR et les assemblages Les octets dentêtes des assemblages indiquent à Windows la nécessité de charger le CLR dans le processus Les octets dentêtes des assemblages indiquent à Windows la nécessité de charger le CLR dans le processus Cet entête indique aussi la version du CLR à charger Cet entête indique aussi la version du CLR à charger Une fois chargé, le CLR est (entre- autres) responsable du chargement des assemblages dans le processus Une fois chargé, le CLR est (entre- autres) responsable du chargement des assemblages dans le processus Lors du chargement dun assemblage, le CLR effectue des vérifications sur la non-falsification et la provenance de lassemblage Lors du chargement dun assemblage, le CLR effectue des vérifications sur la non-falsification et la provenance de lassemblage Le CLR

15 Introduction à.NET15 Le CLR et le langage CIL Compilation du code CIL en langage machine, à lexécution Compilation du code CIL en langage machine, à lexécution Chaque méthode est compilée juste avant sa première utilisation : Compilation JIT (Just In Time = Juste à temps) Chaque méthode est compilée juste avant sa première utilisation : Compilation JIT (Just In Time = Juste à temps) La compilation JIT est quasi-transparente au niveau des performances car le langage CIL proche du langage machine La compilation JIT est quasi-transparente au niveau des performances car le langage CIL proche du langage machine Compilation JIT : permet dexécuter un même assemblage sur plusieurs types de machines Compilation JIT : permet dexécuter un même assemblage sur plusieurs types de machines Possibilité de précompiler le code CIL dun assemblage pour un type de machine Possibilité de précompiler le code CIL dun assemblage pour un type de machine Le CLR

16 Introduction à.NET16 Les responsabilités du CLR Chargement des assemblages dans lespace mémoire du processus Chargement des assemblages dans lespace mémoire du processus Compilation JIT du code CIL des assemblages Compilation JIT du code CIL des assemblages Gestion des allocations/désallocations mémoire (ramasse-miettes) Gestion des allocations/désallocations mémoire (ramasse-miettes) Gestion des exceptions Gestion des exceptions Gestion de la sécurité Gestion de la sécurité On parle de code géré On parle de code géré Le CLR

17 Introduction à.NET17 Plan Quest ce que.NET? Quest ce que.NET? La notion dassemblage La notion dassemblage Le langage CIL Le langage CIL Le CLR Le CLR La BCL : Base Class Library La BCL : Base Class Library Laspect Multi-Langage Laspect Multi-Langage

18 Introduction à.NET18 BCL: Base Class Library + de 1400 types, dans un ensemble dassemblages fourni par MS + de 1400 types, dans un ensemble dassemblages fourni par MS Parmi ces assemblages, lassemblage joue un rôle particulier: Parmi ces assemblages, lassemblage mscorlib joue un rôle particulier: Contient les types de bases (entiers, chaîne de caractères…)Contient les types de bases (entiers, chaîne de caractères…) Il est référencé par tous les assemblagesIl est référencé par tous les assemblages Il ne peut être chargé quune seule fois dans chaque processusIl ne peut être chargé quune seule fois dans chaque processus La BCL : Base Class Library

19 Introduction à.NET19 BCL : Les fonctionnalités Données: ADO.NET, XML, Flot de données Données: ADO.NET, XML, Flot de données App graphique : Winform, Webform, GDI+ App graphique : Winform, Webform, GDI+ Collection Collection Synchronisation Synchronisation Sécurité Sécurité Sérialisation Sérialisation Threading Threading Globalization Globalization… La BCL : Base Class Library

20 Introduction à.NET20 BCL : Les espaces de noms Les types sont répartis dans une arborescence logique despaces de noms Les types sont répartis dans une arborescence logique despaces de noms La racine: Espace de noms System (ex de types:, …) La racine: Espace de noms System (ex de types: System.Int32, System.String …) Autres ex despaces de noms:, Autres ex despaces de noms: System.Xml, System.Windows.Forms Physiquement, les types dun même espace de noms peuvent être dans différents assemblages Physiquement, les types dun même espace de noms peuvent être dans différents assemblages La BCL : Base Class Library

21 Introduction à.NET21 BCL : la classe System.Object Toutes les classes (y compris les votre) dérivent de la classe, définie dans lassemblage. Toutes les classes (y compris les votre) dérivent de la classe System.Object, définie dans lassemblage mscorlib. 4 fonctionnalités présentées par cette classe: 4 fonctionnalités présentées par cette classe: renvoie le type de lobjetGetType() renvoie le type de lobjet renvoie une chaîne de caractères décrivant lobjetToString() renvoie une chaîne de caractères décrivant lobjet appelée par le ramasse-miettes avant la déstruction de lobjetFinalize() appelée par le ramasse-miettes avant la déstruction de lobjet permet lutilisation dune table de hachage pour stocker une collection dobjetsEquals() GetHashCode() permet lutilisation dune table de hachage pour stocker une collection dobjets La BCL : Base Class Library

22 Introduction à.NET22 Plan Quest ce que.NET? Quest ce que.NET? La notion dassemblage La notion dassemblage Le langage CIL Le langage CIL Le CLR Le CLR La BCL : Base Class Library La BCL : Base Class Library Laspect Multi-Langage Laspect Multi-Langage

23 Introduction à.NET23 Laspect Multi-langages Une classe de base peut être écrite en C# Une classe de base peut être écrite en C# Une classe écrite en J# peut en dériver Une classe écrite en J# peut en dériver La classe peut être instanciée à partir dun code VB.NET La classe peut être instanciée à partir dun code VB.NET Relance la recherche sur les langages Relance la recherche sur les langages Multi-langages : pas forcément un bienfait, il vaut mieux ne pas utiliser trop de langages pour un même projet Multi-langages : pas forcément un bienfait, il vaut mieux ne pas utiliser trop de langages pour un même projet Laspect Multi-langages

24 Introduction à.NET24 Laspect Multi-langages Plus de 25 langages prévus (pas tous produits par MS) C# C# J# J# VB.NET VB.NET JScript Compilation JScript Compilation Fortran.NETCIL Fortran.NETCIL Cobol.NET Cobol.NET SML.NET SML.NET … Laspect Multi-langages

25 Introduction à.NET25 Laspect Multi-langages : CLS CLS : Common Langage Spécification CLS : Common Langage Spécification Définie les contraintes que doivent respecter les langages et leurs compilateurs Définie les contraintes que doivent respecter les langages et leurs compilateurs Exemple de contraintes : Exemple de contraintes : Héritage simple dimplémentationHéritage simple dimplémentation Héritage multiple dabstractionHéritage multiple dabstraction = classe de base de toutes classes représentant une exceptionSystem.Exception = classe de base de toutes classes représentant une exception Laspect Multi-langages

26 Introduction à.NET26 Laspect Multi-langages : CTS CTS : Common Type System CTS : Common Type System CTS = sous-ensemble des contraintes CLS concernant les types primitifs (entiers, chaînes de caractères, dates…) pour que leur utilisation puisse transcender les langages CTS = sous-ensemble des contraintes CLS concernant les types primitifs (entiers, chaînes de caractères, dates…) pour que leur utilisation puisse transcender les langages Les langages définissent des alias pour nommer les types primitifs : Les langages définissent des alias pour nommer les types primitifs : alias en C# et en VB.NETSystem.Int16 alias short en C# et Short en VB.NET alias en VB.NET, pas dalias en C#System.Date alias Date en VB.NET, pas dalias en C# alias en C#, ce type nest pas compatible avec le CLSSystem.UInt16 alias ushort en C#, ce type nest pas compatible avec le CLS Laspect Multi-langages

27 Introduction à.NET27 Question? Mots clés : Assemblage, Compilation JIT, mscorwks, mscorsvr, mscorlib, code géré, espace de noms Mots clés : Assemblage, Compilation JIT, mscorwks, mscorsvr, mscorlib, code géré, espace de noms Acronymes : Acronymes : CIL: Common Intermediate LanguageCIL: Common Intermediate Language CLR: Common Language RuntimeCLR: Common Language Runtime CLI : Common Langage InfrastructureCLI : Common Langage Infrastructure ECMA : European Computer Manufacturers AssociationECMA : European Computer Manufacturers Association JIT : Just In TimeJIT : Just In Time BCL : Base Class LibraryBCL : Base Class Library CLS : Common Langage SpécificationCLS : Common Langage Spécification CTS : Common Type SystemCTS : Common Type System


Télécharger ppt "Formation universitaire à.NET: Introduction Formation universitaire à.NET: Introduction © Patrick Smacchia © Patrick Smacchia/Microsoft."

Présentations similaires


Annonces Google