. Net  C

. Net C PowerPoint PPT Presentation


  • 170 Views
  • Uploaded on
  • Presentation posted in: General

2. . NET

Download Presentation

. Net C

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


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

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

3. 3 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Qu’est 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. 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 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. 5 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying .NET Framework Introduction Assemblage Avantage Structure CLR Définition 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

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

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

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

10. 10 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Structure d’un assemblage Représentation physique d’un assemblage

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

12. 12 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Compilation à l’exécution du code CIL JIT – Just In Time Compiler le méthode juste avant le premier appel Avantages Compiler qu’une fois le code source de haut niveau Distribuée sous forme d’assemblages Exécutable sur différents machines et différents OS

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

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

15. 15 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Gestion des domaines d’application un domaine d’application conteneur logique d’assemblage(s) Assemblages chargés par CLR Décharger un domaine d’application tout entier Garantir l’isolation des domaines d’applications

16. 16 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying 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. 17 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Les conceptions nouveaux La gestion du code durant l’exécution Indépendance du OS et du matériel sous-jacent Introduction d’une entité plus léger que processus Interaction entre un grand nombre de langages …

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

19. 19 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Introduction C# Nouveau langage créé pour .NET Hérite de C++ (Espace de nom:Namespace, pointeur: unsagecode, unsigned types) Ressemble à Java Concepts clés : Composants orientés Tout est objet Utilise les classes du framework .NET Exemple: Hello World

20. 20 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Introduction Modèle d’exécution

21. 21 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Types Un programme C# est une collection de type Classes,interfaces,structures,délégués,énumérations 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 D’autres types Il y a 2 catégories de types:valeur et référence

22. 22 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Types 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. 23 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Types Bénéfice des types valeurs Pas d’allocation dans le tas, moins de travail pour le GC Meilleur utilisation de la mémoire Moins de référence indirecte

24. 24 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Types Types définis par l’utilisateur

25. 25 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Types Enums Enums Grouper certaines constantes de même catégorie. Dérive de System.Enum

26. 26 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Types Interfaces 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 d’implémentation 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 l’utilisateur Similaire aux classes C++ ou Java Héritage simple sur la classe Peuvent implémenter de multiples interfaces Contrôle d’accè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 l’opérateur new

28. 28 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Types Struct Similaire aux classes, mais Type valeur défini par l’utilisateur Hérite toujours d’objet Ideal pour des objets ‘légers’ int, float, double, etc., sont des structures Permet la définition de type primitifs par l’utilisateur Complex, point, rectangle, color, rational Héritage multiple des interfaces Même membres que les classes Contrôle d’accès public, internal, private Instancié par l’opé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 d’une 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. 30 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Structure d’un 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. 31 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Structure d’un programme Assembly Désigner un ensemble de code/sources Comporte 3 parties: Un manifest Des classes Des meta-données

32. 32 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Structure d’un programme Espaces de noms Un nom de type doit être unique au sein d’un espace de nom (Namespace) Permet l’organisation logique des types Il n’y 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 d’un programme Espaces de noms C# namespace Irc { … namespace Jvn { … } //namespace Jvn }//namespace Irc

34. 34 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Structure d’un programme L’import de bibliothèques 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 d’un programme Méthode Main L’exécution d’un 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. 36 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Membres Plan Constantes Champ (fields) Opérateurs (constructeurs et destructeurs) Propriétés Indexeurs évènements

37. 37 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Membres Opérateur: Constructeur Implémenter les actions nécessaires à l’initialisation d’une instance de la classe Le même nom que la classe Ne retourne aucun paramètre

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 Le même nom que la classe, précédé du caractère ~ Ne peut pas être appelé directement

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

40. 40 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Membres Indexeurs 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

41. 41 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Membres Evè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 s’enregistrer pour le même évènement

42. 42 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Membres Evènements 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) { … } … }

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

44. 44 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Instructions Threads: synchronisation Lock Exclusion mutuelle Mis en oeuvre à l’aide de la classe System.Threading.Monitor(Wait(),PulseAll(),Pulse())

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 checked force le contrôle unchecked supprime le contrôle Le mode par défaut est unchecked L’utilisation de la directive /checked du compilateur permet d’utiliser 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 */ } /* 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# 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 Boxing et unboxing Attributs Commentaires en XML

49. 49 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Classes et Structures Différences

50. 50 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Classes et Structures Similarités Chacune Est un type défini par l’utilisateur 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. 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);

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

53. 53 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Les attributs Un moyen d’insérer des annotations(i.e méta-données) Un moyen de fournir des informations au runtime dans le but d’exécuter des tâches additionnelles ou d’étendre les caractéristiques d’un 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. 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# 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 l’argument /doc

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

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

57. 57 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying .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. 58 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying .NET Remoting Marshalling Marshall by Reference Dérive de : System.MarshalByRefObject Accessible via des Proxy L’objet reste sur le serveur Marshall by Value Les objets sont sérialisés Attribute [Serializable] Implement ISerializable L’objet 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 Le Client contrôle la durée de vie 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 l’objet Configuration <wellknown mode=“SingleCall” ou “Singleton” type=“type,assembly” objectUri=“myobject” /> Programmation Créer un Type Wellknown Enregistrer sur le serveur

61. 61 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying .NET Remoting Configuration par fichier Fichier de configuration <configuration> <System.Runtime.Remoting> <application> <service> <wellknown mode=“Singleton” type=“Namespace.Class,Assembly” objectUri=“URI”/> </service> Méthode : RemotingConfiguration.Configure(“config file”) 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 Facile a déployer 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 <configuration> <system.runtime.remoting> <application> <service> <wellknown mode="SingleCall" type="ServiceClass, ServiceClass" objectUri="RemoteObject" /> </service> <channels> <channel port="8080" ref="http" /> </channels> </application> </system.runtime.remoting> </configuration>

67. 67 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying .NET Remoting configuration de client <configuration> <system.runtime.remoting> <application> <client> <wellknown type="ServiceClass, ServiceClass" url="http://localhost:8080/RemoteObject" /> </client> <channels> <channel ref="http"> <clientProviders> <formatter ref="soap"/> <provider ref="propsetter" username="bob" writeToConsole="true"> domain="hello" /> </provider> </clientProviders> </channel> </channels> </application> <debug loadTypes="true" /> </system.runtime.remoting> </configuration>

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

69. 69 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying Quelques ressources http://msdn.microsoft.com http://windows.oreilly.com/news/hejlsberg_0800.html 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.html http://www.c-sharpcorner.com/ http://msdn.microsoft.com/library/ default.asp?URL=/library/dotnet/ csspec/vclrfcsharpspec_Start.htm

  • Login