Contenu connexe Similaire à Alphorm.com - Formation programmer en Visual Basic .NET (20) Alphorm.com - Formation programmer en Visual Basic .NET1. Présentation
Formation VB.NET
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
2. Plan
• Présentation du formateur
• Qu’est ce que VB.NET ?
• Le plan de formation
• Les liens utiles
Programmer en Visual Basic .NET alphorm.com™©
3. Présentation du formateur
• Fabien Brissonneau
• Email : fabien.brissonneau@gmail.com
• Consultant Concepteur et Formateur
• Missions d’architecture, de conception , de réalisation logicielles
• Fondateur de eiXa6
• Actuellement en mission sur un projet de gestion
• Mes références :
Mon profil Viadeo : http://fr.viadeo.com/fr/profile/fabien.brissonneau
Mon profil LinkedIn : http://fr.linkedin.com/pub/fabien-brissonneau/65/902/92a/
Programmer en Visual Basic .NET alphorm.com™©
4. Qu’est-ce que VB.NET ?
• Langage Microsoft .NET (comme C#, F#, …)
• S’appuie sur le framework .NET
• Reprend en partie la syntaxe VB
• Langage orienté objet
Programmer en Visual Basic .NET alphorm.com™©
5. Contenu
• Généralités
• Langage orienté objet
• Les délégués et les
événements
• Les fichiers
• Gérer les exceptions
• Les bases de données
• Les méta-données
• Les opérateurs de VB.NET
• Les collections
• Le multithreading
• Winform
• ASP.NET
• WPF
Programmer en Visual Basic .NET alphorm.com™©
6. Les liens utiles
• Microsoft MSDN :
http://msdn.microsoft.com/en-us/vstudio/hh388573.aspx
• Visual Studio :
http://msdn.microsoft.com/en-us/vstudio/aa496123
Programmer en Visual Basic .NET alphorm.com™©
8. Présentation
VB.NET
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
9. Plan
• Généralités
• Langage orienté objet
• Les délégués et les événements
• Les opérateurs de VB.NET
• Les collections
• Le multithreading
• Winform
• Les fichiers
• Gérer les exceptions
• Les bases de données
• Les méta-données
• ASP.NET
• WPF
Programmer en Visual Basic .NET alphorm.com™©
10. Généralités
• Visual Studio
• Compatibilité VB6
• Le GAC
• Les espaces de nommage
Programmer en Visual Basic .NET alphorm.com™©
11. Langage orienté objets
• Penser orienté objet
• Classe et objets
• Les interfaces
Programmer en Visual Basic .NET alphorm.com™©
12. Les points avancés de VB.NET
• Délégués et événements
• Les opérateurs
• Les méta-données
Programmer en Visual Basic .NET alphorm.com™©
13. Le framework .NET
• Les collections
• Le multithreading
• Winform
• Les fichiers
• Les bases de données
• WPF
Programmer en Visual Basic .NET alphorm.com™©
14. ASP.NET
• Création d’un projet ASP.NET
• Le codebehind
• WebService
• Gérer les erreurs
• Les contrôles
Programmer en Visual Basic .NET alphorm.com™©
15. Généralités
Structure du
programme
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
16. Plan
• Framework, Profils et Plateformes
• Bibliothèques de classes portables
• Les éléments d’une application .NET
Types
Classes
Modules
Assemblies
• CTS, Metadonnées, Attributes
• ILDASM
• La mémoire : Garbage Collector, Finalize et IDisposable
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
17. Framework, Profils, Plateformes
Plateformes Versions
.Net Framework .Net 4 et +, 4.03 et +,4.5
SilverLight Silverlight 4 et +, 5
Windows Phone WP7 et +, WP 7.5 et +, WP8
.Net pour Metro .Net pour Metro
Xbox 360 -
Programmer en Visual Basic .NET alphorm.com™©
18. Bibliothèque de classes portables
• Bibliothèques de classes utilisables avec plusieurs plateformes
Programmer en Visual Basic .NET alphorm.com™©
19. Elements de l’application .NET
• Types
Encapsule les données
• Classes
• Modules
Contient le IL, compilé par le CLR via le JIT
Native Image Generator, ngen
• Assembly
Informations sur l’assembly, une clé si publique, la sécurité, les dépendances
Programmer en Visual Basic .NET alphorm.com™©
20. CTS, Métadonneés et attributes
• Common Type System garantit l’interopérabilité entre langages
• Les méta données sont compilées dans l’assembly et accompagne le IL
• Les attributes sont des infos que le développeur injecte
Programmer en Visual Basic .NET alphorm.com™©
21. ILDASM
• Le dés-assembleur peut lire l’assembly compilé
Programmer en Visual Basic .NET alphorm.com™©
22. La mémoire
• Le Garbage Collector est déclenché par le système
• La finalisation est non déterministe
• Une interface est proposée pour s’assurer de la libération des
ressources
• Il peut être sollicité par GC.Collect();
• Il est optimisé et gère des générations d’objets
Programmer en Visual Basic .NET alphorm.com™©
23. Ce qu’on a couvert
• Framework, Profils et Plateformes
• Bibliothèques de classes portables
• Les éléments d’une application .NET
Types
Classes
Modules
Assemblies
• CTS, Metadonnées, Attributes
• ILDASM
• La mémoire : Garbage Collector, Finalize et IDisposable
Programmer en Visual Basic .NET alphorm.com™©
24. Généralités
Syntaxe de base
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
25. Plan
• Variables : déclaration et typage
• Les types primitifs
• Le contrôle du flux d’exécution
Conditions : If Then, Select
Boucles
• Les types références
• Les String
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
26. Variables et déclarations
• Il faut déclarer les variables
• Il faut typer les variables
• Sous le contrôle des options
Programmer en Visual Basic .NET alphorm.com™©
27. Les types primitifs
• Short, Int16, UInt16 : 2 octets
• Integer, Int32, UInt32 : 4 octets
• Long, Int64, UInt64 : 8 octets
• Single : 4 octets
• Double : 8 octets
• Decimal : 16 octets
• Char, Byte et DateTime
Programmer en Visual Basic .NET alphorm.com™©
28. Le contrôle du flux d’exécution
• Les conditions
If Then Else
Select Case
• Les boucles
While - End While
For -
Programmer en Visual Basic .NET alphorm.com™©
29. Les types références
• Les types références sont gérés sur le tas
• Leur cycle de vie est sous contrôle du Garbage Collector
• Ils sont accessibles par des références
• Ils n’ont pas de destructeur déterministe
Programmer en Visual Basic .NET alphorm.com™©
30. Les String
• Différentes façons de créer les String
• SubString
• PadLeft et PadRight
• Split
• Classe immuable
• Les constantes
Programmer en Visual Basic .NET alphorm.com™©
31. Ce qu’on a couvert
• Variables : déclaration et typage
• Les types primitifs
• Le contrôle du flux d’exécution
Conditions : If Then, Select
Boucles
• Les types références
• Les String
Programmer en Visual Basic .NET alphorm.com™©
32. Généralités
Compatibilité VB6
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
33. Plan
• VB.NET est un nouveau langage
• Microsoft.VisualBasic
• Microsoft.VisualBasic.Compatibility.VB6
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
34. VB.Net est un nouveau langage
• Langage orienté objets
• Basé sur le framework .NET
• Une syntaxe de base VB
• MAIS des concepts nouveaux
Programmer en Visual Basic .NET alphorm.com™©
35. Microsoft.VisualBasic
• Encapsule des fonctions, énumérations et constantes VB6
• Considérés comme sûrs à utiliser dans .NET
• Vous devriez préférer le Framework .NET
• Stables
• AppWinStyle, DateFormat, … Collection, Strings…
Programmer en Visual Basic .NET alphorm.com™©
37. Ce qu’on a couvert
• VB.NET est un nouveau langage
• Microsoft.VisualBasic
• Microsoft.VisualBasic.Compatibility.VB6
Programmer en Visual Basic .NET alphorm.com™©
38. Généralités
Manipuler le GAC
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
39. Plan
• Le GAC
• Générer un assembly privé
• Générer un assembly partagé
• Livrer dans le GAC
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
40. Le GAC
• C:WindowsAssembly
• Ou C:WindowsMicrosoft NETAssembly - V4.0
• Un répertoire qui contient les DLL utilisées sur ce poste
• Les assemblys ont des versions : majeur.mineur.build.revision
Programmer en Visual Basic .NET alphorm.com™©
41. Générer un assembly privé
• Un projet correspond à un assembly
• La DLL doit être dans le répertoire du client
• Livraison simple par recopie
Programmer en Visual Basic .NET alphorm.com™©
42. Générer un assembly partagé
• Un assembly partagé est signé
• La clé est référencée par les assemblys clients
• Générer la clé avec sn.exe
• Ou bien utiliser Visual Studio
Programmer en Visual Basic .NET alphorm.com™©
43. Livrer dans le GAC
• Un répertoire dans c:windows
• Recopier dans le répertoire
• Utiliser gacutil
Programmer en Visual Basic .NET alphorm.com™©
44. Ce qu’on a couvert
• Le GAC
• Générer un assembly privé
• Générer un assembly partagé
• Livrer dans le GAC
Programmer en Visual Basic .NET alphorm.com™©
45. Généralités
Espaces de nommage
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
46. Plan
• Définition d’un espace de nommage
• Les espaces de nommage de .NET
• My
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
47. Définition d’un espace de nommage
• Bloc de code, nommé
• Isole les types, classes, fonctions …
• Permet une organisation logique des classes
• Vous créez vos propres espaces de nommage
Programmer en Visual Basic .NET alphorm.com™©
48. Les espaces de nommage .NET
• Les espaces de nommage sont importés
• Importation implicite par la boîte de projet
• Alias d’espaces possible
• Cas de Microsoft.VisualBasic
• Importation valable aussi dans ASP.NET
Programmer en Visual Basic .NET alphorm.com™©
49. My
• Pas un vrai espace de nommage
• Donne un accès rapide à certains objets importants
• Application, Computer, Forms, Resources, Settings …
• Plus restreint si ASP.NET
• Vous pouvez l’étendre …
Programmer en Visual Basic .NET alphorm.com™©
50. Ce qu’on a couvert
• Définition d’un espace de nommage
• Les espaces de nommage de .NET
• My
Programmer en Visual Basic .NET alphorm.com™©
51. Généralités
Les conventions
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
52. Plan
• Les espaces de nommage
• Les classes
• Les méthodes
• Les champs
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
53. Les espaces de nommage
• Regroupement de classes …
• Par ensemble logique
• Par technologie
• Par entreprise
Programmer en Visual Basic .NET alphorm.com™©
54. Les classes
• Les types que vous manipulez
• Un nom clair, définissant l’objectif de votre classe
• Un regroupement de méthodes et de champs
• Dans un fichier portant son nom
Programmer en Visual Basic .NET alphorm.com™©
55. Les méthodes
• Les traitements associés aux classes
• Un nom évocateur
• Un modificateur Sub ou Function
• Une visibilité
• Des paramètres clairs
• Les parenthèses
Programmer en Visual Basic .NET alphorm.com™©
56. Les champs
• Les variables utilisées dans les classes
• Un nom bien choisi
• Un type adapté
• Une visibilité
Programmer en Visual Basic .NET alphorm.com™©
57. Ce qu’on a couvert
• Les espaces de nommage
• Les classes
• Les méthodes
• Les champs
Programmer en Visual Basic .NET alphorm.com™©
58. Généralités
Les options
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
59. Plan
• Les paramètres de compilation du projet
• Les options en ligne de commande
• Les directives de compilation et leurs tests
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
60. Les paramètres de génération
• Le projet
• Le compilateur
Programmer en Visual Basic .NET alphorm.com™©
61. Les options de la ligne de commande
• Vbc.exe
Programmer en Visual Basic .NET alphorm.com™©
62. Les directives et leurs tests
• Compilation conditionnelle
Programmer en Visual Basic .NET alphorm.com™©
63. Ce qu’on a couvert
• Les paramètres de compilation du projet
• Les options en ligne de commande
• Les directives de compilation et leurs tests
Programmer en Visual Basic .NET alphorm.com™©
64. Langage orienté objets
Concevoir et coder
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
65. Plan
• Les objectifs de l’orienté objets
• Mettre au même endroit données et traitements
• Penser interactions entre objets
• Encapsuler l’implémentation
• Utiliser le diagramme de classes
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
66. Les objectifs de l’orienté objets
• Favoriser la maintenabilité de l’application
• Améliorer la réutilisabilité des composants
• Permettre l’extension des systèmes existants
• Eviter : fragilité, immobilité, rigidité et … viscosité
Programmer en Visual Basic .NET alphorm.com™©
67. Données et traitements
• Dans une classe :
Les données : les champs
Les traitements : les méthodes
• Assurer la cohérence
• Améliorer la lisibilité
• Favoriser la réutilisabilité
Programmer en Visual Basic .NET alphorm.com™©
68. Penser interactions entre objets
• Les objets interagissent
• Ils se connaissent via locales, paramètres ou associations
• Les méthodes sont courtes
Programmer en Visual Basic .NET alphorm.com™©
69. Encapsuler l’implémentation
• Utiliser les visibilités
De privé à public
• Ne pas montrer les données
• Exposer plutôt des méthodes
• Jouer avec les propriétés
Programmer en Visual Basic .NET alphorm.com™©
70. Utiliser le diagramme de classes
• Le diagramme de classe UML
• Donne une vue globale de votre application
• Permet de concevoir sans les détails
Programmer en Visual Basic .NET alphorm.com™©
71. Ce qu’on a couvert
• Les objectifs de l’orienté objets
• Mettre au même endroit données et traitements
• Penser interactions entre objets
• Encapsuler l’implémentation
• Utiliser le diagramme de classes
Programmer en Visual Basic .NET alphorm.com™©
72. Langage orienté objets
Méthodes et
constructeurs
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
73. Plan
• Ecrire et utiliser une méthode
• Ecrire une propriété
• Ecrire un constructeur
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
74. Ecrire et utiliser une méthode
• Une méthode est soit Sub, soit Function
• Possède ou non des paramètres
• A une visibilité
• Correspond à un traitement réalisé par un objet
Programmer en Visual Basic .NET alphorm.com™©
75. Ecrire une propriété
• Une propriété est une méthode dédiée à l’accès à un champ
• Getter et/ou Setter
• A une visibilité
Programmer en Visual Basic .NET alphorm.com™©
76. Ecrire un constructeur
• Une méthode d’initialisation
• Existe par défaut si personne n’en a créé
• Peut avoir des paramètres
• A une visibilité
Programmer en Visual Basic .NET alphorm.com™©
77. Ce qu’on a couvert
• Ecrire et utiliser une méthode
• Ecrire une propriété
• Ecrire un constructeur
Programmer en Visual Basic .NET alphorm.com™©
78. Langage orienté objets
La généralisation
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
79. Plan
• Définition de la généralisation
• Conséquence d’héritage
• La redéfinition des méthodes
• Le polymorphisme
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
80. Définition de la généralisation
• Une relations statique entre classes
• La classe mère : super-classe, classe de base
• La classe fille : sous-classe, classe dérivée
• Permet de définir une nouvelle classe qui fournit les mêmes services
qu’une classe existante, en l’enrichissant si besoin
Programmer en Visual Basic .NET alphorm.com™©
81. Conséquence de l’héritage
• Le type « fils » est considéré comme le « père »
• Le fils hérite de tout ce que contient le père
• L’interface du père est présente sur le fils
Programmer en Visual Basic .NET alphorm.com™©
82. La redéfinition des méthodes
• Une méthode de la classe mère est :
Normalement héritée
Peut être ré-écrite si besoin
Il faut le prévoir dans la classe mère
Et le spécifier dans la classe fille
Programmer en Visual Basic .NET alphorm.com™©
83. Le polymorphisme
• Le mécanisme permet de déclencher une méthode :
Qui doit exister sur la classe mère
Qui est redéfinie sur la classe fille
Sans connaître la classe fille
• Essentiel dans l’extension des systèmes
Programmer en Visual Basic .NET alphorm.com™©
84. Ce qu’on a couvert
• Définition de la généralisation
• Conséquence d’héritage
• La redéfinition des méthodes
• Le polymorphisme
Programmer en Visual Basic .NET alphorm.com™©
85. Langage orienté objets
Les interfaces
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
86. Plan
• Définition des interfaces
• Remarque sur les classes abstraites
• Implémenter une interface
• Le polymorphisme avec les interfaces
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
87. Définition d’une interface
• Une interface :
Déclare des méthodes, sans corps
Ne peut pas être instanciée
Ne possède pas de champs
• Elle sert à :
Définir un contrat
Définir un type
Programmer en Visual Basic .NET alphorm.com™©
88. Remarque sur les classes abstraites
• Une classe abstraite est une classe qui ne peut pas être instanciée
• Une classe abstraite :
Contient de l’implémentation
Possède des constructeurs
Programmer en Visual Basic .NET alphorm.com™©
89. Implémenter une interface
• Une classe peut implémenter une interface :
Elle doit redéfinir chaque méthode
• Une classe peut implémenter plusieurs interfaces
• Une interface peut hériter d’une ou plusieurs autres
Programmer en Visual Basic .NET alphorm.com™©
90. Le polymorphisme avec les interfaces
• Il faut redéfinir les méthodes prévues par l’interface
• On peut référencer un objet via son type interface
• Le polymorphisme fonctionne avec les interfaces
Programmer en Visual Basic .NET alphorm.com™©
91. Ce qu’on a couvert
• Définition des interfaces
• Remarque sur les classes abstraites
• Implémenter une interface
• Le polymorphisme avec les interfaces
Programmer en Visual Basic .NET alphorm.com™©
92. Langage orienté objets
Object
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
93. Plan
• La classe Object
• Les méthodes de Object
• Le polymorphisme avec Object
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
94. La classe Object
• Classe mère de toutes les classes
• On en hérite directement ou indirectement
• Possède quelques méthodes d’intérêt général
• Permet :
Un comportement commun minimum
Des manipulations standards
Programmer en Visual Basic .NET alphorm.com™©
95. Les méthodes de Objet
• Redéfinissable ou pas
• Protected : Finalize, MemberwiseClone
• Et publiques :
Programmer en Visual Basic .NET alphorm.com™©
96. Le polymorphisme avec Object
• Manipuler n’importe quel objets VB.NET en tant que Object
• Un code quasi universel, très stable
• Une grande réutilisabilité
• Une occasion pour la « reflection »
Programmer en Visual Basic .NET alphorm.com™©
97. Ce qu’on a couvert
• La classe Object
• Les méthodes de Object
• Le polymorphisme avec Object
Programmer en Visual Basic .NET alphorm.com™©
98. Langage orienté objets
Le type runtime
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
99. Plan
• La méthode GetType()
• Les opérateurs Is et IsNot
• L’opérateur TypeOf
• La fonction TryCast
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
100. La méthode GetType
• Une méthode de Object
Programmer en Visual Basic .NET alphorm.com™©
101. Les opérateurs Is et IsNot
• Utilisable avec GetType et TypeOf
Programmer en Visual Basic .NET alphorm.com™©
102. L’opérateur TypeOf
• Détection du type d’un objet référencé
Programmer en Visual Basic .NET alphorm.com™©
103. La fonction TryCast
• Essayer de convertir dans un type donné
• En cas d’échec, la référence vaut Nothing
Programmer en Visual Basic .NET alphorm.com™©
104. Ce qu’on a couvert
• La méthode GetType()
• Les opérateurs Is et IsNot
• L’opérateur TypeOf
• La fonction TryCast
Programmer en Visual Basic .NET alphorm.com™©
105. Langage orienté objets
Les membres partagés
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
106. Plan
• Les champs Shared
• Les méthodes Shared
• Un modèle classique : le Singleton
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
107. Les champs Shared
• Mot-clé Shared
• Une valeur commune à tous les objets de la classe
• Peut être de n’importe quelle visibilité
Programmer en Visual Basic .NET alphorm.com™©
108. Les méthodes Shared
• Mot-clé Shared
• Méthode commune à tous les objets de la classe
• Méthode appelée sur la classe
Programmer en Visual Basic .NET alphorm.com™©
109. Un modèle classique : le Singleton
• Un accès global
• Une création à la demande
• Une garantie de l’unicité de
l’instance
Programmer en Visual Basic .NET alphorm.com™©
110. Ce qu’on a couvert
• Les champs Shared
• Les méthodes Shared
• Un modèle classique : le Singleton
Programmer en Visual Basic .NET alphorm.com™©
111. Délégués et Events
Les délégués
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
112. Plan
• Appeler une fonction sans la connaître
• Déclaration d’un délégué
• Appel de la méthode
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
113. Appeler une fonction sans la connaître
• Une partie de l’application doit déclencher une méthode
• Cette méthode est située dans une autre partie
• Que la première ne doit pas connaître
• Eviter les dépendances cycliques
Programmer en Visual Basic .NET alphorm.com™©
114. Déclaration d’un délégué
Delegate Sub unefonction(ByVal s As String)
Sub Affiche(ByVal s As String)
Console.WriteLine(Voici le message s)
End Sub
Programmer en Visual Basic .NET alphorm.com™©
115. Appel de la méthode
Dim d As unefonction
‘
d = AddressOf Affiche
‘on
d.Invoke(coucou)
‘et n fait une invocation dynamique
Programmer en Visual Basic .NET alphorm.com™©
116. Ce qu’on a couvert
• Appeler une fonction sans la connaître
• Déclaration d’un délégué
• Appel de la méthode
Programmer en Visual Basic .NET alphorm.com™©
117. Délégués et Events
Les « Events »
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
118. Plan
• Emetteur de l’événement
• Récepteur de l’événement
• Emission/Réception
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
119. Emetteur de l’événement
Public Class Emetteur
Public Event Click(ByVal msg As String)
Public Sub Declenche()
RaiseEvent Click(Bouton cliqué)
End Sub
End Class
Programmer en Visual Basic .NET alphorm.com™©
120. Récepteur de l’événement
Public Class Recepteur
Private WithEvents c As Emetteur
Public Sub New(ByVal cc As Emetteur)
c = cc
End Sub
Public Sub ClickGere(ByVal s As String) Handles c.Click
Console.WriteLine(Je gère le clic sur le bouton s)
End Sub
End Class
Programmer en Visual Basic .NET alphorm.com™©
121. Emission/Réception
Dim c As Emetteur = New Emetteur
Dim gc As Recepteur = New Recepteur(c)
c.Declenche()
Programmer en Visual Basic .NET alphorm.com™©
122. Ce qu’on a couvert
• Emetteur de l’événement
• Récepteur de l’événement
• Emission/Réception
Programmer en Visual Basic .NET alphorm.com™©
123. Les opérateurs
Les opérateurs
arithmétiques
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
124. Plan
• Opérateurs arithmétiques
• Opérateurs de comparaisons
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
127. Ce qu’on a couvert
• Opérateurs arithmétiques
• Opérateurs de comparaisons
Programmer en Visual Basic .NET alphorm.com™©
128. Les opérateurs
Indexeurs et
conversions
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
129. Plan
• Un indexeur
• Les conversions
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
132. Ce qu’on a couvert
• Un indexeur
• Les conversions
Programmer en Visual Basic .NET alphorm.com™©
133. Les collections
Collections séquentielles
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
134. Plan
• Les classes génériques
• Fonctionnement de List(Of T)
• List(Of T) et prédicats
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
135. Les classes génériques
• Une famille de classe
• Le code est généré au moment de l’utilisation
• La génération est paramétrée
Programmer en Visual Basic .NET alphorm.com™©
136. Fonctionnement de List(Of T)
Dim dinosaurs As New List(Of String)
dinosaurs.Add(Tyrannosaurus)
dinosaurs.Add(Amargasaurus)
dinosaurs.Add(Mamenchisaurus)
dinosaurs.Add(Deinonychus)
dinosaurs.Add(Compsognathus)
For Each dinosaur As String In dinosaurs
Console.WriteLine(dinosaur)
…
Next
Programmer en Visual Basic .NET alphorm.com™©
137. List(Of T) et prédicats
• List. FindAll(Pred)
• Accept une méthode en paramètre
Par délégué
• Une méthode anonyme
Programmer en Visual Basic .NET alphorm.com™©
138. Ce qu’on a couvert
• Les classes génériques
• Fonctionnement de List(Of T)
• List(Of T) et prédicats
Programmer en Visual Basic .NET alphorm.com™©
139. Les collections
Collections associatives
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
140. Plan
• System.Collections : Hashtable
• System.Collections.Generic : Dictionary (Of K, V)
• Collections triées : SortedDictionary (Of K, V)
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
141. System.Collection
• Collections non génériques
• Une collection contient des Object
• Hashtable représente le tableau associatif
Programmer en Visual Basic .NET alphorm.com™©
143. Collection triée : SortedDictionary
• SortedDictionary ( Of K, V)
• Implémenté comme un arbre binaire équilibré
• Les clés sont comparées par un objet IComparer ( Of K)
Programmer en Visual Basic .NET alphorm.com™©
144. Ce qu’on a couvert
• System.Collections : Hashtable
• System.Collections.Generic : Dictionary (Of K, V)
• Collections triées : SortedDictionary (Of K, V)
Programmer en Visual Basic .NET alphorm.com™©
145. Les threads
Créer des threads
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
146. Plan
• System.Threading.Thread
• Thread.Join
• Start/Abort/Sleep
• Une autre classe : BackgroundWorker
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
149. Start, Sleep, Abort
• Start : démarre
• Abort : tente d’arrêter
• Sleep : bloque
Programmer en Visual Basic .NET alphorm.com™©
150. Autre classe
• System.ComponentModel.BackgroundWorker
Démarre une tâche
On écoute des événements : progression, fin, …
Programmer en Visual Basic .NET alphorm.com™©
151. Ce qu’on a couvert
• System.Threading.Thread
• Thread.Join
• Start/Abort/Sleep
• Une autre classe : BackgroundWorker
Programmer en Visual Basic .NET alphorm.com™©
152. Les threads
Synchroniser des threads
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
153. Plan
• Le problème des accès simultanés
• La synchronisation par attente d’un événement
• La synchronisation par section critique
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
154. Le problème des accès simultanés
• Les threads partagent la mémoire
• Lorsque 2 threads accèdent à la même donnée
• Il veulent la modifier/l’exploiter
Programmer en Visual Basic .NET alphorm.com™©
155. Synchronisation par événement
• Il faut mettre le thread en attente sur un signalement
• Un autre thread va signaler
• Possibilités réelles de blocage
Programmer en Visual Basic .NET alphorm.com™©
156. La synchronisation par section critique
• SyncLock
• Doit s’utiliser sur un type référence uniquement
• Empêche un Thread de rentrer si un exécute déjà le code
Programmer en Visual Basic .NET alphorm.com™©
157. Ce qu’on a couvert
• Le problème des accès simultanés
• La synchronisation par attente d’un événement
• La synchronisation par section critique
Programmer en Visual Basic .NET alphorm.com™©
158. Winforms
Créer un formulaire
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
159. Plan
• Créer un formulaire
• L’objet formulaire
• Les contrôles dans le formulaire
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
160. Créer un formulaire
• Utiliser l’éditeur graphique
• Les formulaires Windows sont décrits en VB.NET
Programmer en Visual Basic .NET alphorm.com™©
161. L’objet formulaire
• Une classe dérivant de Form
• Des méthodes
• Des événements
Programmer en Visual Basic .NET alphorm.com™©
162. Les contrôles de formulaire
• Nombreux, disposés dans la boîte à outils
• Et des composants non graphiques
Programmer en Visual Basic .NET alphorm.com™©
163. Ce qu’on a couvert
• Créer un formulaire
• L’objet formulaire
• Les contrôles dans le formulaire
Programmer en Visual Basic .NET alphorm.com™©
164. Winforms
Traiter les événements
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
165. Plan
• Traiter le Load du formulaire
• Gérer un événement sur un contrôle
• Réagir à la sélection sur une liste
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
166. Traiter le Load du formulaire
• Après le constructeur du formulaire
• Handles Load
Programmer en Visual Basic .NET alphorm.com™©
167. Gérer un événement sur un contrôle
• Associer le contrôle au gestionnaire
Par la feuille de propriétés
En double-cliquant
Programmer en Visual Basic .NET alphorm.com™©
168. Réagir à la sélection sur une liste
• Associer l’événement
• Détecter l’item sélectionner
• Réagir
Programmer en Visual Basic .NET alphorm.com™©
169. Ce qu’on a couvert
• Traiter le Load du formulaire
• Gérer un événement sur un contrôle
• Réagir à la sélection sur une liste
Programmer en Visual Basic .NET alphorm.com™©
170. Winforms
Utiliser le DataBinding
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
171. Plan
• Pour lier un élément graphique à une donnée
• Ouvrir un second formulaire
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
172. Le databinding
• Une source de données
• Un élément graphique
• Le lien entre les deux
Programmer en Visual Basic .NET alphorm.com™©
173. Ouvrir un second formulaire
• Gérer un événement
• Créer un objet formulaire
• Le rendre visible
Programmer en Visual Basic .NET alphorm.com™©
174. Ce qu’on a couvert
• Pour lier un élément graphique à une donnée
• Ouvrir un second formulaire
Programmer en Visual Basic .NET alphorm.com™©
175. Les fichiers
Le système de fichiers
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
176. Plan
• FileInfo/DirectoryInfo ou File/Directory
• Parcours d’un répertoire
• Examen d’un fichier
• FileSystemWatcher
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
178. Parcours d’un répertoire
• Avec DirectoryInfo (ou bien Directory), récupération d’informations
GetFiles, GetDirectories
Create, CreateSubDirectory
…
Programmer en Visual Basic .NET alphorm.com™©
179. Examen d’un fichier
• FileInfo (ou bien File)
Programmer en Visual Basic .NET alphorm.com™©
180. FileSystemWatcher
• Gère des événements sur modification d’un répertoire
Programmer en Visual Basic .NET alphorm.com™©
181. Ce qu’on a couvert
• FileInfo/DirectoryInfo ou File/Directory
• Parcours d’un répertoire
• Examen d’un fichier
• FileSystemWatcher
Programmer en Visual Basic .NET alphorm.com™©
182. Les fichiers
Ouvrir et lire un fichier
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
183. Plan
• Les flux
• Ouvrir un fichier binaire/texte
• Lire un fichier binaire/texte
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
185. Ouvrir un fichier binaire/texte
• Créer explicitement chaque objet
• Passer par des méthodes de fabrication
Programmer en Visual Basic .NET alphorm.com™©
186. Lire un fichier binaire/texte
• Le fichier texte : encodage ASCII
• Le fichier binaire
Programmer en Visual Basic .NET alphorm.com™©
187. Ce qu’on a couvert
• Les flux
• Ouvrir un fichier binaire/texte
• Lire un fichier binaire/texte
Programmer en Visual Basic .NET alphorm.com™©
188. Les fichiers
La sérialisation
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
189. Plan
• Le flux de sérialisation et les contraintes
• Le flux binaire
• Le flux texte XML
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
190. Le flux de sérialisation
• Arrange des objets dans un flux
• Les classes correspondantes doivent être « Serializable »
• Les champs sont automatiquement sérialisés
• Il est possible d’empêcher la sérialisation d’un champ
Programmer en Visual Basic .NET alphorm.com™©
191. Le flux binaire
• System.Runtime.Serialisation.Formatters.Binary.BinaryFormatter
Dim sw As FileStream
sw = File.Create(documents.dat)
Dim xs As BinaryFormatter
xs = New BinaryFormatter()
xs.Serialize(sw, obj) ‘ Obj est la référence sur l’objet à sérialiser
sw.Close()
Programmer en Visual Basic .NET alphorm.com™©
192. Le flux texte XML
• System.Xml.Serialization.XmlSerializer
• System.Runtime.Serialisation.Formatters.Soap.SoapFormatter
Dim sw As FileStream
sw = File.Create(documents.dat)
Dim xs As SoapFormatter
xs = New SoapFormatter()
xs.Serialize(sw, obj) ‘ Obj est la référence sur l’objet à sérialiser
sw.Close()
Programmer en Visual Basic .NET alphorm.com™©
193. Ce qu’on a couvert
• Le flux de sérialisation et les contraintes
• Le flux binaires
• Le flux texte XML
Programmer en Visual Basic .NET alphorm.com™©
194. Les exceptions
Gérer les exceptions
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
195. Plan
• Intérêt des exceptions
•Mots-clés Try/Catch/Finally pour gérer une exception
•Mot-clé Throw pour lever une exception
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
196. Intérêt des exceptions
• Gérer les erreurs exceptionnelles
• Remonte la pile des appels
• Sépare le code nominal du code de gestion d’erreurs
• Fonctionne même sans retour de fonction
• Le framework communique les erreurs via des exceptions
Programmer en Visual Basic .NET alphorm.com™©
197. Mots-clés Try/Catch/Finally
• Encadre le code qui peut lever une exception
• Finally optionnel
• Plusieurs Catch possibles
Programmer en Visual Basic .NET alphorm.com™©
198. Mot-clé Throw pour lever une exception
• Signale une erreur
• Plutôt code bas-niveau
Programmer en Visual Basic .NET alphorm.com™©
199. Ce qu’on a couvert
• Intérêt des exceptions
•Mots-clés Try/Catch/Finally pour gérer une exception
•Mot-clé Throw pour lever une exception
Programmer en Visual Basic .NET alphorm.com™©
200. Les exceptions
Créer ses propres
exceptions
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
201. Plan
• Une classe d’exception hérite de Exception
• Les méthodes de Exception
• Réinterpréter les exceptions
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
202. Une classe d’exception
• Simplement hériter de Exception ou ApplicationException
Programmer en Visual Basic .NET alphorm.com™©
203. Les méthodes de Exception
• Message
• ToString
Programmer en Visual Basic .NET alphorm.com™©
204. Réinterpréter les exceptions
• Attraper une exception et relancer un autre objet, plus facilement
interprétable par l’utilisateur
Programmer en Visual Basic .NET alphorm.com™©
205. Ce qu’on a couvert
• Une classe d’exception hérite de Exception
• Les méthodes de Exception
• Réinterpréter les exceptions
Programmer en Visual Basic .NET alphorm.com™©
206. Les bases de données
Mode connecté
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
207. Plan
• Les classes essentielles
• Récupération de la connexion
• DbCommand
• DbDataReader
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
208. Les classes essentielles
Classes Description
SqlCommand, OleDbCommand,
ODBCCommand
Encapsulation de commandes
SQL ou de procédures stockées
SqlCommandBuilder
(OleDb/ODBC)
Générateur de commandes SQL à
partir du SELECT
SqlConnection (OleDb/ODBC) Connexion
SqlDataAdapter (OleDb/ODBC) Contient des commandes, gère la
mise à jour du dataset ET de la
database
SqlDataReader (OleDb/ODBC) Curseur sur une base connectée
SqlParameter (OleDb/ODBC) Paramètres à fournir au SQL
SqlTransaction (OleDb/ODBC) Transaction de BD
Programmer en Visual Basic .NET alphorm.com™©
209. Récupération de la connexion
• La forme de la chaîne de connexion dépend du fournisseur
Programmer en Visual Basic .NET alphorm.com™©
212. Ce qu’on a couvert
• Les classes essentielles
• Récupération de la connexion
• DbCommand
• DbDataReader
Programmer en Visual Basic .NET alphorm.com™©
213. Les bases de données
Mode déconnecté
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
214. Plan
• Les classes essentielles
• DataSet et DbDataAdapter
•Modèle commun
• Paramétrer le fournisseur
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
215. Les classes essentielles
Classe Description
DataSet Contient des DataTables
DataTable Contient colonnes et lignes
DataRow Valeur dans la table
DataColumn Colonne dans la table
DataRelation Lien entre deux tables
Constraint Règle de colonne
Programmer en Visual Basic .NET alphorm.com™©
216. Dataset et DBDataAdapter
• DataSet a une existence en mémoire
• Peut être généré sous forme XML
Programmer en Visual Basic .NET alphorm.com™©
217. Modèle commun des fournisseurs
• Eviter de dépendre de Sql- ou OleDb- X
• Donner une chaîne de caractères qui représente le fournisseur
Programmer en Visual Basic .NET alphorm.com™©
218. Paramétrer le fournisseur
• App.config ou Web.config
• Trouver la factory
• Utiliser la factory
Programmer en Visual Basic .NET alphorm.com™©
219. Ce qu’on a couvert
• Les classes essentielles
• DataSet et DbDataAdapter
•Modèle commun
• Paramétrer le fournisseur
Programmer en Visual Basic .NET alphorm.com™©
220. Les méta-données
Utiliser les attributes
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
221. Plan
• Placer les attributs
• Paramètres et cibles d’attributs
• Utilisations courantes des attributs
• Quelques attributs
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
222. Placer les attributs
• Avant une classe
• Avant une méthode
• Avant des paramètres
Programmer en Visual Basic .NET alphorm.com™©
223. Paramètres et cibles d’attributs
• Paramètres
• Cibles
Programmer en Visual Basic .NET alphorm.com™©
224. Utilisations courantes
• WebMethod pour les services web
• Décrire l’interopération avec le code natif
• Décrire les propriété COM de classes
• Appelé du code non managé
• Décrire un assembly
• Désigner les classes à sérialiser
• Définir les conditions de sécurité
• …
Programmer en Visual Basic .NET alphorm.com™©
225. Quelques attributs
• Globaux
AssemblyName, AssemblyVersion
• Obsolete
• Conditional
Programmer en Visual Basic .NET alphorm.com™©
226. Ce qu’on a couvert
• Placer les attributs
• Paramètres et cibles d’attributs
• Utilisations courantes des attributs
• Quelques attributs
Programmer en Visual Basic .NET alphorm.com™©
227. Les méta-données
Créer un attribut
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
228. Plan
• Créer un nouvel attribut
• Utiliser un attribut
• Découvrir un attribut
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
229. Créer un nouvel attribut
• Créer une classe héritant de Attribute
Programmer en Visual Basic .NET alphorm.com™©
230. Utiliser un attribut
• Si usage unique
• Ou multiple
Programmer en Visual Basic .NET alphorm.com™©
232. Ce qu’on a couvert
• Créer un nouvel attribut
• Utiliser un attribut
• Découvrir un attribut
Programmer en Visual Basic .NET alphorm.com™©
233. ASP.NET
Créer un projet
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
234. Plan
• Les projets site Web
• Un projet WebForms
• Un projet MVC
• Un projet Web API
• L’exécution du projet Web
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
235. Les projets Site Web
• Ajouté depuis VS 2005
• Structure de répertoire qui reflète le site
Programmer en Visual Basic .NET alphorm.com™©
236. Un projet Web Forms
• Une structure standard
• Un master fournissant une présentation standardisée
Programmer en Visual Basic .NET alphorm.com™©
237. Un projet MVC
• Améliore les séparations des responsabilités, la testabilité
Programmer en Visual Basic .NET alphorm.com™©
238. Un projet Web API
• Version Microsoft des services RESTful
Programmer en Visual Basic .NET alphorm.com™©
239. L’exécution du projet Web
• IIS Express par défaut pour les applications Web
• ASP.NET Development Server pour les Website Projects
• IIS
Programmer en Visual Basic .NET alphorm.com™©
240. Ce qu’on a couvert
• Il y a plusieurs types de projets en rapport avec le Web
• Un projet Web organise les fichiers de façon particulière
• Plusieurs méthodes d’authentification sont disponibles
• Nous avons décrit les projets WebForms, MVC, et Web API
• L’exécution du projet Web peut se faire localement, à des fins de test
Programmer en Visual Basic .NET alphorm.com™©
241. ASP.NET
Créer un formulaire
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
242. Plan
• La création du projet application Web ASP.NET
• Utilisation des onglets de l’éditeur VS
• Le formatage du texte, feuille de propriétés
• L’ajout de contrôles dans le formulaire
• L’examen du code HTML correspondant
• Le code de rappel
• L’exécution de la page
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
243. La création du projet
Programmer en Visual Basic .NET alphorm.com™©
248. Le code de rappel
Programmer en Visual Basic .NET alphorm.com™©
250. Ce qu’on a couvert
• La création du formulaire WebForms se fait dans un projet application Web ASP.NET
• L’éditeur VS permet de créer l’interface Web à la façon d’une application lourde traditionnelle
• L’ajout de contrôles dans le formulaire est très simple et ergonomique
• Le code HTML est visible en direct
• Le code de rappel est codé directement en VB.NET
• L’exécution de la page se fait très simplement, cela favorise le déboggage
Programmer en Visual Basic .NET alphorm.com™©
251. ASP.NET
Utiliser le codebehind
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
252. Plan
• Utilisation du projet Web Forms généré par défaut
• Affichage d’un contenu de base de données
• Navigation entre pages
• Validation d’un formulaire
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
253. Utilisation du projet Web Forms
• Dans les fichiers générés :
Le HTML est dans les fichier aspx
Le code VB.NET est dans aspx.vb
Programmer en Visual Basic .NET alphorm.com™©
254. Affichage du contenu de la base
• Une ListBox, chargée dans le Load
Programmer en Visual Basic .NET alphorm.com™©
255. Navigation entre pages
• Une page = une classe
• Gestion d’événements à la façon traditionnelle
Programmer en Visual Basic .NET alphorm.com™©
257. Ce qu’on a couvert
• Utilisation du projet Web Forms généré par défaut
• Affichage d’un contenu de base de données
• Navigation entre pages
• Validation d’un formulaire
Programmer en Visual Basic .NET alphorm.com™©
258. ASP.NET
Global.asax et
HttpModule
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
260. L’application
• Données de niveau application
• Evénements de niveau application
• Le fichier global.asax
• Accompagne une applciation
Programmer en Visual Basic .NET alphorm.com™©
261. Les modules HTTP
• Web.config
• Créer un module HTTP, lui faire hériter de IHttpModule
• Réaliser Init et Dispose
• Code commun à plusieurs applications
Programmer en Visual Basic .NET alphorm.com™©
262. Ce qu’on a couvert
• L’application
• Les modules HTTP
Programmer en Visual Basic .NET alphorm.com™©
263. ASP.NET
Webservices
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
264. Plan
•Créer un service web
•Consommer un service web
•Résumé
Programmer en Visual Basic .NET alphorm.com™©
265. Créer un service web
• Page .asmx
• Attribut WebService
• Attribut WebMethod
Programmer en Visual Basic .NET alphorm.com™©
266. Consommer un service web
• Ajout de références de services
• La génération d’un proxy
Programmer en Visual Basic .NET alphorm.com™©
267. Ce qu’on a couvert
• Créer un service web
• Consommer un service web
Programmer en Visual Basic .NET alphorm.com™©
268. ASP.NET
Gérer les erreurs
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
269. Plan
• La page jaune d’erreur d’exception
• La page jaune d’erreur runtime
• La page d’erreur personnalisée
•Résumé
Programmer en Visual Basic .NET alphorm.com™©
270. La page jaune d’erreur d’exception
• Une page avec tous les détails
• Affichée au développeur
Programmer en Visual Basic .NET alphorm.com™©
271. La page jaune d’erreur runtime
• Affichée lors d’une connexion à distance
Programmer en Visual Basic .NET alphorm.com™©
272. Une page d’erreur personnalisée
• Une page qui est adaptée à l’application
• Utilisée conjointement avec « RemoteOnly »
• Il est possible d’avoir plusieurs pages d’erreur, par code
Programmer en Visual Basic .NET alphorm.com™©
273. Ce qu’on a couvert
• La page jaune d’erreur d’exception
• La page jaune d’erreur runtime
• La page d’erreur personnalisée
Programmer en Visual Basic .NET alphorm.com™©
274. ASP.NET
Les contrôles serveur
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
275. Plan
•Créer un contrôle utilisateur
•Modifier le rendu du contrôle
•Emettre un événement
• Le rôle de viewstate
•Résumé
Programmer en Visual Basic .NET alphorm.com™©
276. Créer un contrôle utilisateur
• Une classe héritant de WebControl
• Propriété Text et méthode RenderControl
Programmer en Visual Basic .NET alphorm.com™©
277. Modifier le rendu contrôle
• Réécrire RenderContent
• Générer du HTML
• Eventuellement utiliser HtmlTextWriter
Programmer en Visual Basic .NET alphorm.com™©
278. Emettre un événement
• Un contrôle peut proposer un événement
• Cet événement peut signaler une modification de la propriété
Programmer en Visual Basic .NET alphorm.com™©
279. Le rôle de ViewState
• L’état du contrôle est perdu entre 2 post
• ViewState est un dictionnaire qui stocke l’état du contrôle
Programmer en Visual Basic .NET alphorm.com™©
280. Ce qu’on a couvert
• Créer un contrôle utilisateur
• Modifier le rendu du contrôle
• Emettre un événement
• Le rôle de viewstate
Programmer en Visual Basic .NET alphorm.com™©
281. ASP.NET
Les contrôles de
validation
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
282. Plan
• Les différents contrôles de validation
•Utilisation des contrôles de validation
•Résumé
Programmer en Visual Basic .NET alphorm.com™©
283. Les différents types de contrôles
• 6 contrôles de validation
• Propriétés ErrorMessage et ControlToValidate
• Peuvent contrôler des contrôles classiques …
Programmer en Visual Basic .NET alphorm.com™©
284. Utilisation des contrôles
• Créer un contrôle classique
• Préparer la validation du formulaire
• Placer les contrôles de validation
Programmer en Visual Basic .NET alphorm.com™©
285. Ce qu’on a couvert
• Les différents contrôles de validation
• Utilisation des contrôles de validation
Programmer en Visual Basic .NET alphorm.com™©
286. ASP.NET
Les scriptlets
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
287. Plan
• Les blocs de code incorporé
• Les affichages d’expressions
• Les directives
• Les liaisons de données
• Les générateurs d’expressions
• Les commentaires
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
288. Les blocs de code incorporé
• % … %
• Placer du code dans le HTLM
• Pour compatibilité avec ASP
Programmer en Visual Basic .NET alphorm.com™©
290. Les directives
• % @ … %
• @Page : spécifie les attributs de page Web Forms
• @Control : spécifie les attributs de contrôle utilisateur
• @Import : importe un espace de noms
• @Register : enregistre un préfixe de contrôle utilisateur
• @Master : page maître
Programmer en Visual Basic .NET alphorm.com™©
291. Les liaisons de données
• % # …%
• Lie une propriété de contrôle de serveur et une source de données
Programmer en Visual Basic .NET alphorm.com™©
292. Les générateurs d’expressions
• Définit la valeur de propriété comme issue de la configuration
Programmer en Visual Basic .NET alphorm.com™©
293. Les commentaires
• Les commentaire côté serveur
Programmer en Visual Basic .NET alphorm.com™©
294. Ce qu’on a couvert
• Les blocs de code incorporé
• Les affichages d’expressions
• Les directives
• Les liaisons de données
• Les générateurs d’expressions
• Les commentaires
Programmer en Visual Basic .NET alphorm.com™©
295. ASP.NET
Web.config
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
296. Plan
• Les fichiers de config
•Sections
•Résumé
Programmer en Visual Basic .NET alphorm.com™©
297. Les fichiers de config
• Machine.config
• Web.config global
• Web.config de l’application
Programmer en Visual Basic .NET alphorm.com™©
298. Les sections
• Compilation :
• Custom errors
• Authentification :
• Chaînes de connexion :
Programmer en Visual Basic .NET alphorm.com™©
299. Ce qu’on a couvert
• Les fichiers de config
• Sections
Programmer en Visual Basic .NET alphorm.com™©
300. WPF
Le formulaire WPF
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
301. Plan
• L’éditeur graphique
• Le formulaire en XML
• Les contrôles WPF
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
302. L’éditeur graphique
• Un outil de création semblable à Windows Form
Programmer en Visual Basic .NET alphorm.com™©
303. Le formulaire en XML
• Le formulaire est exporté en XML
• Dialecte XAML
Programmer en Visual Basic .NET alphorm.com™©
305. Ce qu’on a couvert
• L’éditeur graphique
• Le formulaire en XML
• Les contrôles WPF
Programmer en Visual Basic .NET alphorm.com™©
306. WPF
Utiliser le databinding
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
307. Plan
• Le databinding
• Binding entre éléments graphiques
• Données vers Contrôle
• Binding birectionnel
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
308. Le databinding
• Un moyen de lier les contrôles aux données
• Ne pas avoir à gérer les mises à jour de l’un ou de l’autre
• Fonctionne comme un modèle observateur
• Peut fonctionner entre contrôles du formulaire
Programmer en Visual Basic .NET alphorm.com™©
309. Binding entre éléments graphiques
• Binding entre deux propriétés Text
Programmer en Visual Basic .NET alphorm.com™©
311. Mise à jour
Programmer en Visual Basic .NET alphorm.com™©
312. Binding bi-directionnel
• Les modes possibles : OneWay, TwoWay, OneTime, OneWayToSource
• Avec TwoWay, modifiant le TextBox, je modifie la donnée
Programmer en Visual Basic .NET alphorm.com™©
313. Ce qu’on a couvert
• Le databinding
• Binding entre éléments graphiques
• Données vers Contrôle
• Binding birectionnel
Programmer en Visual Basic .NET alphorm.com™©
314. VB.NET
Conclusion
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Contact : fabien.brissonneau@gmail.com
Programmer en Visual Basic .NET alphorm.com™©
315. Plan
• Nous avons présenté VB.NET
• Langage universel
• L’avenir
Programmer en Visual Basic .NET alphorm.com™©
316. Nous avons présenté VB.NET
• Un langage héritier de VB et des langages objets
• Intégré à la plateforme dot-net
• Doit être utilisé comme un langage orienté objet
•Manipule les mêmes concepts que son voisin C#
Programmer en Visual Basic .NET alphorm.com™©
317. VB.NET est un langage universel
• VB.Net s’appuie sur la puissance du framework .Net
• Il peut être utilisé pour tout type d’application
• Nous avons montré les applications console, fenêtres, asp.net et
webservices
Programmer en Visual Basic .NET alphorm.com™©
318. L’avenir …
• L’avenir de VB.Net est lié à celui de la plateforme
• Une utilisation de plus en plus large
• Tant sur mobiles que serveurs
Programmer en Visual Basic .NET alphorm.com™©