• Aucun résultat trouvé

Apprentissage du langage VB.NET

N/A
N/A
Protected

Academic year: 2022

Partager "Apprentissage du langage VB.NET"

Copied!
6
0
0

Texte intégral

(1)

APPRENTISSAGE DU LANGAGE VB.NET

Serge Tahé - ISTIA - Université d'Angers

Mars 2004

(2)

Introduction

VB.NET est un langage récent. Il a été disponible en versions beta depuis l’année 2000 avant d’être officiellement disponible en février 2002 en même temps que la plate-forme .NET de Microsoft à laquelle il est lié. VB.NET ne peut fonctionner qu’avec cet environnement d’exécution, environnement disponible pour le moment que sur les machines Windows NT, 2000 et XP.

Avec la plate-forme .NET, trois nouveaux langages sont apparus : C#, VB.VET, JSCRIPT.NET. C# est largement une « copie » de Java. VB.NET et JSCRIPT.NET sont des extensions de Visual basic et Jscript pour la plate-forme .NET. Celle-ci rend disponible aux programmes qui s’exécutent en son sein un ensemble très important de classes, classes très proches de celles que l’on trouve au sein des machines virtuelles Java. En première approximation, on peut dire que la plate-forme .NET est un environnement d’exécution analogue à celui d'une machine virtuelle Java. On peut noter cependant deux différences importantes :

• la plate-forme .NET ne s'exécute que sur les machines Windows alors que Java s'exécute sur différents OS (windows, unix, macintosh).

• la plate-forme .NET permet l'exécution de programmes écrits en différents langages. Il suffit que le compilateur de ceux-ci sache produire du code IL (Intermediate Language), code exécuté par la machine virtuelle .NET. Toutes les classes de .NET sont disponibles aux langages compatibles .NET ce qui tend à gommer les différences entre langages dans la mesure où les programmes utilisent largement ces classes. Le choix d'un langage .NET devient affaire de goût plus que de performances.

De la même façon que Java ne peut être ignoré, la plate-forme .NET ne peut l'être, à la fois à cause du parc très important de machines windows installées et de l'effort fait par Microsoft pour la promouvoir et l'imposer. Il semble que C# soit un bon choix pour démarrer avec .NET, notamment pour les programmeurs Java, tellement ces deux langages sont proches. Ensuite on pourra passer aisément de C# à VB.NET ou à un autre langage .NET. La syntaxe changera mais les classes .NET resteront les mêmes.

Contrairement aux apparences, le passage de VB à VB.NET est difficile. VB n'est pas un langage orienté objets alors que VB.NET l'est complètement. Le programmeur VB va donc être confronté à des concepts qu'il ne maîtrise pas. Il paraît plus simple d'affronter ceux-ci en oubliant ce qu'on sait de VB. Aussi, nous ne faisons que peu référence à VB dans la suite.

Ce document n'est pas un cours exhaustif. Il est destiné à des gens connaissant déjà la programmation et qui veulent découvrir VB.NET. Il reprend la structure du document "Introduction au langage C#" du même auteur afin de faciliter la comparaison entre les deux langages. En fait, j'ai utilisé ici des traducteurs automatiques de C# vers VB.NET. Sans être totalement parfaits, ces traducteurs font néanmoins 80 à 100% du travail selon les cas. On se rappellera donc, en lisant le code des programmes VB.NET qui vont suivre, que celui-ci a été d'abord généré par une machine puis remanié par moi-même si c'était nécessaire. On y rencontre ainsi des "tournures" de programmation qu'on n'aurait peut-être pas utiliser soi-même.

Les livres suivants m'ont aidé :

- Professional C# programming, Editions Wrox - C# et .NET, Gérard Leblanc, Editions Eyrolles

Ce sont deux excellents ouvrages dont je conseille la lecture. La traduction des programmes C# en VB.NET a été obtenue par un traducteur disponible à l'url (mars 2004) http://authors.aspalliance.com/aldotnet/examples/translate.aspx. Tout le reste a été obtenu avec la documentation de Visual studio.NET.

Serge Tahé, mars 2004

(3)

1.

LES BASES DU LANGAGE VB.NET ... 7

1.1 INTRODUCTION... 7

1.2 LESDONNÉESDE VB.NET... 7

1.2.1 LESTYPESDEDONNÉESPRÉDÉFINIS... 7

1.2.2 NOTATIONDESDONNÉESLITTÉRALES... 8

1.2.3 DÉCLARATIONDESDONNÉES...9

1.2.3.1 Rôle des déclarations... 9

1.2.3.2 Déclaration des constantes... 9

1.2.3.3 Déclaration des variables... 9

1.2.4 LESCONVERSIONSENTRENOMBRESETCHAÎNESDECARACTÈRES... 9

1.2.5 LESTABLEAUXDEDONNÉES... 11

1.3 LESINSTRUCTIONSÉLÉMENTAIRESDE VB.NET... 13

1.3.1 ECRITURESURÉCRAN...14

1.3.2 LECTUREDEDONNÉESTAPÉESAUCLAVIER... 14

1.3.3 EXEMPLED'ENTRÉES-SORTIES... 14

1.3.4 REDIRECTIONDES E/S... 15

1.3.5 AFFECTATIONDELAVALEURD'UNEEXPRESSIONÀUNEVARIABLE... 16

1.3.5.1 Liste des opérateurs...16

1.3.5.2 Expression arithmétique...16

1.3.5.3 Priorités dans l'évaluation des expressions arithmétiques... 18

1.3.5.4 Expressions relationnelles...18

1.3.5.5 Expressions booléennes... 19

1.3.5.6 Traitement de bits... 19

1.3.5.7 Opérateur associé à une affectation... 20

1.3.5.8 Priorité générale des opérateurs... 20

1.3.5.9 Les conversions de type... 20

1.4 LESINSTRUCTIONSDECONTRÔLEDUDÉROULEMENTDUPROGRAMME... 22

1.4.1 ARRÊT... 22

1.4.2 STRUCTUREDECHOIXSIMPLE... 22

1.4.3 STRUCTUREDECAS...23

1.4.4 STRUCTUREDERÉPÉTITION...23

1.4.4.1 Nombre de répétitions connu... 23

1.4.4.2 Nombre de répétitions inconnu... 24

1.4.4.3 Instructions de gestion de boucle... 25

1.5 LASTRUCTURED'UNPROGRAMME VB.NET... 25

1.6 COMPILATIONETEXÉCUTIOND'UNPROGRAMME VB.NET...27

1.7 L'EXEMPLE IMPOTS... 28

1.8 ARGUMENTSDUPROGRAMMEPRINCIPAL...30

1.9 LESÉNUMÉRATIONS...30

1.10 LAGESTIONDESEXCEPTIONS...32

1.11 PASSAGEDEPARAMÈTRESÀUNEFONCTION...34

1.11.1 PASSAGEPARVALEUR... 34

1.11.2 PASSAGEPARRÉFÉRENCE...35

2. CLASSES, STUCTURES, INTERFACES ... 36

2.1 L' OBJETPARL'EXEMPLE...36

2.1.1 GÉNÉRALITÉS...36

2.1.2 DÉFINITIONDELACLASSEPERSONNE... 36

2.1.3 LAMÉTHODEINITIALISE...37

2.1.4 L'OPÉRATEURNEW...37

2.1.5 LEMOTCLÉ ME... 38

2.1.6 UNPROGRAMMEDETEST... 38

2.1.7 UTILISERUNFICHIERDECLASSESCOMPILÉES (ASSEMBLY)...39

2.1.8 UNEAUTREMÉTHODEINITIALISE...40

2.1.9 CONSTRUCTEURSDELACLASSEPERSONNE...40

2.1.10 LESRÉFÉRENCESD'OBJETS... 42

2.1.11 LESOBJETSTEMPORAIRES... 43

2.1.12 MÉTHODESDELECTUREETD'ÉCRITUREDESATTRIBUTSPRIVÉS... 43

2.1.13 LESPROPRIÉTÉS...44

2.1.14 LESMÉTHODESETATTRIBUTSDECLASSE...46

(4)

2.1.15

PASSAGED'UNOBJETÀUNEFONCTION... 48 2.1.16

UNTABLEAUDEPERSONNES...49 2.2

L'HÉRITAGEPARL'EXEMPLE... 49 2.2.1

GÉNÉRALITÉS...49 2.2.2

CONSTRUCTIOND'UNOBJETENSEIGNANT... 51 2.2.3

SURCHARGED'UNEMÉTHODEOUD'UNEPROPRIÉTÉ... 53 2.2.4

LEPOLYMORPHISME... 54 2.2.5

REDÉFINITIONETPOLYMORPHISME...55 2.3

DÉFINIRUNINDEXEURPOURUNECLASSE... 57 2.4

LESSTRUCTURES... 63 2.5

LESINTERFACES...66 2.6

LESESPACESDENOMS... 70 2.7

L'EXEMPLE IMPOTS... 72 3.

CLASSES .NET D'USAGE COURANT ... 75 3.1

CHERCHERDEL'AIDEAVEC SDK.NET... 75 3.1.1

WINCV...75 3.2

CHERCHERDEL'AIDESURLESCLASSESAVEC VS.NET... 78 3.2.1

OPTION AIDE...78 3.2.2

AIDE/INDEX... 80 3.3

LACLASSE STRING... 81 3.4

LACLASSE ARRAY... 83 3.5

LACLASSE ARRAYLIST... 85 3.6

LACLASSE HASHTABLE... 87 3.7

LACLASSE STREAMREADER...91 3.8

LACLASSE STREAMWRITER... 92 3.9

LACLASSE REGEX... 93 3.9.1

VÉRIFIERQU'UNECHAÎNECORRESPONDÀUNMODÈLEDONNÉ... 95 3.9.2

TROUVERTOUSLESÉLÉMENTSD'UNECHAÎNECORRESPONDANTÀUNMODÈLE... 96 3.9.3

RÉCUPÉRERDESPARTIESD'UNMODÈLE... 97 3.9.4

UNPROGRAMMED'APPRENTISSAGE... 98 3.9.5

LAMÉTHODE SPLIT...99 3.10

LESCLASSES BINARYREADERET BINARYWRITER... 100 4.

INTERFACES GRAPHIQUES AVEC VB.NET ET VS.NET ... 104 4.1

LESBASESDESINTERFACESGRAPHIQUES... 104 4.1.1

UNEFENÊTRESIMPLE... 104 4.1.2

UNFORMULAIREAVECBOUTON... 105 4.2

CONSTRUIREUNEINTERFACEGRAPHIQUEAVEC VISUAL STUDIO.NET... 108 4.2.1

CRÉATIONINITIALEDUPROJET...108 4.2.2

LESFENÊTREDEL'INTERFACEDE VS.NET...110 4.2.3

EXÉCUTIOND'UNPROJET...111 4.2.4

LECODEGÉNÉRÉPAR VS.NET...112 4.2.5

COMPILATIONDANSUNEFENÊTREDOS... 113 4.2.6

GESTIONDESÉVÉNEMENTS...114 4.2.7

CONCLUSION...114 4.3

FENÊTREAVECCHAMPDESAISIE, BOUTONETLIBELLÉ... 115 4.3.1

CONCEPTIONGRAPHIQUE...115 4.3.2

GESTIONDESÉVÉNEMENTSD'UNFORMULAIRE... 118 4.3.3

UNEAUTREMÉTHODEPOURGÉRERLESÉVÉNEMENTS... 120 4.3.4

CONCLUSION...121 4.4

QUELQUESCOMPOSANTSUTILES...121 4.4.1

FORMULAIRE FORM... 121 4.4.2

ÉTIQUETTES LABELETBOÎTESDESAISIE TEXTBOX... 122 4.4.3

LISTESDÉROULANTES COMBOBOX...124 4.4.4

COMPOSANT LISTBOX... 125 4.4.5

CASESÀCOCHER CHECKBOX, BOUTONSRADIO BUTTONRADIO...128 4.4.6

VARIATEURS SCROLLBAR...128 4.5

ÉVÉNEMENTS SOURIS... 130 4.6

CRÉERUNEFENÊTREAVECMENU...133 4.7

COMPOSANTSNONVISUELS...136

(5)

4.7.1

BOÎTESDEDIALOGUE OPENFILEDIALOGET SAVEFILEDIALOG...137

4.7.2 BOÎTESDEDIALOGUE FONTCOLORET COLORDIALOG...141

4.7.3 TIMER...143

4.8 L'EXEMPLE IMPOTS... 145

5. GESTION D'ÉVÉNEMENTS ... 149

5.1 OBJETSDELEGATE...149

5.2 GESTIOND'ÉVÉNEMENTS... 150

5.2.1 DÉCLARATIOND'UNÉVÉNEMENT... 150

5.2.2 DÉFINIRLESGESTIONNAIRESD'UNÉVÉNEMENT... 150

5.2.3 DÉCLENCHERUNÉVÉNEMENT... 150

5.2.4 UNEXEMPLE...151

6. ACCÈS AUX BASES DE DONNÉES ... 155

6.1 GÉNÉRALITÉS... 155

6.2 LESDEUXMODESD'EXPLOITATIOND'UNESOURCEDEDONNÉES... 156

6.3 ACCÈSAUXDONNÉESENMODECONNECTÉ... 157

6.3.1 LESBASESDEDONNÉESDEL'EXEMPLE... 157

6.3.2 UTILISATIOND'UNPILOTE ODBC... 161

6.3.2.1 La phase de connexion...163

6.3.2.2 Émettre des requêtes SQL...163

6.3.2.3 Exploitation du résultat d'une requête SELECT... 164

6.3.2.4 Libération des ressources... 165

6.3.3 UTILISATIOND'UNPILOTE OLE DB... 165

6.3.4 MISEÀJOURD'UNETABLE... 167

6.3.5 IMPOTS...170

6.4 ACCÈSAUXDONNÉESENMODEDÉCONNECTÉ...174

7. LES THREADS D'EXÉCUTION ... 175

7.1 INTRODUCTION... 175

7.2 CRÉATIONDETHREADSD'EXÉCUTION... 176

7.3 INTÉRÊTDESTHREADS... 178

7.4 ACCÈSÀDESRESSOURCESPARTAGÉES...179

7.5 ACCÈSEXCLUSIFÀUNERESSOURCEPARTAGÉE... 181

7.6 SYNCHRONISATIONPARÉVÉNEMENTS...183

8. PROGRAMMATION TCP-IP ... 187

8.1 GÉNÉRALITÉS... 187

8.1.1 LESPROTOCOLESDEL'INTERNET...187

8.1.2 LEMODÈLE OSI... 187

8.1.3 LEMODÈLE TCP/IP...188

8.1.4 FONCTIONNEMENTDESPROTOCOLESDEL'INTERNET... 190

8.1.5 L'ADRESSAGEDANSL'INTERNET... 191

8.1.5.1 Les classes d'adresses IP... 192

8.1.5.2 Les protocoles de conversion Adresse Internet <--> Adresse physique... 193

8.1.6 LACOUCHERÉSEAUDITECOUCHE IP DEL'INTERNET... 193

8.1.6.1 Le routage... 194

8.1.6.2 Messages d'erreur et de contrôle... 194

8.1.7 LACOUCHETRANSPORT : LESPROTOCOLES UDP ET TCP...195

8.1.7.1 Le protocole UDP : User Datagram Protocol... 195

8.1.7.2 Le protocole TCP : Transfer Control Protocol... 195

8.1.8 LACOUCHE APPLICATIONS...195

8.1.9 CONCLUSION...196

8.2 GESTIONDESADRESSESRÉSEAU... 197

8.3 PROGRAMMATION TCP-IP... 199

8.3.1 GÉNÉRALITÉS...199

8.3.2 LESCARACTÉRISTIQUESDUPROTOCOLE TCP...200

(6)

Cliquez ici pour telecharger le PDF complet

Références

Documents relatifs

Then, in Section III, we propose the main stability results for a general class of impulsive systems with several aperiodic and asynchronous sequences of impulses and derive

Stepper based maskless microlithog- raphy using a liquid crystal display for massively parallel direct-write of binary and multilevel mi- crostructures.. Journal

Fig. 7: An Example of non-declared sponsored post: 1) A verified Mega influencer holding a box on her hand and promoting products. 2) The product page is tagged in the photo

Malgré le constat, largement partagé, de la nécessité pour la connaissance de ménager dans ses constructions des brèches pour l'imprévisible et l'irréductible,

Les philo- sophes de l’âge classique pensaient essentiellement à la question de la per- manence de l’être dans un corps qui vieillit et se transforme, et à un niveau plus abstrait,

L'hérésie pélagienne consiste, selon Albert le Grand, en une confusion entre la volonté humaine et la volonté divine, l'homme se faisant Dieu selon la volonté 19

Le probl`eme ´etudi´e a donc deux familles de solution : i a` basse vitesse, le d´epˆot r´esulte d’un compromis entre viscosit´e et capillarit´e, si bien qu’il est sensible `a

Les épreuves de la vie ne cesseront sans doute jamais de m’apprendre à être toujours plus attentive à ces bornes du quotidien que nous posons d’avance, et qu’elles ne