Alphorm.com - Formation programmer en Visual Basic .NET

Preview:

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

• Consultant Concepteur et Formateur

• Missions d’architecture, de conception , de réalisation logicielles

• Fondateur de eiXa6

• Actuellement en mission sur un projet de gestion

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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 : fabien.brissonneau@gmail.com

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™©

Recommended