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

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

Module Systèmes d’exploitation
Pierre Lagarde Relation technique développeur Grégory Renard [Rédo] Responsable Développement Wygwam.
Module 5 : Implémentation de l'impression
Langage C# et Plate-forme .NET
Formation universitaire à .NET: Introduction à C#
.NET MicroFramework Historique & état des lieux Architecture A lintérieur du MicroFramework Demo: Sumo Robot.NET MicroFramework.
Agenda de la journée 10h00 : La place dASP.NET dans la plate-forme Microsoft 10h30 : Développement rapide dapplications Web en ASP.NET 12h00 : Construire.
Rencontres Windows Forms
Introduction au langage C++
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
Appels de fonctions natives sous C#
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
L’architecture .net et ASP.net
Introduction à Java - les paquetages -
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
MIKHAYLOVA Vera Exposé Java principe de fonctionnement Lundi 17 mai 2004 DEUG 1ère année Science du langage Paris III.
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
JAV - TD 6 Structures de données JAVA
Systèmes d’exploitation
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Principes de programmation (suite)
Etude des Technologies du Web services
Programmation orientée objet
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Développement d’applications
XML-Family Web Services Description Language W.S.D.L.
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
ASP.NET un peu plus loin… Développement Rapide dApplications Web avec.NET.
Formation universitaire à .NET: Visual Studio .NET
Programmation Approche composants Ing5 SI
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
.Net Remoting.
Introduction à la programmation (Java)
C#. Sommaire I. Descriptions du langage 1. Son origine 2. Plate-forme d'exécution II. Capacités du langage 1. Différences avec le C / C++ 2. Java Vs C#
Microsoft dot Net Extrait du cours. La programmation fenêtrée facile. Une approche objet. Philippe Garraud: Formateur indépendant.
Structures des Systèmes d’Exploitation
Formation universitaire à .NET: Les assemblages
Larchitecture.NET: Le typage © Patrick Smacchia © Patrick Smacchia/Microsoft Research Cambridge 2004 Les supports (cours et lab)
P. Van Roy, LINF1251 LINF1251: Le Langage Java Peter Van Roy Département dIngénierie Informatique, UCL
Microsoft .NET.
PROJET DE GENIE LOGICIEL 2005
COURS DE PROGRAMMATION ORIENTEE OBJET :
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI) Plate-forme.NET.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Travail réalisé par : LATRECHE Imed Eddine MENASRIA Med Lamine
Technologies Web Microsoft
Le chemin de l’école 1 El camino a la escuela.
CENTRALISATION DES CANDIDATS LOCATAIRES
JavaScript Nécessaire Web.
.NET Plateforme, framework, produits Bernard Fedotoff (Pdg) Stéphane Vancauwenberghe (Consultant)
Introduction à la plateforme .NET
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Module 4 : Résolution de noms
Dyalog.Net Peter Donnelly Managing Director Dyadic Systems Toronto 30/10/2002.
Programmation Système et Réseau
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Interprétation/Génération de code pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
PaCO++ André Ribes Réunion Hydrogrid Rennes 15/09/03.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 2 – Java Premiers pas Master 1 SIGLIS1 Java Lecteur - Chapitre 2 - Java Premiers Pas.
La plateforme.NET 2.0 vue par le développeur Pascal Belaud Microsoft France SAGA.NET
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
9 février 2010 Enrique Ruiz Mateos Architecte avant-vente Microsoft
Introduction O.Legrand G. Seront. Open Handset Alliance Project Regroupement d'entreprises : –de télécommunications, –de constructeurs d’appareils mobiles,
Transcription de la présentation:

Formation universitaire à.NET: Introduction Formation universitaire à.NET: Introduction © Patrick Smacchia © 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 :

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

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?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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