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

. Net & C# Chen Shan & Liu Ying Master 2 pro GI - SRR 2003-2004.

Présentations similaires


Présentation au sujet: ". Net & C# Chen Shan & Liu Ying Master 2 pro GI - SRR 2003-2004."— Transcription de la présentation:

1 . Net & C# Chen Shan & Liu Ying Master 2 pro GI - SRR

2 2. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Plan. NET. NET Introduction Introduction Historique Historique.NET Framework.NET Framework C# C#.NET Remoting.NET Remoting

3 3. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Quest ce que.Net? Une technologie prônée par Microsoft Une technologie prônée par Microsoft Une nouvelle plate-forme de développement logiciel Une nouvelle plate-forme de développement logiciel Une version sur les architectures distribuées Une version sur les architectures distribuées Un ensemble de spécifications Un ensemble de spécifications Des nouveaux langages(C#, …) Des nouveaux langages(C#, …) Le langage CIL(Commom Intermediate Langage) Le langage CIL(Commom Intermediate Langage) …

4 4. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Historique Des 1998, Microsoft veut développer un nouveau produit pour résoudre les pbs de COM 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 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 En mars 2003, la version 1.1 du Framework.NET est disponible Fournisseurs de base de données(Oracle et ODBC) Fournisseurs de base de données(Oracle et ODBC) La sécurité La sécurité XML/XSLT XML/XSLT …

5 5. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying.NET Framework Introduction Introduction Assemblage Assemblage Avantage Avantage Structure Structure CLR CLR Définition Définition Rôle Rôle Bibliothèque de classes de base

6 6. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Vue générale de.Net CLS ( Common Langage Specification) C #, VB.NET… Bibliothèque de classes de base ( ADO.NET, Forms, XML …) Implémentation du CLI (Commom Langage Infrastructure) CLR (Common Langage Runtime) Outils Infrastructure pour le développement dapplication distribuées (COM+,.NET Remoting, ASP.NET)

7 7. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Type dapplications Interface utilisateur Windows (Windows form) Interface utilisateur Windows (Windows form) Application en mode console Windows Application en mode console Windows Service Windows Service Windows Service web Service web Application web Application web

8 8. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Assemblages Avantages des assemblages Avantages des assemblages Structure dun assemblage Structure dun assemblage

9 9. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Avantages des assemblages Lenfer des DLLs résolu Lenfer des DLLs résolu La base des registres nest plus sollicitée La base des registres nest plus sollicitée Les assemblages sont infalsifiables Les assemblages sont infalsifiables Les assemblages sont prévus pour être portables Les assemblages sont prévus pour être portables Un assemblage peut être morcelé en plusieurs fichiers Un assemblage peut être morcelé en plusieurs fichiers

10 10. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Structure dun assemblage Représentation physique dun assemblage Assemblage Foo2.netmodule Métadonnées de type Code CIL des méthodes des types Ressources (image, sons …) Foo1.exe Image.jpg Manifeste Ref ver Foo2 Ref ver Image.jpg méthodes des types Code IL des méthodes des types

11 11. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying CLR Common Langage Runtime Common Langage Runtime Le moteur dexécution des applications.NET Le moteur dexécution des applications.NET Actions: Actions: Compilation à lexécution du code CIL Compilation à lexécution du code CIL Gestion des exceptions Gestion des exceptions Gestion des domaines dapplications Gestion des domaines dapplications

12 12. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Compilation à lexécution du code CIL JIT – Just In Time JIT – Just In Time Compiler le méthode juste avant le premier appel Compiler le méthode juste avant le premier appel Avantages Avantages Compiler quune fois le code source de haut niveau Compiler quune fois le code source de haut niveau Distribuée sous forme dassemblages Distribuée sous forme dassemblages Exécutable sur différents machines et différents OS Exécutable sur différents machines et différents OS Assemblage Compilation JIT Langage source >code CIL >langage machine

13 13. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Compilation à lexécution du code CIL 2 types de compilateurs 2 types de compilateurs Compilateur normal Compilateur normal Effectuer nombre doptimisations Effectuer nombre doptimisations Mais gourmand en mémoire et en temps machine Mais gourmand en mémoire et en temps machine Compilateur économe Compilateur économe Remplacer CIL par langage machine équivalent Remplacer CIL par langage machine équivalent ngen.exe(Native Image Generator) ngen.exe(Native Image Generator)

14 14. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Gestion des exceptions Chercher le gestionnaire dexception Chercher le gestionnaire dexception Si ne pas trouvé, terminer le programme Si ne pas trouvé, terminer le programme Sérialiser et propager lexception Sérialiser et propager lexception Parfois rattraper une exception Parfois rattraper une exception

15 15. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Gestion des domaines dapplication un domaine dapplication un domaine dapplication conteneur logique dassemblage(s) conteneur logique dassemblage(s) Assemblages chargés par CLR Assemblages chargés par CLR Décharger un domaine dapplication tout entier Décharger un domaine dapplication tout entier Garantir lisolation des domaines dapplications Garantir lisolation des domaines dapplications

16 16. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Bibliothèque de classes de base Environ 1400 classes Environ 1400 classes Namespace : ensemble de classes Namespace : ensemble de classes La racine des namespaces : System La racine des namespaces : System les types basiques comme Byte, Boolean, Object … les types basiques comme Byte, Boolean, Object … Les application graphiques (Windows Forms) Les application graphiques (Windows Forms) System.Windows.Forms System.Windows.Forms ADO.NET et XML ADO.NET et XML

17 17. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Les conceptions nouveaux La gestion du code durant lexécution La gestion du code durant lexécution Indépendance du OS et du matériel sous-jacent Indépendance du OS et du matériel sous-jacent Introduction dune entité plus léger que processus Introduction dune entité plus léger que processus Interaction entre un grand nombre de langages Interaction entre un grand nombre de langages …

18 18. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Le langage C# plan Introduction Introduction Types Types Structure dun programme Structure dun programme Membres Membres Instructions Instructions Notations complémentaires Notations complémentaires

19 19. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Introduction C# Nouveau langage créé pour.NET Nouveau langage créé pour.NET Hérite de C++ (Espace de nom:Namespace, pointeur: unsagecode, unsigned types) Hérite de C++ (Espace de nom:Namespace, pointeur: unsagecode, unsigned types) Ressemble à Java Ressemble à Java Concepts clés : Concepts clés : Composants orientés Composants orientés Tout est objet Tout est objet Utilise les classes du framework.NET Utilise les classes du framework.NET Exemple: Hello World Exemple: Hello World using System; class HelloWorld { static void Main( ) { Console.WriteLine("Hello world"); Console.ReadLine(); // Hit enter to finish } csc HelloWorld.cs HelloWorld.exe MemoryStreamFileStream StreamHashtableintdouble object

20 20. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Introduction Modèle dexécution Code C# compilation Assemblage JIT Code natif Runtime du système.NET CLR Code Natif Code Natif Code Natif Code Natif MSIL

21 21. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Types Un programme C# est une collection de type Un programme C# est une collection de type Classes,interfaces,structures,délégués,énumérations Classes,interfaces,structures,délégués,énumérations C# fournis un ensemble de types prédéfinis C# fournis un ensemble de types prédéfinis i.e. int, byte, char,string, object,… i.e. int, byte, char,string, object,… Les types sont Les types sont Des données membres Des données membres Des fonctions membres Des fonctions membres Dautres types Dautres types Il y a 2 catégories de types:valeur et référence Il y a 2 catégories de types:valeur et référence Champs, constantes, tableaux, évènements Méthodes, opérateurs, constructeurs, propriétés, indexeurs

22 22. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Types Type Valeur Type Valeur Contient des données Contient des données Ne peut être null Ne peut être null Primitives int i ; float x; Primitives int i ; float x; Enumérations enum State { Off, On } Enumérations enum State { Off, On } Structures struct Point {int x, y; } Structures struct Point {int x, y; } Type référence Type référence Contient des références Contient des références vers des objets Peut être null Peut être null Racine object Racine object Chaîne string Chaîne string Classes class Foo: Bar, IFoo {… } Classes class Foo: Bar, IFoo {… } Interfaces interface IFoo: IBar {… } Interfaces interface IFoo: IBar {… } Tableau string[] a = new string [10] Tableau string[] a = new string [10] Delegates delegate void Empty(); Delegates delegate void Empty(); int i = 123; string s = "Hello world"; 123 i s "Hello world"

23 23. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Types Bénéfice des types valeurs Bénéfice des types valeurs Pas dallocation dans le tas, moins de travail pour le GC Pas dallocation dans le tas, moins de travail pour le GC Meilleur utilisation de la mémoire Meilleur utilisation de la mémoire Moins de référence indirecte Moins de référence indirecte

24 24. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Types Types définis par lutilisateur Types définis par lutilisateur Enumerationsenum Arrays int[], string[] Interfaceinterface Type référence class Type valeur struct Pointeur de fonction delegate

25 25. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Types Enums Enums Enums Grouper certaines constantes de même catégorie. Grouper certaines constantes de même catégorie. Dérive de System.Enum 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 26. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Types Interfaces Une interface définie un contrat Une interface définie un contrat Elle contient méthodes, propriétés, indexeurs, évènements 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 Chaque classe or structure implémentant une interface doit supporter toute les parties du contrat Les interfaces permettent le polymorphisme Les interfaces permettent le polymorphisme Plusieurs classes et structures peuvent implémenter la même interface Plusieurs classes et structures peuvent implémenter la même interface Une interface ne contient pas dimplémentation Une interface ne contient pas dimplémentation Elle doit être implémentée par une classe ou une structure Elle doit être implémentée par une classe ou une structure

27 27. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Types Classes Type référence défini par lutilisateur Type référence défini par lutilisateur Similaire aux classes C++ ou Java Similaire aux classes C++ ou Java Héritage simple sur la classe Héritage simple sur la classe Peuvent implémenter de multiples interfaces Peuvent implémenter de multiples interfaces Contrôle daccès Contrôle daccès public, private, internal, protected, protected internal public, private, internal, protected, protected internal Le mode par défaut est private Le mode par défaut est private Membres Membres Constantes, champ (fields), méthodes, opérateurs (constructeurs et destructeurs) Constantes, champ (fields), méthodes, opérateurs (constructeurs et destructeurs) Propriétés, indexeurs, évènements Propriétés, indexeurs, évènements Membres par classe (static) ou par instance Membres par classe (static) ou par instance Instantancié par lopérateur new Instantancié par lopérateur new public class JvnServerImpl: MarshalByRefObject, MarshalByRefObject, IJvnLocalServer, IJvnLocalServer, IJvnRemoteServer { IJvnRemoteServer { … }//class jvnServerImpl

28 28. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Types Struct Similaire aux classes, mais Similaire aux classes, mais Type valeur défini par lutilisateur Type valeur défini par lutilisateur Hérite toujours dobjet Hérite toujours dobjet Ideal pour des objets légers Ideal pour des objets légers int, float, double, etc., sont des structures int, float, double, etc., sont des structures Permet la définition de type primitifs par lutilisateur Permet la définition de type primitifs par lutilisateur Complex, point, rectangle, color, rational Complex, point, rectangle, color, rational Héritage multiple des interfaces Héritage multiple des interfaces Même membres que les classes Même membres que les classes Contrôle daccès Contrôle daccès public, internal, private public, internal, private Instancié par lopérateur new Instancié par lopérateur new

29 29. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Types Delegates Un délégué (delegate) est un type référence qui défini la signature dune méthode 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 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 De manière intuitive : un pointeur sur une fonction dans le modèle objet Sert de base pour la gestion des évènements Sert de base pour la gestion des évènements

30 30. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Structure dun programme Organisation des types Organisation physique Organisation physique Les types sont définis dans des fichiers Les types sont définis dans des fichiers Les fichiers sont compilés en modules Les fichiers sont compilés en modules Les modules sont regroupés en assemblage Les modules sont regroupés en assemblage Assembly Module(.dll/.exe) File Type

31 31. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Structure dun programme Assembly Désigner un ensemble de code/sources Désigner un ensemble de code/sources Comporte 3 parties: Comporte 3 parties: Un manifest Un manifest Des classes Des classes Des meta-données Des meta-données

32 32. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Structure dun programme Espaces de noms Un nom de type doit être unique au sein dun espace de nom (Namespace) Un nom de type doit être unique au sein dun espace de nom (Namespace) Permet lorganisation logique des types Permet lorganisation logique des types Il ny a pas de relation entre les espaces de noms et les fichiers (différence avec Java) Il ny a pas de relation entre les espaces de noms et les fichiers (différence avec Java)

33 33. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Structure dun programme Espaces de noms Java Java pakage Jvn; public class JvnServerImpl{ …} C# C# namespace Irc { … namespace Jvn { … } //namespace Jvn }//namespace Irc Exemple

34 34. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Structure dun programme Limport de bibliothèques Java (JvnServerImpl.java) Java (JvnServerImpl.java) pakage Jvn; import java.rmi.*; public class JvnServerImpl { …} javac –classpath XX.class javac –classpath XX.classJvnServerImpl.java Variable denvironnement CLASSPATH Variable denvironnement CLASSPATH C#( JvnServerImpl.cs) C#( JvnServerImpl.cs) namespace Jvn { using System; using System.Runtime.Remoting; public class JvnServerImpl { …}} csc \r:System.dll JvnServerImpl.cs

35 35. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Structure dun programme Méthode Main Lexécution dun programme démarre à la méthode statique Main() Lexécution dun programme démarre à la méthode statique Main() Une seule méthode avec une de ces signatures par assemblage Une seule méthode avec une de ces signatures par assemblage static void Main() static void Main() static int Main() static int Main() static void Main(string[] args) static void Main(string[] args) static int Main(string[] args) static int Main(string[] args)

36 36. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Membres Plan Constantes Constantes Champ (fields) Champ (fields) Opérateurs (constructeurs et destructeurs) Opérateurs (constructeurs et destructeurs) Propriétés Propriétés Indexeurs Indexeurs évènements évènements

37 37. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Membres Opérateur: Constructeur Implémenter les actions nécessaires à linitialisation dune instance de la classe Implémenter les actions nécessaires à linitialisation dune instance de la classe Le même nom que la classe Le même nom que la classe Ne retourne aucun paramètre Ne retourne aucun paramètre C# public class JvnServerImpl { … private JvnServerImpl():base() { private JvnServerImpl():base() { … } …} Java public class JvnServerImpl { … private JvnServerImpl { private JvnServerImpl { super(); super(); … } …}

38 38. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Membres Opérateur: Destructeur Implémenter les actions nécessaire pour détruire une instance de la classe 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 ~ Le même nom que la classe, précédé du caractère ~ Ne peut pas être appelé directement Ne peut pas être appelé directement public class JvnServerImpl { … private ~JvnServerImpl() { private ~JvnServerImpl() { … } …}

39 39. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Membres Propriétés C# 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 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); 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

40 40. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Membres Indexeurs Un indexeur permet à une instance dêtre un tableau virtuel Un indexeur permet à une instance dêtre un tableau virtuel Peut être surchargé (i.e. indexé par int et par string ) Peut être surchargé (i.e. indexé par int et par string ) Peut être read-only, write-only ou read/write Peut être read-only, write-only ou read/write public class ListBox: Control { private string[] items; public string this[int index] { get { return items[index]; } set { items[index] = value;} } ListBox listBox = new ListBox(); listBox[0] = "hello"; Console.WriteLine(listBox[0]);

41 41. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Membres Evènements C# supporte les évènements C# supporte les évènements Basé sur la notion de délégué Basé sur la notion de délégué Lémetteur de lévénement, défini le 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 Les clients de lévènement enregistrent le traitement à associer à lévènement Appel de += et de -= sur les délégués Appel de += et de -= sur les délégués Il ne peuvent pas créer les évènements 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 Les délégués multicast permettent à plusieurs objets de senregistrer pour le même évènement

42 42. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Membres Evènements C# C# class Irc {… Button read_button = new Button(); read_button.Text = read); read_button.Click += new System.EventHandler(this.read_Click); System.EventHandler(this.read_Click);… private void read_Click(object serder, EventArgs e) {…}…} Java 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) { … } Exemple

43 43. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Instructions Survol Expressions Expressions checked, unchecked checked, unchecked lock lock using using Conditionnels Conditionnels if if Switch Switch Boucles Boucles while while do do for for foreach foreach Sauts Sauts break break continue continue goto goto return return throw throw Exceptions Exceptions try try throw throw

44 44. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Instructions Threads: synchronisation Lock Lock Exclusion mutuelle Exclusion mutuelle Mis en oeuvre à laide de la classe System.Threading.Monitor(Wait(),PulseAll(), Pulse()) 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 45. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Instructions checked et unchecked Les instructions checked et unchecked permettent de contrôler le débordement dans les expressions arithmétique et les affectations 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 checked force le contrôle unchecked supprime le contrôle unchecked supprime le contrôle Le mode par défaut est unchecked Le mode par défaut est unchecked Lutilisation de la directive /checked du compilateur permet dutiliser le mode checked par défaut Lutilisation de la directive /checked du compilateur permet dutiliser le mode checked par défaut

46 46. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying 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 */ byte b = (byte) num; /* overflow ALWAYS detected */} /* OVERFLOW III */ unchecked{ byte c = (byte) num; /* overflow NEVER detected */ }}//Main}

47 47. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Instructions Exceptions C# C# public static JvnServerImpl JvnGetServer() { try { …} catch { …} finally { …}} Java public static JvnServerImpl JvnGetServer() throws RemoteException{ try { … } catch { … } finally { … }

48 48. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Notions complémentaires Classes et structures Classes et structures Boxing et unboxing Boxing et unboxing Attributs Attributs Commentaires en XML Commentaires en XML

49 49. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Classes et Structures Différences ClassStructure Type référence Type valeur Hérite les types références non-sealeds Ne support pas lhéritage Peut définir le constructeur sans paramètre Pas de constructeur sans paramètre défini par lutilisateur

50 50. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Classes et Structures Similarités Chacune Chacune Est un type défini par lutilisateur Est un type défini par lutilisateur Peut implémenter plusieurs interfaces Peut implémenter plusieurs interfaces Peut contenir Peut contenir Données Données Champs, constantes, événements, tableaux Champs, constantes, événements, tableaux Fonctions Fonctions Méthodes, propriétés, indexeurs, opérateurs, constructeurs Méthodes, propriétés, indexeurs, opérateurs, constructeurs Définition de types Définition de types Classes, structures, énumérations, interfaces, délégués Classes, structures, énumérations, interfaces, délégués

51 51. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Classes et Structures Exemple struct SPoint { int x, y;... } class CPoint { int x, y;... } SPoint sp = new SPoint(10, 20); CPoint cp = new CPoint(10, 20); sp cp CPoint

52 52. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Boxing et unboxing Boxing: type primitif(valeur) -> object(référence) Boxing: type primitif(valeur) -> object(référence) UnBoxing:Opération inverse du boxing UnBoxing:Opération inverse du boxing int i = 123; object o = i; int j = (int)o; 123 i o j System.Int32

53 53. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Les attributs Un moyen dinsérer des annotations(i.e méta-données) 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é. 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: Exemple: [MethodImpl(MethodImplOptions.Synchronized)]: Similaire au mot-clé synchronized de Java. [MethodImpl(MethodImplOptions.Synchronized)]: Similaire au mot-clé synchronized de Java. [Serializable]: Similaire à l'implémentation de l'interface java.io.Serializable 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 Peut créer ses propres attributs de Runtime en sous-classant System.Attribute

54 54. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Commentaires en XML C# donne la possibilité de produire de la documentation en lien avec le code compilé C# donne la possibilité de produire de la documentation en lien avec le code compilé C# permet décrire ces commentaires en XML C# permet décrire ces commentaires en XML Début du commentaire : /// Début du commentaire : /// Un document XML est généré lors de la compilation du code avec largument /doc Un document XML est généré lors de la compilation du code avec largument /doc

55 55. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying.NET Remoting plan Introduction Introduction Base du.NET Remoting Base du.NET Remoting Marshalling Marshalling Client activated Client activated Server activated Server activated Configuration Configuration

56 56. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying.NET Remoting Introduction Infrastructure de larchitecture.NET Infrastructure de larchitecture.NET Motivation: Invocation des méthodes sur des objets distants Motivation: Invocation des méthodes sur des objets distants Ressemble à Java RMI Ressemble à Java RMI

57 57. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying.NET Remoting Base du.NET Remoting Terminologie - Architecture Terminologie - Architecture Channels Channels Deux Transports standard- ou tcp:// Deux Transports standard- ou tcp:// - fonctionne avec les firewalls - fonctionne avec les firewalls Tcp:// - high speed, format binaire Tcp:// - high speed, format binaire Formatters Formatters Transformer les Messages en Stream Transformer les Messages en Stream Binaire Binaire Soap 1.1 Compliant Soap 1.1 Compliant Personnalisé Personnalisé Messages

58 58. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying.NET Remoting Marshalling Marshall by Reference Marshall by Reference Dérive de : System.MarshalByRefObject Dérive de : System.MarshalByRefObject Accessible via des Proxy Accessible via des Proxy Lobjet reste sur le serveur Lobjet reste sur le serveur Marshall by Value Marshall by Value Les objets sont sérialisés Les objets sont sérialisés Attribute [Serializable] Attribute [Serializable] Implement ISerializable Implement ISerializable Lobjet est recopié vers le client Lobjet est recopié vers le client

59 59. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying.NET Remoting Client Activated Créé par le Client Créé par le Client Le Client contrôle Le Client contrôle la durée de vie Lease : bail Lease : bail

60 60. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying.NET Remoting Server Activated Le serveur est responsable de la durée de vie de lobjet Le serveur est responsable de la durée de vie de lobjet Configuration Configuration Programmation Programmation Créer un Type Wellknown Créer un Type Wellknown Enregistrer sur le serveur Enregistrer sur le serveur

61 61. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying.NET Remoting Configuration par fichier Fichier de configuration Fichier de configuration Méthode : RemotingConfiguration. Configure(config file) Méthode : RemotingConfiguration. Configure(config file) La Méthode fonctionne coté serveur et coté client La Méthode fonctionne coté serveur et coté client

62 62. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying.NET Remoting Configuration Dynamique Cache les informations de configuration aux utilisateurs Cache les informations de configuration aux utilisateurs Facile a déployer Facile a déployer Nécessite une recompilation à chaque modification du paramétrage… Nécessite une recompilation à chaque modification du paramétrage…

63 63. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying.NET Remoting objet 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.Ticks - starttime.Ticks)).ToString() + " seconds."); } public DateTime GetServerTime() { Console.WriteLine("Time requested by a client."); return DateTime.Now; }}

64 64. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying.NET Remoting Coté 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.config"); Console.WriteLine("Press enter to stop this process."); Console.ReadLine(); }}

65 65. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying.NET Remoting Coté client using System; using System.Runtime.Remoting; public class Client { public static void Main(string[] Args) { RemotingConfiguration.Configure("Client.exe.config"); ServiceClass service = new ServiceClass(); Console.WriteLine(service.GetServerTime());}}

66 66. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying.NET Remoting configuration de serveur />

67 67. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying.NET Remoting configuration de client /> domain="hello" /> Declaration dun point de terminaison de type singleton Canal associé avec application Encodeur de format associé avec un canal

68 68. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying.NET Remoting Demo Exemple Exemple Server Client

69 69. NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Quelques ressources html html issues/0900/csharp/csharp.asp issues/0900/csharp/csharp.asp p.html p.html default.asp?URL=/library/dotnet/ csspec/vclrfcsharpspec_Start.htm default.asp?URL=/library/dotnet/ csspec/vclrfcsharpspec_Start.htm


Télécharger ppt ". Net & C# Chen Shan & Liu Ying Master 2 pro GI - SRR 2003-2004."

Présentations similaires


Annonces Google