Alphorm.com - Formation programmer en Visual Basic .NET
-
Upload
alphormcom -
Category
Technology
-
view
2.240 -
download
11
description
Transcript of Alphorm.com - Formation programmer en Visual Basic .NET
Formation VB.NET
Présentation
Programmer en Visual Basic .NET alphorm.com™©
Formation VB.NET
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
Présentation du formateur• Fabien Brissonneau
• Email : [email protected]
• Consultant Concepteur et Formateur
• Missions d’architecture, de conception , de réalisation logicielles
• Fondateur de eiXa6
• Actuellement en mission sur un projet de gestion
Programmer en Visual Basic .NET alphorm.com™©
• 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/
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™©
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
Programmer en Visual Basic .NET alphorm.com™©
• Les opérateurs de VB.NET
• Les collections
• Le multithreading
• Winform
• Les méta-données
• ASP.NET
• WPF
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™©
Et maintenant …
Programmer en Visual Basic .NET alphorm.com™©
VB.NET
Présentation
Programmer en Visual Basic .NET alphorm.com™©
VB.NET
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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
Programmer en Visual Basic .NET alphorm.com™©
• Winform
• Les fichiers
• Gérer les exceptions
• Les bases de données
• Les méta-données
• ASP.NET
• WPF
Généralités
• Visual Studio
• Compatibilité VB6
• Le GAC
• Les espaces de nommage
Programmer en Visual Basic .NET alphorm.com™©
Langage orienté objets
• Penser orienté objet
• Classe et objets
• Les interfaces
Programmer en Visual Basic .NET alphorm.com™©
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™©
Le framework .NET
• Les collections
• Le multithreading
• Winform
• Les fichiers
Programmer en Visual Basic .NET alphorm.com™©
• Les bases de données
• WPF
ASP.NET
• Création d’un projet ASP.NET
• Le codebehind
• WebService
• Gérer les erreurs
Programmer en Visual Basic .NET alphorm.com™©
• Les contrôles
Structure du programme
Généralités
Programmer en Visual Basic .NET alphorm.com™©
Structure du programme
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan• Framework, Profils et Plateformes
• Bibliothèques de classes portables
• Les éléments d’une application .NET
� Types
� Classes
� Modules
Programmer en Visual Basic .NET alphorm.com™©
� Assemblies
• CTS, Metadonnées, Attributes
• ILDASM
• La mémoire : Garbage Collector, Finalize et IDisposable
• Résumé
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
Programmer en Visual Basic .NET alphorm.com™©
Xbox 360 -
Bibliothèque de classes portables
• Bibliothèques de classes utilisables avec plusieurs plateformes
Programmer en Visual Basic .NET alphorm.com™©
Elements de l’application .NET
• Types
� Encapsule les données
• Classes
• Modules
Programmer en Visual Basic .NET alphorm.com™©
� 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
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™©
ILDASM
• Le dés-assembleur peut lire l’assembly compilé
Programmer en Visual Basic .NET alphorm.com™©
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();
Programmer en Visual Basic .NET alphorm.com™©
• Il peut être sollicité par GC.Collect();
• Il est optimisé et gère des générations d’objets
Ce qu’on a couvert• Framework, Profils et Plateformes
• Bibliothèques de classes portables
• Les éléments d’une application .NET
� Types
� Classes
� Modules
Programmer en Visual Basic .NET alphorm.com™©
� Assemblies
• CTS, Metadonnées, Attributes
• ILDASM
• La mémoire : Garbage Collector, Finalize et IDisposable
Syntaxe de base
Généralités
Programmer en Visual Basic .NET alphorm.com™©
Syntaxe de base
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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
Programmer en Visual Basic .NET alphorm.com™©
• Les String
• Résumé
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™©
Les types primitifs
• Short, Int16, UInt16 : 2 octets
• Integer, Int32, UInt32 : 4 octets
• Long, Int64, UInt64 : 8 octets
• Single : 4 octets
Programmer en Visual Basic .NET alphorm.com™©
• Double : 8 octets
• Decimal : 16 octets
• Char, Byte et DateTime
Le contrôle du flux d’exécution
• Les conditions
� If Then Else
� Select Case
• Les boucles
While - End While
Programmer en Visual Basic .NET alphorm.com™©
� While - End While
� For -
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™©
Les String
• Différentes façons de créer les String
• SubString
• PadLeft et PadRight
• Split
Programmer en Visual Basic .NET alphorm.com™©
• Classe immuable
• Les constantes
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
Programmer en Visual Basic .NET alphorm.com™©
� Boucles
• Les types références
• Les String
Compatibilité VB6
Généralités
Programmer en Visual Basic .NET alphorm.com™©
Compatibilité VB6
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan• VB.NET est un nouveau langage
• Microsoft.VisualBasic
• Microsoft.VisualBasic.Compatibility.VB6
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
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™©
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
Programmer en Visual Basic .NET alphorm.com™©
• AppWinStyle, DateFormat, … Collection, Strings…
Microsoft.VisualBasic.Compatibility.VB6
• Référencé lors d’une mise à niveau de VB6 vers VB.NET
• Considérés comme obsolètes
• Pourrait évoluer dans les futures versions de VB.Net
Programmer en Visual Basic .NET alphorm.com™©
Ce qu’on a couvert
• VB.NET est un nouveau langage
• Microsoft.VisualBasic
• Microsoft.VisualBasic.Compatibility.VB6
Programmer en Visual Basic .NET alphorm.com™©
Manipuler le GAC
Généralités
Programmer en Visual Basic .NET alphorm.com™©
Manipuler le GAC
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
Le GAC
• C:\Windows\Assembly
• Ou C:\Windows\Microsoft NET\Assembly -> 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™©
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™©
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™©
Livrer dans le GAC
• Un répertoire dans c:\windows
• Recopier dans le répertoire
• Utiliser gacutil
Programmer en Visual Basic .NET alphorm.com™©
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™©
Espaces de nommage
Généralités
Programmer en Visual Basic .NET alphorm.com™©
Espaces de nommage
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan• Définition d’un espace de nommage
• Les espaces de nommage de .NET
• My
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
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™©
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
Programmer en Visual Basic .NET alphorm.com™©
• Importation valable aussi dans ASP.NET
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
Programmer en Visual Basic .NET alphorm.com™©
• Vous pouvez l’étendre …
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™©
Les conventions
Généralités
Programmer en Visual Basic .NET alphorm.com™©
Les conventions
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan• Les espaces de nommage
• Les classes
• Les méthodes
• Les champs
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
Les espaces de nommage
• Regroupement de classes …
• Par ensemble logique
• Par technologie
• Par entreprise
Programmer en Visual Basic .NET alphorm.com™©
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™©
Les méthodes
• Les traitements associés aux classes
• Un nom évocateur
• Un modificateur Sub ou Function
• Une visibilité
Programmer en Visual Basic .NET alphorm.com™©
• Des paramètres clairs
• Les parenthèses
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™©
Ce qu’on a couvert
• Les espaces de nommage
• Les classes
• Les méthodes
• Les champs
Programmer en Visual Basic .NET alphorm.com™©
Les options
Généralités
Programmer en Visual Basic .NET alphorm.com™©
Les options
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
Les paramètres de génération
• Le projet
• Le compilateur
Programmer en Visual Basic .NET alphorm.com™©
Les options de la ligne de commande
• Vbc.exe
Programmer en Visual Basic .NET alphorm.com™©
Les directives et leurs tests
• Compilation conditionnelle
Programmer en Visual Basic .NET alphorm.com™©
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™©
Concevoir et coder
Langage orienté objets
Programmer en Visual Basic .NET alphorm.com™©
Concevoir et coder
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
• Résumé
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™©
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é
Programmer en Visual Basic .NET alphorm.com™©
• Améliorer la lisibilité
• Favoriser la réutilisabilité
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™©
Encapsuler l’implémentation
• Utiliser les visibilités
� De privé à public
• Ne pas montrer les données
• Exposer plutôt des méthodes
Programmer en Visual Basic .NET alphorm.com™©
• Jouer avec les propriétés
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™©
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™©
• Utiliser le diagramme de classes
Méthodes et constructeurs
Langage orienté objets
Programmer en Visual Basic .NET alphorm.com™©
Méthodes et constructeurs
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan• Ecrire et utiliser une méthode
• Ecrire une propriété
• Ecrire un constructeur
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
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™©
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™©
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™©
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™©
La généralisation
Langage orienté objets
Programmer en Visual Basic .NET alphorm.com™©
La généralisation
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
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™©
qu’une classe existante, en l’enrichissant si besoin
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™©
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™©
� Et le spécifier dans la classe fille
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™©
• Essentiel dans l’extension des systèmes
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™©
Les interfaces
Langage orienté objets
Programmer en Visual Basic .NET alphorm.com™©
Les interfaces
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
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 à :
Programmer en Visual Basic .NET alphorm.com™©
• Elle sert à :
� Définir un contrat
� Définir un type
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
Programmer en Visual Basic .NET alphorm.com™©
� Possède des constructeurs
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™©
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™©
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™©
Object
Langage orienté objets
Programmer en Visual Basic .NET alphorm.com™©
Object
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan• La classe Object
• Les méthodes de Object
• Le polymorphisme avec Object
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
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 :
Programmer en Visual Basic .NET alphorm.com™©
� Un comportement commun minimum
� Des manipulations standards
Les méthodes de Objet
• Redéfinissable ou pas
• Protected : Finalize, MemberwiseClone
• Et publiques :
Programmer en Visual Basic .NET alphorm.com™©
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™©
Ce qu’on a couvert
• La classe Object
• Les méthodes de Object
• Le polymorphisme avec Object
Programmer en Visual Basic .NET alphorm.com™©
Le type runtime
Langage orienté objets
Programmer en Visual Basic .NET alphorm.com™©
Le type runtime
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
La méthode GetType
• Une méthode de Object
Programmer en Visual Basic .NET alphorm.com™©
Les opérateurs Is et IsNot
• Utilisable avec GetType et TypeOf
Programmer en Visual Basic .NET alphorm.com™©
L’opérateur TypeOf
• Détection du type d’un objet référencé
Programmer en Visual Basic .NET alphorm.com™©
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™©
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™©
Les membres partagés
Langage orienté objets
Programmer en Visual Basic .NET alphorm.com™©
Les membres partagés
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan• Les champs Shared
• Les méthodes Shared
• Un modèle classique : le Singleton
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
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™©
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™©
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™©
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™©
Les délégués
Délégués et Events
Programmer en Visual Basic .NET alphorm.com™©
Les délégués
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
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™©
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)
Programmer en Visual Basic .NET alphorm.com™©
End Sub
Appel de la méthode
Dim d As unefonction
‘
d = AddressOf Affiche
‘on
Programmer en Visual Basic .NET alphorm.com™©
d.Invoke("coucou")
‘et n fait une invocation dynamique
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™©
Les « Events »
Délégués et Events
Programmer en Visual Basic .NET alphorm.com™©
Les « Events »
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan• Emetteur de l’événement
• Récepteur de l’événement
• Emission/Réception
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
Emetteur de l’événement
Public Class Emetteur
Public Event Click(ByVal msg As String)
Public Sub Declenche()
Programmer en Visual Basic .NET alphorm.com™©
RaiseEvent Click("Bouton cliqué")
End Sub
End Class
Récepteur de l’événement
Public Class RecepteurPrivate WithEvents c As Emetteur
Public Sub New(ByVal cc As Emetteur)c = cc
Programmer en Visual Basic .NET alphorm.com™©
c = ccEnd Sub
Public Sub ClickGere(ByVal s As String) Handles c.ClickConsole.WriteLine("Je gère le clic sur le bouton " & s)
End Sub End Class
Emission/Réception
Dim c As Emetteur = New Emetteur
Dim gc As Recepteur = New Recepteur(c)
Programmer en Visual Basic .NET alphorm.com™©
Dim gc As Recepteur = New Recepteur(c)
c.Declenche()
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™©
Les opérateurs arithmétiques
Les opérateurs
Programmer en Visual Basic .NET alphorm.com™©
Les opérateurs arithmétiques
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan• Opérateurs arithmétiques
• Opérateurs de comparaisons
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
Opérateurs arithmétiques
Programmer en Visual Basic .NET alphorm.com™©
Opérateurs de comparaisons
Programmer en Visual Basic .NET alphorm.com™©
Ce qu’on a couvert
• Opérateurs arithmétiques
• Opérateurs de comparaisons
Programmer en Visual Basic .NET alphorm.com™©
Indexeurs et conversions
Les opérateurs
Programmer en Visual Basic .NET alphorm.com™©
Indexeurs et conversions
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan• Un indexeur
• Les conversions
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
Un indexeur
Programmer en Visual Basic .NET alphorm.com™©
Les conversions
Programmer en Visual Basic .NET alphorm.com™©
Ce qu’on a couvert
• Un indexeur
• Les conversions
Programmer en Visual Basic .NET alphorm.com™©
Collections séquentielles
Les collections
Programmer en Visual Basic .NET alphorm.com™©
Collections séquentielles
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
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™©
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")
Programmer en Visual Basic .NET alphorm.com™©
dinosaurs.Add("Compsognathus")
For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur)
…
Next
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™©
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™©
Collections associatives
Les collections
Programmer en Visual Basic .NET alphorm.com™©
Collections associatives
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
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™©
System.Collections.Generic
• Dictionary (Of K, V) est l’archétype des associatifs
• Implémenté en hashtable
• Non thread-safe
Programmer en Visual Basic .NET alphorm.com™©
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™©
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™©
Créer des threads
Les threads
Programmer en Visual Basic .NET alphorm.com™©
Créer des threads
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan• System.Threading.Thread
• Thread.Join
• Start/Abort/Sleep
• Une autre classe : BackgroundWorker
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
System.Threading.Thread
Programmer en Visual Basic .NET alphorm.com™©
Thread.Join()
Programmer en Visual Basic .NET alphorm.com™©
Start, Sleep, Abort
• Start : démarre
• Abort : tente d’arrêter
• Sleep : bloque
Programmer en Visual Basic .NET alphorm.com™©
Autre classe
• System.ComponentModel.BackgroundWorker
� Démarre une tâche
� On écoute des événements : progression, fin, …
Programmer en Visual Basic .NET alphorm.com™©
Ce qu’on a couvert
• System.Threading.Thread
• Thread.Join
• Start/Abort/Sleep
• Une autre classe : BackgroundWorker
Programmer en Visual Basic .NET alphorm.com™©
Synchroniser des threads
Les threads
Programmer en Visual Basic .NET alphorm.com™©
Synchroniser des threads
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
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™©
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™©
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™©
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™©
Créer un formulaire
Winforms
Programmer en Visual Basic .NET alphorm.com™©
Créer un formulaire
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan• Créer un formulaire
• L’objet formulaire
• Les contrôles dans le formulaire
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
Créer un formulaire
• Utiliser l’éditeur graphique
• Les formulaires Windows sont décrits en VB.NET
Programmer en Visual Basic .NET alphorm.com™©
L’objet formulaire
• Une classe dérivant de Form
• Des méthodes
• Des événements
Programmer en Visual Basic .NET alphorm.com™©
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™©
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™©
Traiter les événements
Winforms
Programmer en Visual Basic .NET alphorm.com™©
Traiter les événements
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
Traiter le Load du formulaire
• Après le constructeur du formulaire
• Handles Load
Programmer en Visual Basic .NET alphorm.com™©
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™©
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™©
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™©
Utiliser le DataBinding
Winforms
Programmer en Visual Basic .NET alphorm.com™©
Utiliser le DataBinding
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan• Pour lier un élément graphique à une donnée
• Ouvrir un second formulaire
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
Le databinding
• Une source de données
• Un élément graphique
• Le lien entre les deux
Programmer en Visual Basic .NET alphorm.com™©
Ouvrir un second formulaire
• Gérer un événement
• Créer un objet formulaire
• Le rendre visible
Programmer en Visual Basic .NET alphorm.com™©
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™©
Le système de fichiers
Les fichiers
Programmer en Visual Basic .NET alphorm.com™©
Le système de fichiers
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan
• FileInfo/DirectoryInfo ou File/Directory
• Parcours d’un répertoire
• Examen d’un fichier
• FileSystemWatcher
Programmer en Visual Basic .NET alphorm.com™©
• FileSystemWatcher
• Résumé
FileInfo/DirectoryInfo ou File/Directory
Programmer en Visual Basic .NET alphorm.com™©
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™©
Examen d’un fichier
• FileInfo (ou bien File)
Programmer en Visual Basic .NET alphorm.com™©
FileSystemWatcher
• Gère des événements sur modification d’un répertoire
Programmer en Visual Basic .NET alphorm.com™©
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™©
• FileSystemWatcher
Ouvrir et lire un fichier
Les fichiers
Programmer en Visual Basic .NET alphorm.com™©
Ouvrir et lire un fichier
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan
• Les flux
• Ouvrir un fichier binaire/texte
• Lire un fichier binaire/texte
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
• Résumé
Les flux
Programmer en Visual Basic .NET alphorm.com™©
Ouvrir un fichier binaire/texte
• Créer explicitement chaque objet
Programmer en Visual Basic .NET alphorm.com™©
• Passer par des méthodes de fabrication
Lire un fichier binaire/texte
• Le fichier texte : encodage ASCII
Programmer en Visual Basic .NET alphorm.com™©
• Le fichier binaire
Ce qu’on a couvert
• Les flux
• Ouvrir un fichier binaire/texte
• Lire un fichier binaire/texte
Programmer en Visual Basic .NET alphorm.com™©
La sérialisation
Les fichiers
Programmer en Visual Basic .NET alphorm.com™©
La sérialisation
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
• Résumé
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™©
Le flux binaire
• System.Runtime.Serialisation.Formatters.Binary.BinaryFormatter
Dim sw As FileStreamsw = File.Create("documents.dat")
Dim xs As BinaryFormatter
Programmer en Visual Basic .NET alphorm.com™©
Dim xs As BinaryFormatterxs = New BinaryFormatter()
xs.Serialize(sw, obj) ‘ Obj est la référence sur l’objet à sérialiser
sw.Close()
Le flux texte XML
• System.Xml.Serialization.XmlSerializer
• System.Runtime.Serialisation.Formatters.Soap.SoapFormatter
Dim sw As FileStreamsw = File.Create("documents.dat")
Programmer en Visual Basic .NET alphorm.com™©
Dim xs As SoapFormatterxs = New SoapFormatter()
xs.Serialize(sw, obj) ‘ Obj est la référence sur l’objet à sérialiser
sw.Close()
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™©
Gérer les exceptions
Les exceptions
Programmer en Visual Basic .NET alphorm.com™©
Gérer les exceptions
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
• Résumé
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
Programmer en Visual Basic .NET alphorm.com™©
• Le framework communique les erreurs via des exceptions
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™©
Mot-clé Throw pour lever une exception
• Signale une erreur
• Plutôt code bas-niveau
Programmer en Visual Basic .NET alphorm.com™©
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™©
Créer ses propres exceptions
Les exceptions
Programmer en Visual Basic .NET alphorm.com™©
Créer ses propres exceptions
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
• Résumé
Une classe d’exception
• Simplement hériter de Exception ou ApplicationException
Programmer en Visual Basic .NET alphorm.com™©
Les méthodes de Exception
• Message
• ToString
Programmer en Visual Basic .NET alphorm.com™©
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™©
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™©
Mode connecté
Les bases de données
Programmer en Visual Basic .NET alphorm.com™©
Mode connecté
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan
• Les classes essentielles
• Récupération de la connexion
• DbCommand
• DbDataReader
Programmer en Visual Basic .NET alphorm.com™©
• DbDataReader
• Résumé
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
Programmer en Visual Basic .NET alphorm.com™©
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
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™©
DbCommand
Programmer en Visual Basic .NET alphorm.com™©
DbDataReader
• Table de résultat et curseur
Programmer en Visual Basic .NET alphorm.com™©
Ce qu’on a couvert
• Les classes essentielles
• Récupération de la connexion
• DbCommand
• DbDataReader
Programmer en Visual Basic .NET alphorm.com™©
• DbDataReader
Mode déconnecté
Les bases de données
Programmer en Visual Basic .NET alphorm.com™©
Mode déconnecté
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan
• Les classes essentielles
• DataSet et DbDataAdapter
• Modèle commun
• Paramétrer le fournisseur
Programmer en Visual Basic .NET alphorm.com™©
• Paramétrer le fournisseur
• Résumé
Les classes essentielles
Classe Description
DataSet Contient des DataTables
DataTable Contient colonnes et lignes
DataRow Valeur dans la table
Programmer en Visual Basic .NET alphorm.com™©
DataColumn Colonne dans la table
DataRelation Lien entre deux tables
Constraint Règle de colonne
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™©
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™©
Paramétrer le fournisseur
• App.config ou Web.config
• Trouver la factory
Programmer en Visual Basic .NET alphorm.com™©
• Utiliser la factory
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™©
• Paramétrer le fournisseur
Utiliser les attributes
Les méta-données
Programmer en Visual Basic .NET alphorm.com™©
Utiliser les attributes
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan
• Placer les attributs
• Paramètres et cibles d’attributs
• Utilisations courantes des attributs
• Quelques attributs
Programmer en Visual Basic .NET alphorm.com™©
• Quelques attributs
• Résumé
Placer les attributs
• Avant une classe
• Avant une méthode
Programmer en Visual Basic .NET alphorm.com™©
• Avant des paramètres
Paramètres et cibles d’attributs
• Paramètres
Programmer en Visual Basic .NET alphorm.com™©
• Cibles
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é
Programmer en Visual Basic .NET alphorm.com™©
• Décrire un assembly
• Désigner les classes à sérialiser
• Définir les conditions de sécurité
• …
Quelques attributs
• Globaux
� AssemblyName, AssemblyVersion
• Obsolete
• Conditional
Programmer en Visual Basic .NET alphorm.com™©
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™©
• Quelques attributs
Créer un attribut
Les méta-données
Programmer en Visual Basic .NET alphorm.com™©
Créer un attribut
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan
• Créer un nouvel attribut
• Utiliser un attribut
• Découvrir un attribut
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
• Résumé
Créer un nouvel attribut
• Créer une classe héritant de Attribute
Programmer en Visual Basic .NET alphorm.com™©
Utiliser un attribut
• Si usage unique
• Ou multiple
Programmer en Visual Basic .NET alphorm.com™©
Découvrir un attribut
Programmer en Visual Basic .NET alphorm.com™©
Ce qu’on a couvert
• Créer un nouvel attribut
• Utiliser un attribut
• Découvrir un attribut
Programmer en Visual Basic .NET alphorm.com™©
Créer un projet
ASP.NET
Programmer en Visual Basic .NET alphorm.com™©
Créer un projet
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
• Résumé
Les projets Site Web
• Ajouté depuis VS 2005
• Structure de répertoire qui reflète le site
Programmer en Visual Basic .NET alphorm.com™©
Un projet Web Forms
• Une structure standard
• Un master fournissant une présentation standardisée
Programmer en Visual Basic .NET alphorm.com™©
Un projet MVC
• Améliore les séparations des responsabilités, la testabilité
Programmer en Visual Basic .NET alphorm.com™©
Un projet Web API
• Version Microsoft des services RESTful
Programmer en Visual Basic .NET alphorm.com™©
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™©
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™©
Créer un formulaire
ASP.NET
Programmer en Visual Basic .NET alphorm.com™©
Créer un formulaire
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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
Programmer en Visual Basic .NET alphorm.com™©
• Le code de rappel
• L’exécution de la page
• Résumé
La création du projet
Programmer en Visual Basic .NET alphorm.com™©
L’utilisation des onglets de l’éditeur VS
Programmer en Visual Basic .NET alphorm.com™©
Le formatage du texte
Programmer en Visual Basic .NET alphorm.com™©
L’ajout de contrôles dans le formulaire
Programmer en Visual Basic .NET alphorm.com™©
L’examen du code HTML
Programmer en Visual Basic .NET alphorm.com™©
Le code de rappel
Programmer en Visual Basic .NET alphorm.com™©
L’exécution de la page
Programmer en Visual Basic .NET alphorm.com™©
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™©
• L’exécution de la page se fait très simplement, cela favorise le déboggage
Utiliser le codebehind
ASP.NET
Programmer en Visual Basic .NET alphorm.com™©
Utiliser le codebehind
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
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™©
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™©
Affichage du contenu de la base
• Une ListBox, chargée dans le Load
Programmer en Visual Basic .NET alphorm.com™©
Navigation entre pages
• Une page = une classe
• Gestion d’événements à la façon traditionnelle
Programmer en Visual Basic .NET alphorm.com™©
Validation d’un formulaire
Programmer en Visual Basic .NET alphorm.com™©
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™©
Global.asax et HttpModule
ASP.NET
Programmer en Visual Basic .NET alphorm.com™©
Global.asax et HttpModule
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan
•L’application
•Les modules HTTP
•Résumé
Programmer en Visual Basic .NET alphorm.com™©
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™©
Les modules HTTP
• Web.config
Programmer en Visual Basic .NET alphorm.com™©
• Créer un module HTTP, lui faire hériter de IHttpModule
• Réaliser Init et Dispose
• Code commun à plusieurs applications
Ce qu’on a couvert• L’application
• Les modules HTTP
Programmer en Visual Basic .NET alphorm.com™©
Webservices
ASP.NET
Programmer en Visual Basic .NET alphorm.com™©
Webservices
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan
•Créer un service web
•Consommer un service web
•Résumé
Programmer en Visual Basic .NET alphorm.com™©
Créer un service web
• Page .asmx
• Attribut WebService
• Attribut WebMethod
Programmer en Visual Basic .NET alphorm.com™©
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™©
Ce qu’on a couvert• Créer un service web
• Consommer un service web
Programmer en Visual Basic .NET alphorm.com™©
Gérer les erreurs
ASP.NET
Programmer en Visual Basic .NET alphorm.com™©
Gérer les erreurs
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan
•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™©
•Résumé
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™©
La page jaune d’erreur runtime
• Affichée lors d’une connexion à distance
Programmer en Visual Basic .NET alphorm.com™©
Une page d’erreur personnalisée
• Une page qui est adaptée à l’application
• Utilisée conjointement avec « RemoteOnly »
Programmer en Visual Basic .NET alphorm.com™©
• Il est possible d’avoir plusieurs pages d’erreur, par code
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™©
Les contrôles serveur
ASP.NET
Programmer en Visual Basic .NET alphorm.com™©
Les contrôles serveur
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan
•Créer un contrôle utilisateur
•Modifier le rendu du contrôle
•Emettre un événement
Programmer en Visual Basic .NET alphorm.com™©
•Le rôle de viewstate
•Résumé
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™©
Modifier le rendu contrôle
• Réécrire RenderContent
• Générer du HTML
• Eventuellement utiliser HtmlTextWriter
Programmer en Visual Basic .NET alphorm.com™©
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™©
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™©
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™©
Les contrôles de validation
ASP.NET
Programmer en Visual Basic .NET alphorm.com™©
Les contrôles de validation
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan
•Les différents contrôles de validation
•Utilisation des contrôles de validation
•Résumé
Programmer en Visual Basic .NET alphorm.com™©
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™©
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™©
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™©
Les scriptlets
ASP.NET
Programmer en Visual Basic .NET alphorm.com™©
Les scriptlets
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan
• Les blocs de code incorporé
• Les affichages d’expressions
• Les directives
• Les liaisons de données
Programmer en Visual Basic .NET alphorm.com™©
• Les liaisons de données
• Les générateurs d’expressions
• Les commentaires
• Résumé
Les blocs de code incorporé
• <% … %>
• Placer du code dans le HTLM
• Pour compatibilité avec ASP
Programmer en Visual Basic .NET alphorm.com™©
Les affichages d’expressions
• <%= … %>
• Equivalent d’un seul Response.Write
Programmer en Visual Basic .NET alphorm.com™©
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
Programmer en Visual Basic .NET alphorm.com™©
• @Register : enregistre un préfixe de contrôle utilisateur
• @Master : page maître
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™©
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™©
Les commentaires
• Les commentaire côté serveur
Programmer en Visual Basic .NET alphorm.com™©
Ce qu’on a couvert
• Les blocs de code incorporé
• Les affichages d’expressions
• Les directives
• Les liaisons de données
Programmer en Visual Basic .NET alphorm.com™©
• Les liaisons de données
• Les générateurs d’expressions
• Les commentaires
Web.config
ASP.NET
Programmer en Visual Basic .NET alphorm.com™©
Web.config
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan
•Les fichiers de config
•Sections
•Résumé
Programmer en Visual Basic .NET alphorm.com™©
Les fichiers de config
• Machine.config
• Web.config global
• Web.config de l’application
Programmer en Visual Basic .NET alphorm.com™©
Les sections
• Compilation :
• Custom errors
• Authentification :
Programmer en Visual Basic .NET alphorm.com™©
• Chaînes de connexion :
Ce qu’on a couvert• Les fichiers de config
• Sections
Programmer en Visual Basic .NET alphorm.com™©
Le formulaire WPF
WPF
Programmer en Visual Basic .NET alphorm.com™©
Le formulaire WPF
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan
• L’éditeur graphique
• Le formulaire en XML
• Les contrôles WPF
• Résumé
Programmer en Visual Basic .NET alphorm.com™©
• Résumé
L’éditeur graphique
• Un outil de création semblable à Windows Form
Programmer en Visual Basic .NET alphorm.com™©
Le formulaire en XML
• Le formulaire est exporté en XML
• Dialecte XAML
Programmer en Visual Basic .NET alphorm.com™©
Les contrôles WPF
• Blend
Programmer en Visual Basic .NET alphorm.com™©
Ce qu’on a couvert
• L’éditeur graphique
• Le formulaire en XML
• Les contrôles WPF
Programmer en Visual Basic .NET alphorm.com™©
Utiliser le databinding
WPF
Programmer en Visual Basic .NET alphorm.com™©
Utiliser le databinding
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan
• Le databinding
• Binding entre éléments graphiques
• Données vers Contrôle
• Binding birectionnel
Programmer en Visual Basic .NET alphorm.com™©
• Binding birectionnel
• Résumé
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™©
Binding entre éléments graphiques
• Binding entre deux propriétés Text
Programmer en Visual Basic .NET alphorm.com™©
Données vers contrôle
Programmer en Visual Basic .NET alphorm.com™©
Mise à jour
Programmer en Visual Basic .NET alphorm.com™©
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™©
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™©
• Binding birectionnel
Conclusion
VB.NET
Programmer en Visual Basic .NET alphorm.com™©
Conclusion
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Contact : [email protected]
Plan
• Nous avons présenté VB.NET
• Langage universel
• L’avenir
Programmer en Visual Basic .NET alphorm.com™©
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™©
• Manipule les mêmes concepts que son voisin C#
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™©
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™©