Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI) Plate-forme.NET.

Slides:



Advertisements
Présentations similaires
Structures de données avancées : MLH (Multidimensional linear hashing)
Advertisements

La programmation orientée objet avec Java L3-MIAGE Plan
Structures de données avancées : Principales structures de données
Structures de données avancées : MBT ( Multidimensional B-trees )
Structures de données avancées : MTH ( Multidimensional trie hashing )
Langage C# et Plate-forme .NET
Formation universitaire à .NET: Introduction à C#
Traitement sémantique et grammaire dattributs Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
Le langage Z Pr ZEGOUR DJAMEL EDDINE
Sémantique des déclarations pour le langage Z minimal
Introduction au langage C++
La machine virtuelle virtuelle utopie et/ou réalité ?
Le mécanisme des exceptions
A propos de java Sun, fin 1995 C++ nettoyé semi-interprété
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
L’architecture .net et ASP.net
(Classes prédéfinies – API Java)
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
INTRODUCTION.
Les fonctions en Java Partie I Le type void. Dans cette rapide présentation, je vais expliquer :.à quoi servent les fonctions.à quoi faut-il penser avant.
Les entrées /sorties en Java François Bonneville
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)
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
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.
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Microsoft .NET.
Formation JAVA. Par: SILMI.S
IFT 6800 Atelier en Technologies d’information
1 Les paquetages («packages»). 2 L'objectif avec les paquetages («packages») est de rendre accessibles aux utilisateurs des classes définies par d'autres.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Séance d’introduction
CSI1502 Principes fondamentaux en conception des logiciels
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
Formation universitaire à.NET: Introduction Formation universitaire à.NET: Introduction © Patrick Smacchia © Patrick Smacchia/Microsoft.
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Structures de données avancées : Arbres AVL & Arbres Rouge et Noir
Structures de données avancées : Hachage dynamique
Objectifs À la fin de ce cours, vous serez capables de :
Programmation Système et Réseau (sous Linux)
INTRODUCTION.
11/04/ L'héritage Cours 7 Cours 7.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Sémantique des expressions arithmétiques pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Le langage Z minimal Pr ZEGOUR DJAMEL EDDINE
Entrées / Sorties.
Constructeurs H Batatia. Variable statique Une variable statique est partagée par tous les objets d’une classe.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de données avancées : Arbres ‘Left Leaning Red-Black’
L’analyse lexicale Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Sémantique des instructions pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures simples et tableaux Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Interprétation/Génération de code pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Expressions sur les chaînes de caractères Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
**Sous-titre du module Campus-Booster ID : **XXXXX Copyright © SUPINFO. All rights reserved Notions fondamentales du C# 2.0.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Une brève présentation de C# Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 2 – Java Premiers pas Master 1 SIGLIS1 Java Lecteur - Chapitre 2 - Java Premiers Pas.
Généricité.
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Transcription de la présentation:

Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI) Plate-forme.NET

Cest quoi Microsoft.NET Essentiellement un environnement de développement et d'exécution Reprend les concepts de la machine virtuelle de Java, Utilise le CLR (Common Language Runtime). Le principe La compilation du code source génère un objet intermédiaire dans le langage MSIL (Microsoft Intermediate Language) Indépendant de toute architecture de processeur et de tout système d'exploitation La CLR exécute du bytecode JIT compilé Cet objet intermédiaire, est ensuite compilé à la volée, au sein du CLR, au moyen d'un compilateur JIT (Just In Time) qui le transforme en code machine lié au processeur sur lequel il réside.

Plate-forme.NET Le code MSIL est commun à tous les langages.Net Pour Java, le code intermédiaire (byte-code) est lié à un seul langage source, Le code intermédiaire (IL) de la plate-forme.NET est commun à un ensemble de langages (C#, VB.Net, Jscript.Net, J#.Net, Managed C++, etc.). C#, VB.Net, Jscript.Net, J#.Net, Managed C++, etc. Compilateur MSIL JIT1 JIT2 JIT3 Code M1 Code M2 Code M3...

Plate-forme.NET Méta-données Les compilateurs de la plate-forme.NET incorporent dans l'exécutable des méta données. Ces méta données décrivent l'exécutable. Il est ainsi possible dynamiquement de connaître les différents types déclarés par un exécutable, les méthodes qu'il implémente, etc. La lecture des méta données s'appelle réflection : la plate-forme.NET fournit de nombreuses classes permettant de manipuler les exécutables. Interopérabilité Assurée grâce à lexistence dun CLS (Common Language Specification) Le CLS définit un ensemble de règles que tout compilateur de la plate-forme doit respecter. Le CLS utilise un système de types unifié permettant d'avoir le même système de type entre les différents langages (CTS)

Plate-forme.NET Assemblage (Assembly) Cest la brique de base d'une application.NET Il peut s'agir d'un exécutable (.exe) ou d'une bibliothèque (.dll) Contient toutes les méta données sur les modules (exécutables), types (classes) et les méthodes (une liste d'instructions en langage intermédiaire et des méta données ) Les méta données sont utilisées par l'environnement d'exécution (CLR). Ex : La définition des classes peut être obtenue directement à partir du composant, en examinant les méta données Hiérarchie : Assemblage Modules Types Méthodes

Plate-forme.NET Récupération de méta données des exécutables Fichier calculatrice.cs using System; class MaCalculatrice { public int Add(int a, int b) { return a+b; } public int Sub(int a, int b) { return a-b; } Fichier application.cs public class MonApplication { static void Main (string[] args) { MaCalculatrice calculette = new MaCalculatrice (); int i = 10, j = 20; Console.WriteLine ("{i} + {j} =", i, j, calculette.Add (i, j)); } La compilation donne (deux étapes) : génération bibliothèque :calculatrice.dll génération de l'exécutable : application.exe Type MaCalculatrice a cette méthode : Int32 Add(Int32, Int32) System.Type GetType() System.String ToString() Boolean Equals(System.Object) Int32 GetHashCode() Type MonApplication a cette méthode : System.Type GetType() System.String ToString() Boolean Equals(System.Object) Int32 GetHashCode() Programme C#

Plate-forme.NET Programme C# qui récupère les méta données using System;using System.IO;using System.Reflection; public class Meta { public static int Main () { // lire l'assembly Assembly a = Assembly.LoadFrom ("application.exe"); // lire tous les modules de l'assembly Module[] modules = a.GetModules(); // inspecter tous le premier module Module module = modules[0]; // lire tous les types du premier module Type[] types = module.GetTypes(); // inspecter tous les types foreach (Type type in types) { Console.WriteLine("Type {0} a cette méthode : ", type.Name); // inspecter toutes les méthodes du type MethodInfo[] mInfo = type.GetMethods(); foreach (MethodInfo mi in mInfo) { Console.WriteLine (" {0}", mi); } return 0; }

Plate-forme.NET L'outil ILDASM (Intermediate Language Disassembler) permet d'afficher de manière hiérarchique les informations sur une application (utilise essentiellement la réflexion)