Upload
alphormcom
View
2.240
Download
11
Embed Size (px)
DESCRIPTION
La formation complète est disponible ici: http://www.alphorm.com/tutoriel/formation-en-ligne-visual-basic-net Cette formation VB.NET va vous faire découvrir ce langage de programmation qui hérite de Visual Basic, mais est totalement intégré au Framework .NET. Vous verrez comment mettre en œuvre les concepts orientés objets en VB.NET, ce qui est une garantie de robustesse de vos applications. Fabien Brissonneau vous présentera les caractéristiques propres à ce langage, comme les délégués, les events, les opérateurs, qui vous permettront d’écrire un code efficace et bien organisé. Ensuite il abordera quelques briques du Framework .NET, qui sont quasi indissociables du langage de programmation, et qui vous fournissent la base sur laquelle vous allez appuyer votre application. Connaître le Framework, au moins dans ses grandes lignes, est indispensable. Par ailleurs, nous verrons comment gérer les erreurs, en s’intégrant au mécanisme d’exceptions du Framework .NET. Enfin, VB.NET vous permettant de construire plusieurs types d’applications, vous mettrez en œuvre différents projets, de la console, à l’application Web.
Citation preview
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™©