Présentation 
Formation VB.NET 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alph...
Plan 
• Présentation du formateur 
• Qu’est ce que VB.NET ? 
• Le plan de formation 
• Les liens utiles 
Programmer en Vis...
Présentation du formateur 
• Fabien Brissonneau 
• Email : fabien.brissonneau@gmail.com 
• Consultant Concepteur et Format...
Qu’est-ce que VB.NET ? 
• Langage Microsoft .NET (comme C#, F#, …) 
• S’appuie sur le framework .NET 
• Reprend en partie ...
Contenu 
• Généralités 
• Langage orienté objet 
• Les délégués et les 
événements 
• Les fichiers 
• Gérer les exceptions...
Les liens utiles 
• Microsoft MSDN : 
 http://msdn.microsoft.com/en-us/vstudio/hh388573.aspx 
• Visual Studio : 
 http://m...
Et maintenant … 
Programmer en Visual Basic .NET alphorm.com™©
Présentation 
VB.NET 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphorm.com/fo...
Plan 
• Généralités 
• Langage orienté objet 
• Les délégués et les événements 
• Les opérateurs de VB.NET 
• Les collecti...
Généralités 
• Visual Studio 
• Compatibilité VB6 
• Le GAC 
• Les espaces de nommage 
Programmer en Visual Basic .NET alp...
Langage orienté objets 
• Penser orienté objet 
• Classe et objets 
• Les interfaces 
Programmer en Visual Basic .NET alph...
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 ....
Le framework .NET 
• Les collections 
• Le multithreading 
• Winform 
• Les fichiers 
• Les bases de données 
• WPF 
Progr...
ASP.NET 
• Création d’un projet ASP.NET 
• Le codebehind 
• WebService 
• Gérer les erreurs 
• Les contrôles 
Programmer e...
Généralités 
Structure du 
programme 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://ww...
Plan 
• Framework, Profils et Plateformes 
• Bibliothèques de classes portables 
• Les éléments d’une application .NET 
 T...
Framework, Profils, Plateformes 
Plateformes Versions 
.Net Framework .Net 4 et +, 4.03 et +,4.5 
SilverLight Silverlight ...
Bibliothèque de classes portables 
• Bibliothèques de classes utilisables avec plusieurs plateformes 
Programmer en Visual...
Elements de l’application .NET 
• Types 
 Encapsule les données 
• Classes 
• Modules 
 Contient le IL, compilé par le CLR...
CTS, Métadonneés et attributes 
• Common Type System garantit l’interopérabilité entre langages 
• Les méta données sont c...
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 e...
Ce qu’on a couvert 
• Framework, Profils et Plateformes 
• Bibliothèques de classes portables 
• Les éléments d’une applic...
Généralités 
Syntaxe de base 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphor...
Plan 
• Variables : déclaration et typage 
• Les types primitifs 
• Le contrôle du flux d’exécution 
 Conditions : If Then...
Variables et déclarations 
• Il faut déclarer les variables 
• Il faut typer les variables 
• Sous le contrôle des options...
Les types primitifs 
• Short, Int16, UInt16 : 2 octets 
• Integer, Int32, UInt32 : 4 octets 
• Long, Int64, UInt64 : 8 oct...
Le contrôle du flux d’exécution 
• Les conditions 
 If Then Else 
 Select Case 
• Les boucles 
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 Colle...
Les String 
• Différentes façons de créer les String 
• SubString 
• PadLeft et PadRight 
• Split 
• Classe immuable 
• Le...
Ce qu’on a couvert 
• Variables : déclaration et typage 
• Les types primitifs 
• Le contrôle du flux d’exécution 
 Condit...
Généralités 
Compatibilité VB6 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alph...
Plan 
• VB.NET est un nouveau langage 
• Microsoft.VisualBasic 
• Microsoft.VisualBasic.Compatibility.VB6 
• Résumé 
Progr...
VB.Net est un nouveau langage 
• Langage orienté objets 
• Basé sur le framework .NET 
• Une syntaxe de base VB 
• MAIS de...
Microsoft.VisualBasic 
• Encapsule des fonctions, énumérations et constantes VB6 
• Considérés comme sûrs à utiliser dans ...
Microsoft.VisualBasic.Compatibility.VB6 
• Référencé lors d’une mise à niveau de VB6 vers VB.NET 
• Considérés comme obsol...
Ce qu’on a couvert 
• VB.NET est un nouveau langage 
• Microsoft.VisualBasic 
• Microsoft.VisualBasic.Compatibility.VB6 
P...
Généralités 
Manipuler le GAC 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alpho...
Plan 
• Le GAC 
• Générer un assembly privé 
• Générer un assembly partagé 
• Livrer dans le GAC 
• Résumé 
Programmer en ...
Le GAC 
• C:WindowsAssembly 
• Ou C:WindowsMicrosoft NETAssembly - V4.0 
• Un répertoire qui contient les DLL utilisées su...
Générer un assembly privé 
• Un projet correspond à un assembly 
• La DLL doit être dans le répertoire du client 
• Livrai...
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...
Livrer dans le GAC 
• Un répertoire dans c:windows 
• Recopier dans le répertoire 
• Utiliser gacutil 
Programmer en Visua...
Ce qu’on a couvert 
• Le GAC 
• Générer un assembly privé 
• Générer un assembly partagé 
• Livrer dans le GAC 
Programmer...
Généralités 
Espaces de nommage 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alp...
Plan 
• Définition d’un espace de nommage 
• Les espaces de nommage de .NET 
• My 
• Résumé 
Programmer en Visual Basic .N...
Définition d’un espace de nommage 
• Bloc de code, nommé 
• Isole les types, classes, fonctions … 
• Permet une organisati...
Les espaces de nommage .NET 
• Les espaces de nommage sont importés 
• Importation implicite par la boîte de projet 
• Ali...
My 
• Pas un vrai espace de nommage 
• Donne un accès rapide à certains objets importants 
• Application, Computer, Forms,...
Ce qu’on a couvert 
• Définition d’un espace de nommage 
• Les espaces de nommage de .NET 
• My 
Programmer en Visual Basi...
Généralités 
Les conventions 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphor...
Plan 
• Les espaces de nommage 
• Les classes 
• Les méthodes 
• Les champs 
• Résumé 
Programmer en Visual Basic .NET alp...
Les espaces de nommage 
• Regroupement de classes … 
• Par ensemble logique 
• Par technologie 
• Par entreprise 
Programm...
Les classes 
• Les types que vous manipulez 
• Un nom clair, définissant l’objectif de votre classe 
• Un regroupement de ...
Les méthodes 
• Les traitements associés aux classes 
• Un nom évocateur 
• Un modificateur Sub ou Function 
• Une visibil...
Les champs 
• Les variables utilisées dans les classes 
• Un nom bien choisi 
• Un type adapté 
• Une visibilité 
Programm...
Ce qu’on a couvert 
• Les espaces de nommage 
• Les classes 
• Les méthodes 
• Les champs 
Programmer en Visual Basic .NET...
Généralités 
Les options 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphorm.co...
Plan 
• Les paramètres de compilation du projet 
• Les options en ligne de commande 
• Les directives de compilation et le...
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 com...
Langage orienté objets 
Concevoir et coder 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : htt...
Plan 
• Les objectifs de l’orienté objets 
• Mettre au même endroit données et traitements 
• Penser interactions entre ob...
Les objectifs de l’orienté objets 
• Favoriser la maintenabilité de l’application 
• Améliorer la réutilisabilité des comp...
Données et traitements 
• Dans une classe : 
 Les données : les champs 
 Les traitements : les méthodes 
• Assurer la cohé...
Penser interactions entre objets 
• Les objets interagissent 
• Ils se connaissent via locales, paramètres ou associations...
Encapsuler l’implémentation 
• Utiliser les visibilités 
 De privé à public 
• Ne pas montrer les données 
• Exposer plutô...
Utiliser le diagramme de classes 
• Le diagramme de classe UML 
• Donne une vue globale de votre application 
• Permet de ...
Ce qu’on a couvert 
• Les objectifs de l’orienté objets 
• Mettre au même endroit données et traitements 
• Penser interac...
Langage orienté objets 
Méthodes et 
constructeurs 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
For...
Plan 
• Ecrire et utiliser une méthode 
• Ecrire une propriété 
• Ecrire un constructeur 
• Résumé 
Programmer en Visual B...
Ecrire et utiliser une méthode 
• Une méthode est soit Sub, soit Function 
• Possède ou non des paramètres 
• A une visibi...
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 visibili...
Ecrire un constructeur 
• Une méthode d’initialisation 
• Existe par défaut si personne n’en a créé 
• Peut avoir des para...
Ce qu’on a couvert 
• Ecrire et utiliser une méthode 
• Ecrire une propriété 
• Ecrire un constructeur 
Programmer en Visu...
Langage orienté objets 
La généralisation 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http...
Plan 
• Définition de la généralisation 
• Conséquence d’héritage 
• La redéfinition des méthodes 
• Le polymorphisme 
• R...
Définition de la généralisation 
• Une relations statique entre classes 
• La classe mère : super-classe, classe de base 
...
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...
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 ...
Le polymorphisme 
• Le mécanisme permet de déclencher une méthode : 
 Qui doit exister sur la classe mère 
 Qui est redéfi...
Ce qu’on a couvert 
• Définition de la généralisation 
• Conséquence d’héritage 
• La redéfinition des méthodes 
• Le poly...
Langage orienté objets 
Les interfaces 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://...
Plan 
• Définition des interfaces 
• Remarque sur les classes abstraites 
• Implémenter une interface 
• Le polymorphisme ...
Définition d’une interface 
• Une interface : 
 Déclare des méthodes, sans corps 
 Ne peut pas être instanciée 
 Ne possèd...
Remarque sur les classes abstraites 
• Une classe abstraite est une classe qui ne peut pas être instanciée 
• Une classe a...
Implémenter une interface 
• Une classe peut implémenter une interface : 
 Elle doit redéfinir chaque méthode 
• Une class...
Le polymorphisme avec les interfaces 
• Il faut redéfinir les méthodes prévues par l’interface 
• On peut référencer un ob...
Ce qu’on a couvert 
• Définition des interfaces 
• Remarque sur les classes abstraites 
• Implémenter une interface 
• Le ...
Langage orienté objets 
Object 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alph...
Plan 
• La classe Object 
• Les méthodes de Object 
• Le polymorphisme avec Object 
• Résumé 
Programmer en Visual Basic ....
La classe Object 
• Classe mère de toutes les classes 
• On en hérite directement ou indirectement 
• Possède quelques mét...
Les méthodes de Objet 
• Redéfinissable ou pas 
• Protected : Finalize, MemberwiseClone 
• Et publiques : 
Programmer en V...
Le polymorphisme avec Object 
• Manipuler n’importe quel objets VB.NET en tant que Object 
• Un code quasi universel, très...
Ce qu’on a couvert 
• La classe Object 
• Les méthodes de Object 
• Le polymorphisme avec Object 
Programmer en Visual Bas...
Langage orienté objets 
Le type runtime 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http:/...
Plan 
• La méthode GetType() 
• Les opérateurs Is et IsNot 
• L’opérateur TypeOf 
• La fonction TryCast 
• Résumé 
Program...
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...
Ce qu’on a couvert 
• La méthode GetType() 
• Les opérateurs Is et IsNot 
• L’opérateur TypeOf 
• La fonction TryCast 
Pro...
Langage orienté objets 
Les membres partagés 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : h...
Plan 
• Les champs Shared 
• Les méthodes Shared 
• Un modèle classique : le Singleton 
• Résumé 
Programmer en Visual Bas...
Les champs Shared 
• Mot-clé Shared 
• Une valeur commune à tous les objets de la classe 
• Peut être de n’importe quelle ...
Les méthodes Shared 
• Mot-clé Shared 
• Méthode commune à tous les objets de la classe 
• Méthode appelée sur la classe 
...
Un modèle classique : le Singleton 
• Un accès global 
• Une création à la demande 
• Une garantie de l’unicité de 
l’inst...
Ce qu’on a couvert 
• Les champs Shared 
• Les méthodes Shared 
• Un modèle classique : le Singleton 
Programmer en Visual...
Délégués et Events 
Les délégués 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.al...
Plan 
• Appeler une fonction sans la connaître 
• Déclaration d’un délégué 
• Appel de la méthode 
• Résumé 
Programmer en...
Appeler une fonction sans la connaître 
• Une partie de l’application doit déclencher une méthode 
• Cette méthode est sit...
Déclaration d’un délégué 
Delegate Sub unefonction(ByVal s As String) 
Sub Affiche(ByVal s As String) 
Console.WriteLine(V...
Appel de la méthode 
Dim d As unefonction 
‘ 
d = AddressOf Affiche 
‘on 
d.Invoke(coucou) 
‘et n fait une invocation dyna...
Ce qu’on a couvert 
• Appeler une fonction sans la connaître 
• Déclaration d’un délégué 
• Appel de la méthode 
Programme...
Délégués et Events 
Les « Events » 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www....
Plan 
• Emetteur de l’événement 
• Récepteur de l’événement 
• Emission/Réception 
• Résumé 
Programmer en Visual Basic .N...
Emetteur de l’événement 
Public Class Emetteur 
Public Event Click(ByVal msg As String) 
Public Sub Declenche() 
RaiseEven...
Récepteur de l’événement 
Public Class Recepteur 
Private WithEvents c As Emetteur 
Public Sub New(ByVal cc As Emetteur) 
...
Emission/Réception 
Dim c As Emetteur = New Emetteur 
Dim gc As Recepteur = New Recepteur(c) 
c.Declenche() 
Programmer en...
Ce qu’on a couvert 
• Emetteur de l’événement 
• Récepteur de l’événement 
• Emission/Réception 
Programmer en Visual Basi...
Les opérateurs 
Les opérateurs 
arithmétiques 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : ...
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™...
Les opérateurs 
Indexeurs et 
conversions 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http...
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™©
Les collections 
Collections séquentielles 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : htt...
Plan 
• Les classes génériques 
• Fonctionnement de List(Of T) 
• List(Of T) et prédicats 
• Résumé 
Programmer en Visual ...
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 para...
Fonctionnement de List(Of T) 
Dim dinosaurs As New List(Of String) 
dinosaurs.Add(Tyrannosaurus) 
dinosaurs.Add(Amargasaur...
List(Of T) et prédicats 
• List. FindAll(Pred) 
• Accept une méthode en paramètre 
 Par délégué 
• Une méthode anonyme 
Pr...
Ce qu’on a couvert 
• Les classes génériques 
• Fonctionnement de List(Of T) 
• List(Of T) et prédicats 
Programmer en Vis...
Les collections 
Collections associatives 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http...
Plan 
• System.Collections : Hashtable 
• System.Collections.Generic : Dictionary (Of K, V) 
• Collections triées : Sorted...
System.Collection 
• Collections non génériques 
• Une collection contient des Object 
• Hashtable représente le tableau a...
System.Collections.Generic 
• Dictionary (Of K, V) est l’archétype des associatifs 
• Implémenté en hashtable 
• Non threa...
Collection triée : SortedDictionary 
• SortedDictionary ( Of K, V) 
• Implémenté comme un arbre binaire équilibré 
• Les c...
Ce qu’on a couvert 
• System.Collections : Hashtable 
• System.Collections.Generic : Dictionary (Of K, V) 
• Collections t...
Les threads 
Créer des threads 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alph...
Plan 
• System.Threading.Thread 
• Thread.Join 
• Start/Abort/Sleep 
• Une autre classe : BackgroundWorker 
• Résumé 
Prog...
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 alpho...
Autre classe 
• System.ComponentModel.BackgroundWorker 
 Démarre une tâche 
 On écoute des événements : progression, fin, ...
Ce qu’on a couvert 
• System.Threading.Thread 
• Thread.Join 
• Start/Abort/Sleep 
• Une autre classe : BackgroundWorker 
...
Les threads 
Synchroniser des threads 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://w...
Plan 
• Le problème des accès simultanés 
• La synchronisation par attente d’un événement 
• La synchronisation par sectio...
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 ...
Synchronisation par événement 
• Il faut mettre le thread en attente sur un signalement 
• Un autre thread va signaler 
• ...
La synchronisation par section critique 
• SyncLock 
• Doit s’utiliser sur un type référence uniquement 
• Empêche un Thre...
Ce qu’on a couvert 
• Le problème des accès simultanés 
• La synchronisation par attente d’un événement 
• La synchronisat...
Winforms 
Créer un formulaire 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alpho...
Plan 
• Créer un formulaire 
• L’objet formulaire 
• Les contrôles dans le formulaire 
• Résumé 
Programmer en Visual Basi...
Créer un formulaire 
• Utiliser l’éditeur graphique 
• Les formulaires Windows sont décrits en VB.NET 
Programmer en Visua...
L’objet formulaire 
• Une classe dérivant de Form 
• Des méthodes 
• Des événements 
Programmer en Visual Basic .NET alpho...
Les contrôles de formulaire 
• Nombreux, disposés dans la boîte à outils 
• Et des composants non graphiques 
Programmer e...
Ce qu’on a couvert 
• Créer un formulaire 
• L’objet formulaire 
• Les contrôles dans le formulaire 
Programmer en Visual ...
Winforms 
Traiter les événements 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.al...
Plan 
• Traiter le Load du formulaire 
• Gérer un événement sur un contrôle 
• Réagir à la sélection sur une liste 
• Résu...
Traiter le Load du formulaire 
• Après le constructeur du formulaire 
• Handles Load 
Programmer en Visual Basic .NET alph...
Gérer un événement sur un contrôle 
• Associer le contrôle au gestionnaire 
 Par la feuille de propriétés 
 En double-cliq...
Réagir à la sélection sur une liste 
• Associer l’événement 
• Détecter l’item sélectionner 
• Réagir 
Programmer en Visua...
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...
Winforms 
Utiliser le DataBinding 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.a...
Plan 
• Pour lier un élément graphique à une donnée 
• Ouvrir un second formulaire 
• Résumé 
Programmer en Visual Basic ....
Le databinding 
• Une source de données 
• Un élément graphique 
• Le lien entre les deux 
Programmer en Visual Basic .NET...
Ouvrir un second formulaire 
• Gérer un événement 
• Créer un objet formulaire 
• Le rendre visible 
Programmer en Visual ...
Ce qu’on a couvert 
• Pour lier un élément graphique à une donnée 
• Ouvrir un second formulaire 
Programmer en Visual Bas...
Les fichiers 
Le système de fichiers 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://ww...
Plan 
• FileInfo/DirectoryInfo ou File/Directory 
• Parcours d’un répertoire 
• Examen d’un fichier 
• FileSystemWatcher 
...
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...
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 
• FileS...
Les fichiers 
Ouvrir et lire un fichier 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http:/...
Plan 
• Les flux 
• Ouvrir un fichier binaire/texte 
• Lire un fichier binaire/texte 
• Résumé 
Programmer en Visual Basic...
Les flux 
Programmer en Visual Basic .NET alphorm.com™©
Ouvrir un fichier binaire/texte 
• Créer explicitement chaque objet 
• Passer par des méthodes de fabrication 
Programmer ...
Lire un fichier binaire/texte 
• Le fichier texte : encodage ASCII 
• Le fichier binaire 
Programmer en Visual Basic .NET ...
Ce qu’on a couvert 
• Les flux 
• Ouvrir un fichier binaire/texte 
• Lire un fichier binaire/texte 
Programmer en Visual B...
Les fichiers 
La sérialisation 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alph...
Plan 
• Le flux de sérialisation et les contraintes 
• Le flux binaire 
• Le flux texte XML 
• Résumé 
Programmer en Visua...
Le flux de sérialisation 
• Arrange des objets dans un flux 
• Les classes correspondantes doivent être « Serializable » 
...
Le flux binaire 
• System.Runtime.Serialisation.Formatters.Binary.BinaryFormatter 
Dim sw As FileStream 
sw = File.Create(...
Le flux texte XML 
• System.Xml.Serialization.XmlSerializer 
• System.Runtime.Serialisation.Formatters.Soap.SoapFormatter ...
Ce qu’on a couvert 
• Le flux de sérialisation et les contraintes 
• Le flux binaires 
• Le flux texte XML 
Programmer en ...
Les exceptions 
Gérer les exceptions 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://ww...
Plan 
• Intérêt des exceptions 
•Mots-clés Try/Catch/Finally pour gérer une exception 
•Mot-clé Throw pour lever une excep...
Intérêt des exceptions 
• Gérer les erreurs exceptionnelles 
• Remonte la pile des appels 
• Sépare le code nominal du cod...
Mots-clés Try/Catch/Finally 
• Encadre le code qui peut lever une exception 
• Finally optionnel 
• Plusieurs Catch possib...
Mot-clé Throw pour lever une exception 
• Signale une erreur 
• Plutôt code bas-niveau 
Programmer en Visual Basic .NET al...
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 l...
Les exceptions 
Créer ses propres 
exceptions 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : ...
Plan 
• Une classe d’exception hérite de Exception 
• Les méthodes de Exception 
• Réinterpréter les exceptions 
• Résumé ...
Une classe d’exception 
• Simplement hériter de Exception ou ApplicationException 
Programmer en Visual Basic .NET alphorm...
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’ut...
Ce qu’on a couvert 
• Une classe d’exception hérite de Exception 
• Les méthodes de Exception 
• Réinterpréter les excepti...
Les bases de données 
Mode connecté 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www...
Plan 
• Les classes essentielles 
• Récupération de la connexion 
• DbCommand 
• DbDataReader 
• Résumé 
Programmer en Vis...
Les classes essentielles 
Classes Description 
SqlCommand, OleDbCommand, 
ODBCCommand 
Encapsulation de commandes 
SQL ou ...
Récupération de la connexion 
• La forme de la chaîne de connexion dépend du fournisseur 
Programmer en Visual Basic .NET ...
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...
Les bases de données 
Mode déconnecté 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://w...
Plan 
• Les classes essentielles 
• DataSet et DbDataAdapter 
•Modèle commun 
• Paramétrer le fournisseur 
• Résumé 
Progr...
Les classes essentielles 
Classe Description 
DataSet Contient des DataTables 
DataTable Contient colonnes et lignes 
Data...
Dataset et DBDataAdapter 
• DataSet a une existence en mémoire 
• Peut être généré sous forme XML 
Programmer en Visual Ba...
Modèle commun des fournisseurs 
• Eviter de dépendre de Sql- ou OleDb- X 
• Donner une chaîne de caractères qui représente...
Paramétrer le fournisseur 
• App.config ou Web.config 
• Trouver la factory 
• Utiliser la factory 
Programmer en Visual B...
Ce qu’on a couvert 
• Les classes essentielles 
• DataSet et DbDataAdapter 
•Modèle commun 
• Paramétrer le fournisseur 
P...
Les méta-données 
Utiliser les attributes 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http...
Plan 
• Placer les attributs 
• Paramètres et cibles d’attributs 
• Utilisations courantes des attributs 
• Quelques attri...
Placer les attributs 
• Avant une classe 
• Avant une méthode 
• Avant des paramètres 
Programmer en Visual Basic .NET alp...
Paramètres et cibles d’attributs 
• Paramètres 
• Cibles 
Programmer en Visual Basic .NET alphorm.com™©
Utilisations courantes 
• WebMethod pour les services web 
• Décrire l’interopération avec le code natif 
• Décrire les pr...
Quelques attributs 
• Globaux 
 AssemblyName, AssemblyVersion 
• Obsolete 
• Conditional 
Programmer en Visual Basic .NET ...
Ce qu’on a couvert 
• Placer les attributs 
• Paramètres et cibles d’attributs 
• Utilisations courantes des attributs 
• ...
Les méta-données 
Créer un attribut 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www...
Plan 
• Créer un nouvel attribut 
• Utiliser un attribut 
• Découvrir un attribut 
• Résumé 
Programmer en Visual Basic .N...
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 Basi...
ASP.NET 
Créer un projet 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphorm.co...
Plan 
• Les projets site Web 
• Un projet WebForms 
• Un projet MVC 
• Un projet Web API 
• L’exécution du projet Web 
• R...
Les projets Site Web 
• Ajouté depuis VS 2005 
• Structure de répertoire qui reflète le site 
Programmer en Visual Basic ....
Un projet Web Forms 
• Une structure standard 
• Un master fournissant une présentation standardisée 
Programmer en Visual...
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 Websi...
Ce qu’on a couvert 
• Il y a plusieurs types de projets en rapport avec le Web 
• Un projet Web organise les fichiers de f...
ASP.NET 
Créer un formulaire 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphor...
Plan 
• La création du projet application Web ASP.NET 
• Utilisation des onglets de l’éditeur VS 
• Le formatage du texte,...
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 pe...
ASP.NET 
Utiliser le codebehind 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alp...
Plan 
• Utilisation du projet Web Forms généré par défaut 
• Affichage d’un contenu de base de données 
• Navigation entre...
Utilisation du projet Web Forms 
• Dans les fichiers générés : 
 Le HTML est dans les fichier aspx 
 Le code VB.NET est da...
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 Ba...
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 
• Na...
ASP.NET 
Global.asax et 
HttpModule 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www...
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...
Les modules HTTP 
• Web.config 
• Créer un module HTTP, lui faire hériter de IHttpModule 
• Réaliser Init et Dispose 
• Co...
Ce qu’on a couvert 
• L’application 
• Les modules HTTP 
Programmer en Visual Basic .NET alphorm.com™©
ASP.NET 
Webservices 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphorm.com/fo...
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.c...
Consommer un service web 
• Ajout de références de services 
• La génération d’un proxy 
Programmer en Visual Basic .NET a...
Ce qu’on a couvert 
• Créer un service web 
• Consommer un service web 
Programmer en Visual Basic .NET alphorm.com™©
ASP.NET 
Gérer les erreurs 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphorm....
Plan 
• La page jaune d’erreur d’exception 
• La page jaune d’erreur runtime 
• La page d’erreur personnalisée 
•Résumé 
P...
La page jaune d’erreur d’exception 
• Une page avec tous les détails 
• Affichée au développeur 
Programmer en Visual Basi...
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 » ...
Ce qu’on a couvert 
• La page jaune d’erreur d’exception 
• La page jaune d’erreur runtime 
• La page d’erreur personnalis...
ASP.NET 
Les contrôles serveur 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alph...
Plan 
•Créer un contrôle utilisateur 
•Modifier le rendu du contrôle 
•Emettre un événement 
• Le rôle de viewstate 
•Résu...
Créer un contrôle utilisateur 
• Une classe héritant de WebControl 
• Propriété Text et méthode RenderControl 
Programmer ...
Modifier le rendu contrôle 
• Réécrire RenderContent 
• Générer du HTML 
• Eventuellement utiliser HtmlTextWriter 
Program...
Emettre un événement 
• Un contrôle peut proposer un événement 
• Cet événement peut signaler une modification de la propr...
Le rôle de ViewState 
• L’état du contrôle est perdu entre 2 post 
• ViewState est un dictionnaire qui stocke l’état du co...
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...
ASP.NET 
Les contrôles de 
validation 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://w...
Plan 
• Les différents contrôles de validation 
•Utilisation des contrôles de validation 
•Résumé 
Programmer en Visual Ba...
Les différents types de contrôles 
• 6 contrôles de validation 
• Propriétés ErrorMessage et ControlToValidate 
• Peuvent ...
Utilisation des contrôles 
• Créer un contrôle classique 
• Préparer la validation du formulaire 
• Placer les contrôles d...
Ce qu’on a couvert 
• Les différents contrôles de validation 
• Utilisation des contrôles de validation 
Programmer en Vis...
ASP.NET 
Les scriptlets 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphorm.com...
Plan 
• Les blocs de code incorporé 
• Les affichages d’expressions 
• Les directives 
• Les liaisons de données 
• Les gé...
Les blocs de code incorporé 
• % … % 
• Placer du code dans le HTLM 
• Pour compatibilité avec ASP 
Programmer en Visual B...
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 cont...
Les liaisons de données 
• % # …% 
• Lie une propriété de contrôle de serveur et une source de données 
Programmer en Visu...
Les générateurs d’expressions 
• Définit la valeur de propriété comme issue de la configuration 
Programmer en Visual Basi...
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 don...
ASP.NET 
Web.config 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphorm.com/for...
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 ....
Les sections 
• Compilation : 
• Custom errors 
• Authentification : 
• Chaînes de connexion : 
Programmer en Visual Basic...
Ce qu’on a couvert 
• Les fichiers de config 
• Sections 
Programmer en Visual Basic .NET alphorm.com™©
WPF 
Le formulaire WPF 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphorm.com/...
Plan 
• L’éditeur graphique 
• Le formulaire en XML 
• Les contrôles WPF 
• Résumé 
Programmer en Visual Basic .NET alphor...
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 al...
WPF 
Utiliser le databinding 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphor...
Plan 
• Le databinding 
• Binding entre éléments graphiques 
• Données vers Contrôle 
• Binding birectionnel 
• Résumé 
Pr...
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’autr...
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 Text...
Ce qu’on a couvert 
• Le databinding 
• Binding entre éléments graphiques 
• Données vers Contrôle 
• Binding birectionnel...
VB.NET 
Conclusion 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphorm.com/foru...
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 ...
VB.NET est un langage universel 
• VB.Net s’appuie sur la puissance du framework .Net 
• Il peut être utilisé pour tout ty...
L’avenir … 
• L’avenir de VB.Net est lié à celui de la plateforme 
• Une utilisation de plus en plus large 
• Tant sur mob...
Prochain SlideShare
Chargement dans…5
×

Alphorm.com - Formation programmer en Visual Basic .NET

8 940 vues

Publié le

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.

Publié dans : Technologie
0 commentaire
4 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
8 940
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4 798
Actions
Partages
0
Téléchargements
171
Commentaires
0
J’aime
4
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Alphorm.com - Formation programmer en Visual Basic .NET

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

×