1 / 69

. Net & C#

. Net & C#. Chen Shan & Liu Ying Master 2 pro GI - SRR 2003-2004. Plan. . NET Introduction Historique .NET Framework C# .NET Remoting. Qu’est ce que .Net?. Une technologie prônée par Microsoft Une nouvelle plate-forme de développement logiciel

cwen
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. 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) • … . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

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

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

  6. Vue générale de .Net CLS ( Common Langage Specification) C #, VB.NET… Outils Infrastructure pour le développement d’application 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) . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

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

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

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

  10. Structure d’un assemblage Représentation physique d’un 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 …) . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

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

  12. Compilation à l’exécution du code CIL Assemblage Compilation JIT Langage source ------------------>code CIL -------------------------->langage machine • 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 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

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

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

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

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

  17. 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 • … . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

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

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

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

  21. 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 Champs, constantes, tableaux, évènements Méthodes, opérateurs, constructeurs, propriétés, indexeurs . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

  22. i 123 s "Hello world" 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(); int i = 123; string s = "Hello world"; . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

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

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

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

  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 d’implémentation • Elle doit être implémentée par une classe ou une structure . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

  27. TypesClasses public class JvnServerImpl: MarshalByRefObject, IJvnLocalServer, IJvnRemoteServer { … }//class jvnServerImpl • 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, protectedinternal • 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 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

  28. TypesStruct • 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 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

  29. TypesDelegates • 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 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

  30. Assembly Module(.dll/.exe) File Type 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 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

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

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

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

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

  35. Structure d’un programmeMé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) . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

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

  37. MembresOpé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 Java public class JvnServerImpl { … private JvnServerImpl { super(); … } … } C# public class JvnServerImpl { … private JvnServerImpl():base() { … } … } . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

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

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

  40. MembresIndexeurs • Un indexeur permet à une instance d’être un tableau virtuel • Peut être surchargé(i.e. indexé parint et par string) • 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]); . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

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

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

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

  44. InstructionsThreads: synchronisation • Lock • Exclusion mutuelle • Mis en oeuvre à l’aide 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; } } } . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

  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 • L’utilisation de la directive /checked du compilateur permet d’utiliser le mode checked par défaut . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

  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 */ } }//Main } . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

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

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

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

  50. Classes et StructuresSimilarité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 . NET & C# - Master 2 pro (SRR) Chen Shan & Liu Ying

More Related