' Net - PowerPoint PPT Presentation

About This Presentation
Title:

' Net

Description:

Assemblages. Avantages des assemblages. Structure d'un assemblage. 9. ... Les assemblages sont pr vus pour tre portables. Un assemblage peut tre morcel en ... – PowerPoint PPT presentation

Number of Views:42
Avg rating:3.0/5.0
Slides: 70
Provided by: Lesl182
Category:
Tags: assemblage | net

less

Transcript and Presenter's Notes

Title: ' Net


1
. Net C
  • Chen Shan Liu Ying
  • Master 2 pro GI - SRR
  • 2003-2004

2
Plan
  • . NET
  • Introduction
  • Historique
  • .NET Framework
  • C
  • .NET Remoting

3
Quest ce que .Net?
  • Une technologie prônée par Microsoft
  • Une nouvelle plate-forme de développement
    logiciel
  • Une version sur les architectures distribuées
  • Un ensemble de spécifications
  • Des nouveaux langages(C, )
  • Le langage CIL(Commom Intermediate Langage)

4
Historique
  • Des 1998, Microsoft veut développer un nouveau
    produit pour résoudre les pbs de COM
  • Le 13 février 2002 la première version
    exploitable de .NET est publiée
  • En mars 2003, la version 1.1 du Framework .NET
    est disponible
  • Fournisseurs de base de données(Oracle et ODBC)
  • La sécurité
  • XML/XSLT

5
.NET Framework
  • Introduction
  • Assemblage
  • Avantage
  • Structure
  • CLR
  • Définition
  • Rôle
  • Bibliothèque de classes de base

6
Vue générale de .Net
CLS ( Common Langage Specification) C , VB.NET
Outils
Infrastructure pour le développement
dapplication distribuées (COM, .NET Remoting,
ASP.NET)
Bibliothèque de classes de base ( ADO.NET, Forms,
XML )
Implémentation du CLI (Commom Langage
Infrastructure) CLR (Common Langage Runtime)
7
Type dapplications
  • Interface utilisateur Windows (Windows form)
  • Application en mode console Windows
  • Service Windows
  • Service web
  • Application web

8
Assemblages
  • Avantages des assemblages
  • Structure dun assemblage

9
Avantages des assemblages
  • Lenfer des DLLs résolu
  • La base des registres nest plus sollicitée
  • Les assemblages sont infalsifiables
  • Les assemblages sont prévus pour être portables
  • Un assemblage peut être morcelé en plusieurs
    fichiers

10
Structure dun assemblage
  • Représentation physique dun assemblage

Assemblage
Foo2.netmodule
Foo1.exe
Image.jpg
Manifeste Ref ver Foo2 Ref ver Image.jpg
Métadonnées de type
Code CIL des méthodes des types
méthodes des types
Code IL des méthodes des types
Ressources (image, sons )
11
CLR
  • Common Langage Runtime
  • Le moteur dexécution des applications .NET
  • Actions
  • Compilation à lexécution du code CIL
  • Gestion des exceptions
  • Gestion des domaines dapplications

12
Compilation à lexécution du code CIL
Assemblage
Compilation JIT Langage source
------------------gtcode CIL ----------------------
----gtlangage machine
  • JIT Just In Time
  • Compiler le méthode juste avant le premier appel
  • Avantages
  • Compiler quune fois le code source de haut
    niveau
  • Distribuée sous forme dassemblages
  • Exécutable sur différents machines et différents
    OS

13
Compilation à lexécution du code CIL
  • 2 types de compilateurs
  • Compilateur normal
  • Effectuer nombre doptimisations
  • Mais gourmand en mémoire et en temps machine
  • Compilateur économe
  • Remplacer CIL par langage machine équivalent
  • ngen.exe(Native Image Generator)

14
Gestion des exceptions
  • Chercher le gestionnaire dexception
  • Si ne pas trouvé, terminer le programme
  • Sérialiser et propager lexception
  • Parfois rattraper une exception

15
Gestion des domaines dapplication
  • un domaine dapplication
  • conteneur logique dassemblage(s)
  • Assemblages chargés par CLR
  • Décharger un domaine dapplication tout entier
  • Garantir lisolation des domaines dapplications

16
Bibliothèque de classes de base
  • Environ 1400 classes
  • Namespace ensemble de classes
  • La racine des namespaces System
  • les types basiques comme Byte, Boolean, Object
  • Les application graphiques (Windows Forms)
  • System.Windows.Forms
  • ADO.NET et XML

17
Les conceptions nouveaux
  • La gestion du code durant lexécution
  • Indépendance du OS et du matériel sous-jacent
  • Introduction dune entité plus léger que
    processus
  • Interaction entre un grand nombre de langages

18
Le langage Cplan
  • Introduction
  • Types
  • Structure dun programme
  • Membres
  • Instructions
  • Notations complémentaires

19
Introduction C
  • Nouveau langage créé pour .NET
  • Hérite de C (Espace de nomNamespace, pointeur
    unsagecode, unsigned types)
  • Ressemble à Java
  • Concepts clés
  • Composants orientés
  • Tout est objet
  • Utilise les classes du framework .NET
  • Exemple Hello World

object
Stream
Hashtable
int
double
MemoryStream
FileStream
using System class HelloWorld static void
Main( ) Console.WriteLine("Hello
world") Console.ReadLine() // Hit enter to
finish csc HelloWorld.cs HelloWorld.exe
20
IntroductionModèle dexécution
MSIL
compilation
Code C
Assemblage
JIT
Code natif
Runtime du système
.NET CLR
Code Natif
Code Natif
Code Natif
Code Natif
21
Types
  • Un programme C est une collection de type
  • Classes,interfaces,structures,délégués,énumération
    s
  • C fournis un ensemble de types prédéfinis
  • i.e. int, byte, char,string, object,
  • Les types sont
  • Des données membres
  • Des fonctions membres
  • Dautres types
  • Il y a 2 catégories de typesvaleur et référence

Champs, constantes, tableaux, évènements
Méthodes, opérateurs, constructeurs, propriétés,
indexeurs
22
Types
int i 123 string s "Hello world"
  • Type Valeur
  • Contient des données
  • Ne peut être null
  • Primitives int i
    float x
  • Enumérations enum State
    Off, On
  • Structures struct
    Point int x, y
  • Type référence
  • Contient des références
  • vers des objets
  • Peut être null
  • Racine object
  • Chaîne string
  • Classes class Foo
    Bar, IFoo
  • Interfaces interface
    IFoo IBar
  • Tableau string a
    new string 10
  • Delegates delegate
    void Empty()

23
Types
  • Bénéfice des types valeurs
  • Pas dallocation dans le tas, moins de travail
    pour le GC
  • Meilleur utilisation de la mémoire
  • Moins de référence indirecte

24
Types
  • Types définis par lutilisateur

25
TypesEnums
  • Enums
  • Grouper certaines constantes de même catégorie.
  • Dérive de System.Enum
  • C
  • public enum Color red, green, black, blue
  • public void setColor(Color color)
  • if (Enum.IsDefined(typeof(Color), color)
  • Java
  • public void setColor(int color)
  • if (color ! RED color ! GREEN
  • color ! BLACK color!BLUE)

26
TypesInterfaces
  • Une interface définie un contrat
  • Elle contient méthodes, propriétés, indexeurs,
    évènements
  • Chaque classe or structure implémentant une
    interface doit supporter toute les parties du
    contrat
  • Les interfaces permettent le polymorphisme
  • Plusieurs classes et structures peuvent
    implémenter la même interface
  • Une interface ne contient pas dimplémentation
  • Elle doit être implémentée par une classe ou une
    structure

27
TypesClasses
public class JvnServerImpl MarshalByRefObject,
IJvnLocalServer, IJvnRemoteServer
//class jvnServerImpl
  • Type référence défini par lutilisateur
  • Similaire aux classes C ou Java
  • Héritage simple sur la classe
  • Peuvent implémenter de multiples interfaces
  • Contrôle daccès
  • public, private, internal, protected, protected
    internal
  • Le mode par défaut est private
  • Membres
  • Constantes, champ (fields), méthodes, opérateurs
    (constructeurs et destructeurs)
  • Propriétés, indexeurs, évènements
  • Membres par classe (static) ou par instance
  • Instantancié par lopérateur new

28
TypesStruct
  • Similaire aux classes, mais
  • Type valeur défini par lutilisateur
  • Hérite toujours dobjet
  • Ideal pour des objets légers
  • int, float, double, etc., sont des structures
  • Permet la définition de type primitifs par
    lutilisateur
  • Complex, point, rectangle, color, rational
  • Héritage multiple des interfaces
  • Même membres que les classes
  • Contrôle daccès
  • public, internal, private
  • Instancié par lopérateur new

29
TypesDelegates
  • Un délégué (delegate) est un type référence qui
    défini la signature dune méthode
  • Quand il est instancié, un délégué peut faire
    référence à une ou plusieurs méthodes
  • De manière intuitive un pointeur sur une
    fonction dans le modèle objet
  • Sert de base pour la gestion des évènements

30
Structure dun programme Organisation des types
  • Organisation physique
  • Les types sont définis dans des fichiers
  • Les fichiers sont compilés en modules
  • Les modules sont regroupés en assemblage

31
Structure dun programmeAssembly
  • Désigner un ensemble de code/sources
  • Comporte 3 parties
  • Un manifest
  • Des classes
  • Des meta-données

32
Structure dun programme Espaces de noms
  • Un nom de type doit être unique au sein dun
    espace de nom (Namespace)
  • Permet lorganisation logique des types
  • Il ny a pas de relation entre les espaces de
    noms et les fichiers (différence avec Java)

33
Structure dun programme Espaces de noms
Exemple
  • Java
  • pakage Jvn
  • public class JvnServerImpl
  • C
  • namespace Irc
  • namespace Jvn
  • //namespace Jvn
  • //namespace Irc

34
Structure dun programmeLimport de bibliothèques
  • Java (JvnServerImpl.java)
  • pakage Jvn
  • import java.rmi.
  • public class JvnServerImpl
  • javac classpath XX.class
  • JvnServerImpl.java
  • Variable denvironnement CLASSPATH
  • C(JvnServerImpl.cs)
  • namespace Jvn
  • using System
  • using System.Runtime.Remoting
  • public class JvnServerImpl
  • csc \rSystem.dll JvnServerImpl.cs

35
Structure dun programmeMéthode Main
  • Lexécution dun programme démarre à la méthode
    statique Main()
  • Une seule méthode avec une de ces signatures par
    assemblage
  • static void Main()
  • static int Main()
  • static void Main(string args)
  • static int Main(string args)

36
MembresPlan
  • Constantes
  • Champ (fields)
  • Opérateurs (constructeurs et destructeurs)
  • Propriétés
  • Indexeurs
  • évènements

37
MembresOpérateur Constructeur
  • Implémenter les actions nécessaires à
    linitialisation dune instance de la classe
  • Le même nom que la classe
  • Ne retourne aucun paramètre

Java public class JvnServerImpl private
JvnServerImpl super()
C public class JvnServerImpl private
JvnServerImpl()base()
38
MembresOpérateur Destructeur
  • Implémenter les actions nécessaire pour détruire
    une instance de la classe
  • Le même nom que la classe, précédé du caractère
  • Ne peut pas être appelé directement

public class JvnServerImpl private
JvnServerImpl()
39
MembresPropriétés
  • Une propriété est un champ virtuel
  • Ressemble à un champ, mais est implémenté par du
    code
  • Peut être read-only, write-only ou read/write
  • Java
  • public class JvnCoordImpl
  • private int identification
  • public int getId()
  • return identification
  • public void setId(int id)
  • this.id id
  • JvnCoordImpl coord new JvnCoordImpl()
  • int id coord.getId()
  • coord.setId(id 1)
  • C
  • public class JvnCoordImpl
  • private int identification
  • public int Identification
  • get return identification
  • set identification value
  • JvnCoordImpl coord new JvnCoordImpl()
  • int id coord.Identification //get
  • coord.Identification id 1 //set
  • coord.Identifecation 1 //get / set

40
MembresIndexeurs
  • Un indexeur permet à une instance dêtre un
    tableau virtuel
  • Peut être surchargé (i.e. indexé par int et par
    string)
  • Peut être read-only, write-only ou read/write

public class ListBox Control private
string items public string thisint index
get return itemsindex set
itemsindex value
ListBox listBox new ListBox() listBox0
"hello" Console.WriteLine(listBox0)
41
MembresEvènements
  • C supporte les évènements
  • Basé sur la notion de délégué
  • Lémetteur de lévénement, défini le délégué
  • Les clients de lévènement enregistrent le
    traitement à associer à lévènement
  • Appel de et de - sur les délégués
  • Il ne peuvent pas créer les évènements
  • Les délégués multicast permettent à plusieurs
    objets de senregistrer pour le même évènement

42
MembresEvènements
  • Exemple
  • C
  • class Irc
  • Button read_button new Button()
  • read_button.Text read)
  • read_button .Click new
  • System.EventHandler(this.read_Click
    )
  • private void read_Click(object serder, EventArgs
    e)
  • Java
  • public class Irc
  • Button read_button new Button(read)
  • read_button.addActionListener
  • (new readListener(this))
  • class readListener implements ActionListener
  • public void actionPerformed (ActionEvent e)

43
Instructions Survol
  • Expressions
  • checked, unchecked
  • lock
  • using
  • Conditionnels
  • if
  • Switch
  • Boucles
  • while
  • do
  • for
  • foreach
  • Sauts
  • break
  • continue
  • goto
  • return
  • throw
  • Exceptions

44
InstructionsThreads synchronisation
  • Lock
  • Exclusion mutuelle
  • Mis en oeuvre à laide de la classe
    System.Threading.Monitor(Wait(),PulseAll(),Pulse()
    )

public class CheckingAccount decimal
balance public void Deposit(decimal amount)
lock (this) balance amount
public void Withdraw(decimal amount) lock
(this) balance - amount
45
Instructions checked et unchecked
  • Les instructions checked et unchecked permettent
    de contrôler le débordement dans les expressions
    arithmétique et les affectations
  • checked force le contrôle
  • unchecked supprime le contrôle
  • Le mode par défaut est unchecked
  • Lutilisation de la directive /checked du
    compilateur permet dutiliser le mode checked par
    défaut

46
Instructions checked et unchecked
  • using System
  •  
  • class CheckedTest
  • public static void Main()
  • int num 5000
  • / OVERFLOW I /
  • byte a (byte) num / overflow detected only
    if /checked compiler option on /
  • / OVERFLOW II /
  • checked
  • byte b (byte) num / overflow ALWAYS
    detected /
  • / OVERFLOW III /
  • unchecked
  • byte c (byte) num / overflow NEVER
    detected /

47
Instructions Exceptions
  • C
  • public static JvnServerImpl JvnGetServer()
  • try
  • catch
  • finally
  • Java
  • public static JvnServerImpl JvnGetServer()
  • throws RemoteException
  • try
  • catch
  • finally

48
Notions complémentaires
  • Classes et structures
  • Boxing et unboxing
  • Attributs
  • Commentaires en XML

49
Classes et StructuresDifférences
50
Classes et StructuresSimilarités
  • Chacune
  • Est un type défini par lutilisateur
  • Peut implémenter plusieurs interfaces
  • Peut contenir
  • Données
  • Champs, constantes, événements, tableaux
  • Fonctions
  • Méthodes, propriétés, indexeurs, opérateurs,
    constructeurs
  • Définition de types
  • Classes, structures, énumérations, interfaces,
    délégués

51
Classes et StructuresExemple
  • struct SPoint int x, y ...
  • class CPoint int x, y ...
  • SPoint sp new SPoint(10, 20)
  • CPoint cp new CPoint(10, 20)

52
Boxing et unboxing
  • Boxing type primitif(valeur) -gt
    object(référence)
  • UnBoxingOpération inverse du boxing

123
i
int i 123 object o i int j (int)o
System.Int32
o
123
123
j
53
Les attributs
  • Un moyen dinsérer des annotations(i.e
    méta-données)
  • Un moyen de fournir des informations au runtime
    dans le but dexécuter des tâches additionnelles
    ou détendre les caractéristiques dun type
    donné.
  • Exemple
  • MethodImpl(MethodImplOptions.Synchronized)
    Similaire au mot-clé synchronized de Java.
  • Serializable Similaire à l'implémentation de
    l'interface java.io.Serializable de Java.
  • Peut créer ses propres attributs de Runtime en
    sous-classant System.Attribute

54
Commentaires en XML
  • C donne la possibilité de produire de la
    documentation en lien avec le code compilé
  • C permet décrire ces commentaires en XML
  • Début du commentaire ///
  • Un document XML est généré lors de la compilation
    du code avec largument /doc

55
.NET Remotingplan
  • Introduction
  • Base du .NET Remoting
  • Marshalling
  • Client activated
  • Server activated
  • Configuration

56
.NET RemotingIntroduction
  • Infrastructure de larchitecture .NET
  • Motivation Invocation des méthodes sur des
    objets distants
  • Ressemble à Java RMI

57
.NET Remoting Base du .NET Remoting
  • Terminologie - Architecture
  • Channels
  • Deux Transports standard- http// ou tcp//
  • Http// - fonctionne avec les firewalls
  • Tcp// - high speed, format binaire
  • Formatters
  • Transformer les Messages en Stream
  • Binaire
  • Soap 1.1 Compliant
  • Personnalisé

58
.NET Remoting Marshalling
  • Marshall by Reference
  • Dérive de System.MarshalByRefObject
  • Accessible via des Proxy
  • Lobjet reste sur le serveur
  • Marshall by Value
  • Les objets sont sérialisés
  • Attribute Serializable
  • Implement ISerializable
  • Lobjet est recopié vers le client

59
.NET Remoting Client Activated
  • Créé par le Client
  • Le Client contrôle
  • la durée de vie
  • Lease bail

60
.NET Remoting Server Activated
  • Le serveur est responsable de la durée de vie de
    lobjet
  • Configuration
  • ltwellknown
  • modeSingleCall ou Singleton
  • typetype,assembly
  • objectUrimyobject /gt
  • Programmation
  • Créer un Type Wellknown
  • Enregistrer sur le serveur

61
.NET Remoting Configuration par fichier
  • Fichier de configuration
  • ltconfigurationgt
  • ltSystem.Runtime.Remotinggt
  • ltapplicationgt
  • ltservicegt
  • ltwellknown modeSingleton
    typeNamespace.Class,Assembly
    objectUriURI/gt
  • lt/servicegt
  • Méthode RemotingConfiguration.Configure(config
    file)
  • La Méthode fonctionne coté serveur et coté client

62
.NET Remoting Configuration Dynamique
  • Cache les informations de configuration aux
    utilisateurs
  • Facile a déployer
  • Nécessite une recompilation à chaque modification
    du paramétrage

63
.NET Remotingobjet distribué
  • public class ServiceClass MarshalByRefObject
  • private DateTime starttime
  • public ServiceClass()
  • Console.WriteLine("A ServiceClass has been
    created.")
  • starttime DateTime.Now
  • ServiceClass()
  • Console.WriteLine("This object is being
    collected after " (new TimeSpan(DateTime.Now.Tic
    ks - starttime.Ticks)).ToString() " seconds.")
  • public DateTime GetServerTime()
  • Console.WriteLine("Time requested by a
    client.")
  • return DateTime.Now

64
.NET RemotingCoté serveur
  • using System
  • using System.Diagnostics
  • using System.Runtime.Remoting
  • using System.Runtime.Remoting.Channels
  • using System.Runtime.Remoting.Channels.Tcp
  • public class ServerProcess
  • public static void Main(string Args)
  • RemotingConfiguration.Configure("server.exe.conf
    ig")
  • Console.WriteLine("Press enter to stop this
    process.")
  • Console.ReadLine()

65
.NET RemotingCoté client
  • using System
  • using System.Runtime.Remoting
  • public class Client
  • public static void Main(string Args)
  • RemotingConfiguration.Configure("Client.exe.conf
    ig")
  • ServiceClass service new ServiceClass()
  • Console.WriteLine(service.GetServerTime())

66
.NET Remotingconfiguration de serveur
  • ltconfigurationgt
  • ltsystem.runtime.remotinggt
  • ltapplicationgt
  • ltservicegt
  • ltwellknown mode"SingleCall"
  • type"ServiceClass, ServiceClass"
  • objectUri"RemoteObject"
  • /gt
  • lt/servicegt
  • ltchannelsgt
  • ltchannel port"8080" ref"http" /gt
  • lt/channelsgt
  • lt/applicationgt
  • lt/system.runtime.remotinggt
  • lt/configurationgt

67
.NET Remotingconfiguration de client
  • ltconfigurationgt
  • ltsystem.runtime.remotinggt
  • ltapplicationgt
  • ltclientgt
  • ltwellknown
  • type"ServiceClass, ServiceClass"
  • url"http//localhost8080/RemoteObjec
    t"
  • /gt
  • lt/clientgt
  • ltchannelsgt
  • ltchannel ref"http"gt
  • ltclientProvidersgt
  • ltformatter ref"soap"/gt
  • ltprovider ref"propsetter"
    username"bob" writeToConsole"true"gt
  • domain"hello" /gt
  • lt/providergt
  • lt/clientProvidersgt

Declaration dun point de terminaison de type
singleton
Canal associé avec application
Encodeur de format associé avec un canal
68
.NET RemotingDemo
  • Exemple
  • Server
  • Client

69
Quelques ressources
  • http//msdn.microsoft.com
  • http//windows.oreilly.com/news/hejlsberg_0800.htm
    l
  • http//www.csharphelp.com/
  • http//www.csharp-station.com/
  • http//www.csharpindex.com/
  • http//msdn.microsoft.com/msdnmag/ issues/0900/
    csharp/csharp.asp
  • http//www.hitmill.com/programming/dotNET/csharp.h
    tml
  • http//www.c-sharpcorner.com/
  • http//msdn.microsoft.com/library/ default.asp?
    URL/library/dotnet/ csspec/vclrfcsharpspec_Sta
    rt.htm
Write a Comment
User Comments (0)
About PowerShow.com