'NET - PowerPoint PPT Presentation

About This Presentation
Title:

'NET

Description:

gros compromis pour vite produire des outils et technologies bas s sur l'Internet ... on recherche m thode de m me signature la plus d riv e que R peut appeler. ... – PowerPoint PPT presentation

Number of Views:28
Avg rating:3.0/5.0
Slides: 49
Provided by: moim
Category:
Tags: net | appeler | arr | atomique

less

Transcript and Presenter's Notes

Title: 'NET


1
.NET C
  • Sandra CHAVESSylvain CUAZ
  • DESS GI SRR 2002-2003
  • IMA - Université Grenoble 1

2
Plan
  • Origine de .NET
  • .NET
  • Le langage C
  • Les alternatives
  • Conclusion

3
Origine de .NET
  • 1995 Microsoft se tourne vers le net
  • gros compromis pour vite produire des outils et
    technologies basés sur lInternet
  • tentative de ramener un peu dordre avec le
    concept DNA

4
DNA
  • 3 niveaux
  • Active Server Pages pour la présentation,
  • Objets métiers en COM au milieu,
  • Une base de donnée pour le bas.
  • Concept sain, mais difficile à mettre en oeuvre
  • Dautres plateformes offrait de bien meilleures
    solutions (Unix, J2EE)
  • essentiel pour Microsoft de résoudre les
    limitations de DNA

5
Le remplaçant
  • 1998 début de Next Generation Windows Services
    (NGWS).
  • Développement confidentiel
  • NGWS rebaptisé .NET le 22 Juin 2000

6
.NET une plateforme logicielle
  • Description
  • Le framework

7
Description
  • Plateforme logicielle programmes ne cible pas
    une combinaison matériel/OS mais .NET
  • gt marcheront partout où est implémenté .NET
  • environnement indépendant d'un langage
  • But écrire des programmes qui interopère
    facilement et de façon sécurisé.

8
Description
  • .NET nom collectif pour des logiciels variés qui
    sont construit sur la plateforme .NET
  • produits Visual Studio.NET, Windows.NET Server,
  • services Passport, HailStorm,
  • Les composants qui constituent .NET-la-platforme
    sont appelés le Framework .NET.

9
.NET Framework
  • 2 parties principales
  • 1. La CLR (Common Language Runtime)
  • 2. Un ensemble hièrarchique de bibliothéques de
    classes

10
La CLR
  • Le moteur dexécution de .NET
  • Les caractéristiques
  • Conversion IL -gt code natif
  • Gestion Mémoire (garbage collection)
  • Vérifie et applique la sécurité
  • Charge et exécute les programmes

11
Intermediate Language
compilation
Exécution par la CLR
Code source
IL
  • Indépendant du CPU
  • Indépendant du langage
  • gt chaque langage choisi un sous-ensemble
  • Code accessible depuis dautres langages
  • gt respect de la Common Language Specification
    (CLS)

12
Managed Code
  • code qui cible .NET
  • contient des informations supplémentaires
    (metadonnées) pour se décrire
  • gt CLR peut garantir la sécurité,
    linteropérabilité

13
Common Type System
  • sert à décrire les types indépendamment du
    langage gt
  • type-fidelity permet à des types d'un langage
    d'interagir avec des types d'un autre langage
  • type-safety garanti que le code n'accède pas à
    des zone mémoires interdites

14
Unmanaged Code
  • .NET peut utiliser du code sans métadonnées
  • non  géré 
  • peut utiliser la bibliothéque de .NET
  • peut compiler en IL
  • ne peut bénéficier du GC
  • natif
  • pour de meilleures performances
  • par exemple WinForms

15
Assemblies
  • Briques des programmes .NET
  • unité fonctionnelle atomique
  • Collection de code et de métadonnées
  • Contient un Manifest, qui décrit
  • son nom
  • sa version
  • la liste des fichiers
  • les dépendances
  • les fonctions fournies

16
Module
  • Code compilé sans Manifest
  • Sert à modularisé le développement

17
JIT
  • La CLR utilise la compilation Just-In-Time
  • Chaque méthode appelée est compilée en code natif
  • appels suivants nont pas à être recompilés
  • Qq problèmes  exige des resources
  • mémoire
  • processeur

18
JIT
  • 2 compileurs JIT
  • un normal optimise pas mal, mais intensif au
    niveau de la mémoire et du processeur
  • un "EconoJIT optimise pas aussi bien, mais
    requiert moins de ressources
  • Promesse dun 3eme un compileur pre-JIT
  •  un compileur normal !
  • Le seul plus compile à linstallation gt pas
    besoin de distribuer du code spécifique pour
    chaque plateforme

19
Attributes
  • Façon flexible et extensible de modifier
    lenvironnement à la compilation ou à lexécution
  • Marquer une fonction comme étant obsolète gt
    warning à la compilation
  • Attacher un auteur à chaque bout de code gt on
    interroge ces attributs à lexécution

20
La bibliothéque de Classes
  • Namespace ensemble de classes
  • La racine des namespaces est System
  • Contient les types basiques comme Byte, Double,
    Boolean, and String, Object
  • Tous les objets dérivent de System.Object
  • value types ? objets
  • Moyens efficace de convertir des value types en
    objets

21
Côté client
  • Lensemble des classes est assez complet
  • Collections
  • File
  • Screen
  • network I/O
  • Threading
  • XML
  • Connection aux bases de données
  • Windows Forms alternative au développement
    traditionnel pour Windows

22
Côté serveur
  • Web Services composant sur un serveur web
    utilisé par
  • Une application
  • Un autre Web Service

23
Web Services
  • SOAP (Simple Object Access Protocol)
  • RPC qui utilise XML sur HTTP
  • WSDL (Web Service Description Language)
  • décrit la structure des messages
  • UDDI (Universal Description, Discovery and
    Integration)
  • annuaire global des services web

24
Web Services
WSDL
WebServiceA
WSDL
25
Plan
  • Présentation générale de C
  • Syntaxe du langage
  • Les plus de C

26
I. Présentation générale
  • Nouveau langage de Microsoft
  • Langage orienté objet
  • Ressemble à C
  • Utilise les classes définies dans .NET
  • Pas une partie de .NET, langage comme un autre
  • Permet dutiliser les concepts de .NET proprement

27
II. Syntaxe du langage
  • Définition dune classe
  • Définition dune méthode
  • Principales instructions
  • Types valeur et référence

28
Définition dune classe
  • namespace namespaceName
  • using Namespace(s)
  • access sealed abstract class NomClasse
  • Classe, Interface(s)
  • définition de la classe
  • Accessibilité à la classe
  • public private
  • protected internal
  • protected internal

29
Définition dune méthode
  • Une méthode
  • access new static abstract sealed
    extern
  • virtual override TypeRetour void
    NomMethode
  • (TypeParam param) base (param)
  • corps de la méthode
  • La méthode Main
  • public static int void Main(String args)
  • corps de la méthode

30
  • public class Parent
  • public void DoStuff(string str)
  • Console.WriteLine("In Parent.DoStuff ")
  •  
  • public class Child Parent
  • public void DoStuff(string str)
  • Console.WriteLine("In Child.DoStuff ")
  •  
  • public class VirtualTest
  • public static void Main(string args)
  • Child ch new Child()
  • ch.DoStuff("Test")
  • ((Parent) ch).DoStuff("Second Test")

31
  • Méthode m(), liste arguments A, une instance I
    dont type à la compilation est C et le type
    àlexécution est R (R C ou sous classe de C)
  • lors de lappel de méthode m() sur I
  • Recherche méthode dans C (peut être héritée)
  • Si la méthode de C non virtuelle, on lappelle
  • Si la méthode de C virtuelle, on recherche
    méthode de même signature la plus dérivée que R
    peut appeler

32
Principales instructions
  • if
  • while
  • do
  • for
  • switch
  • Foreach
  • foreach (typeObj identifiant in
    collectionObj) action

33
Types valeur et référence
  • Type référence
  • créé sur le tas (grâce à new)
  • libéré par le ramasse miettes
  • Type valeur
  • créé sur la pile
  • supprimé au retour dun appel de méthode
  • pas sous la responsabilité du ramasse miettes
  • Déclaration mot-clé struct (au lieu de classe)

34
III. Les plus de C
  • Structures
  • Le boxing/unboxing
  • Les properties
  • Les attributs
  • Les indexeurs
  • Les délégués
  • Pointeur et code non protégé unsafe code
  • Le versionning

35
Structs
  • Mot-clé struct
  • Objets de type valeur
  • Déclaration des mêmes types de membres quune
    classe possible
  • Pas dhéritage possible
  • Peut implémenter des interfaces
  • La visibilité par défaut protected

36
Le boxing / unboxing
  • Conversion type valeur lt-gt type référence
  • Boxing (type valeur -gt type référence)
  • une instance de type objet allouée et la valeur
    copiée dans cet objet
  • Unboxing (type référence -gt type valeur)
  • . Vérifie que le type de la valeur de linstance
    et le type du type valeur voulu correspondent
  • . sort la valeur de linstance
  • ex object box 123
  • int i (int)box

37
Les properties
  • extension des champs (objet.prop)
  • Ne définit pas demplacement mémoire
  • Définit des accesseurs décrivant instructions à
    exécuter
  • propriétés en lecture, écriture ou
    lecture/écriture
  • public class User
  • private string name
  • public string Name
  • set name value // ecriture

38
Les attributs
  • un moyen d'insérer des annotations (i.e
    méta-données)
  • Ex
  • Serializable Similaire à l'implémentation de
    l'interface java.io.Serializable de Java.
  • Peut créer ses propres attributs en sous-classant
    System.Attribute

39
  • AttributeUsage(AttributeTargets.All)
  • public class HelpAttribute Attribute
  • private string url
  • public HelpAttribute(string url) this.url
    url
  • Help("http//www.mycompany.com/.../Class1.htm")
  • public class Class1
  • public void F()
  • class Test
  • static void Main()
  • Type type typeof(Class1)
  • object arr
  • type.GetCustomAttributes(typeof(HelpAttr
    ibute), false)
  • HelpAttribute ha (HelpAttribute) arr0
  • Console.WriteLine("Url 0", ha.Url)

40
Les indexers
  • Permet à un objet dêtre indexé
  • Exemple peut accèder aux éléments dune pile
    sans dépiler les éléments
  • déclaration similaire à la déclaration dune
    property
  • différences
  • . nom de la propriété est this
  • . Paramêtre représentant lindexe
  • ex public object thisint index
  • get
  • set

41
Les délégués
  • proche des pointeurs de fonction en C ou C
  • Encapsule 1 methode ou plus callable entity
  • Pour methode dinstance, callable entity 1
    instance et la méthode à appliquer sur linstance
  • Pour methode statique, callable entity la
    methode
  • Lappel à la méthode appel au délégué auquel on
    fournit les bons paramêtres
  • Déclaration, instanciation, appel
  • delegate type void delegateName (type
    param)
  • delegateName d new delegateName (nomFonction)
  • D(param)

42
Unsafe code
  • déclare des pointeurs (noté type)
  • void pointeur vers un type inconnu
  • Du code unsafe doit être marqué avec le
    mot-clé unsafe
  • Pointeurs ne sont pas gérés par le GC
  • un pointeur peut être null
  • opérateurs
  • adresse dune variable
  • déréférencement
  • indexe un pointeur
  • , !, lt, gt, lt et gt pour comparer des pointeurs

43
Le versionning
  • possibilité d'exécuter plusieurs versions
    différentes d'une même classe
  • les programmes C référencent statiquement des
    bibliothèques de classes à l'aide de leur nom
    mais aussi de leur version
  • Une nouvelle version est
  • source compatible si du code qui en dépend doit
    être recompilé pour marcher
  • binary compatible si du code qui en dépend
    marche sans rien avoir à faire

44
Les alternatives
  • J2EE (JOnAS, JBoss)
  • Mono (Ximian)
  • Compilateur C
  • CLR
  • Bibliothéques
  • Très actif
  • DotGnu (FSF)
  • Remplaçant complet de .NET
  • Fonctionalités de HailStorm
  • Pas très actif

45
Microsoft .NET vs. J2EE
  • Offrent les mêmes fonctionnalités
  • Seule ? de .NET indépendant du langage
  • paradis pour dévelopeur
  • - enfer pour chef de projet
  • La barrière Java est vite franchie

46
Conclusion
  • Microsoft se vante de la portabilité et de
    louverture mais
  • Si app accède à des services natifs  pour la
    performance  alors réduit à une app Windows
  • Exemple WinForms
  • Peut faires des extensions propriètaires
  • cf J, HTML, WMP plug-in,

47
Références
  • http//arstechnica.com/paedia/n/net/net-1.html
  • http//www.osnews.com/topic.php?icon36
  • http//www-adele.imag.fr/donsez/cours/
  • http//microsoft.com/net
  • http//www.linuxdevices.com/files/misc/prasad-28oc
    t01.html

48
Références
  • http//www.dotnetguru.org/article.php?sid18
  • http//tutorials.beginners.co.uk/index/category/87
  • http//www.jaggersoft.com/csharp_standard/
  • http//www.go-mono.com/
  • http//dotgnu.org/
Write a Comment
User Comments (0)
About PowerShow.com