Section courante

A propos

Section administrative du site

 Langage  Installation  Elément  Tutoriel  Programmation  IDE  Annexe  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
Rust
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Visual Studio .NET 2003
Visual Studio 2005
Visual Studio 2008
Visual Studio 2010
Visual Studio 2012
Visual Studio 2013
Visual Studio 2015
Visual Studio 2017
Les remarques
Les opérateurs
Les instructions conditionnelles
Les instructions de boucles
Type de données élémentaires
Définition de variables
Définition de procédures et de fonctions
Référence de mots réservés (mots clefs)
Référence de procédures et de fonctions
Référence de classes
Principes de base de la programmation
Le cadre d'application .NET avec Visual Basic .NET
Bonjour
Astronomie
Base de données
Biochimie
Colorimétrie
Finance
Géographie
Géométrie
Gouvernement
Histoire
Mathématique
Médicale
Météorologie
Océanographie
Sport
Temps
Trigonométrie
Validation
Phase lunaire
SQL Server
Calcul du calcium corrigé
Calcul le taux d'alcoolémie
Boite en 3D de couleur RVB
IPaymt/Interet
NPer
PPaymt/Principal
Distance en Km entre deux longitudes et latitudes
Aire d'un cercle
Aire d'une surface de prisme rectangulaire
Aire d'un triangle
Distance entre deux points
Treillis
Taxe de vente canadienne
Chiffre romain
Exp
Factoriel
Fibonacci
Log
Nombre premier
Odd
Random
Sqrt
Triangle Pascal
Hauteur utérine
Unité de mesure
Fréquence des vagues
Hockey
Année bissextile
Date de la Pâque
FirstDayOfMonth
ArcCos
ArcSin
Atn/ATan/ArcTan/ArcTangente
Cos
Sin
Courriel
Visual Studio
Visual Studio .NET
Visual Studio .NET 2003
Visual Studio 2005
Visual Studio 2008
Visual Studio 2010
Visual Studio 2012
Visual Studio 2013
Visual Studio 2015
Visual Studio 2017
Visual Studio 2019
Visual Studio 2022
Équivalence de «ARRAY»
Windows
Préface
Notes légal
Dictionnaire
Recherche

Le cadre d'application .NET avec Visual Basic .NET

Le cadre d'application .NET est une itération unifié de la plate-forme Microsoft pour le développement de logiciels basés sur des composantes. Il fournit des avancées fondamentales dans les services d'exécution pour les logiciels d'application. Il prend également en charge le développement d'applications pouvant être exemptes de dépendances sur le matériel, le système d'exploitation et le compilateur de langage.

CLI (Common Language Infrastructure) et CLR (Common Language Runtime)

Au coeur du cadre d'application .NET se trouve un nouveau mécanisme de chargement et d'exécution de programmes et de gestion de leurs interactions. Ce mécanisme est décrit dans le CLI (Common Language Infrastructure), une spécification pour un environnement d'exécution permettant aux composantes logiciels de :

Bien que la spécification CLI ait été créée par Microsoft, elle a depuis été soumise à l'organisation de normalisation ECMA, en ayant désormais la responsabilité et le contrôle. L'interface de ligne de commande n'est qu'une spécification - elle doit être mise en oeuvre pour être utile. Une mise en oeuvre de l'interface de ligne de commande est appelée CLR (Common Language Runtime). Le CLI spécifie comment le code exécutable est chargé, exécuté et géré. La partie du CLR effectuant les tâches de chargement, d'exécution et de gestion des applications .NET est appelée le système d'exécution virtuelle VES (Virtual Execution System). Le code exécuté par le VES est appelé code géré. La CLI étend considérablement les concepts existant dans le modèle d'objet de composante (COM) de Microsoft. Comme sa caractéristique principale, COM spécifie comment les interfaces d'objet sont disposées en mémoire. Toute composante capable de créer et d'utiliser cette mise en page peut partager des données avec d'autres composantes faisant de même. Le COM était un grand pas en avant lors de son introduction vers 1992, mais il a ses défauts. Par exemple, malgré son nom, le COM n'a en fait aucun concept d'objet - uniquement des interfaces d'objets. Par conséquent, COM ne peut pas prendre en charge le passage de types natifs d'une composante à un autre.

Système de type commun (CTS)

La spécification CLI définit un système de type riche surpassant de loin les capacités de COM. C'est ce qu'on appelle le CTS (Common Type System). Le CTS définit au niveau de l'exécution comment les types sont déclarés et utilisés. Auparavant, les compilateurs de langage contrôlaient la création et l'utilisation des types, y compris leur disposition en mémoire. Cela entraînait des problèmes lorsqu'une composante écrite dans une langage tentait de transmettre des données à une composante écrit dans une autre langage. Quiconque a écrit du code Visual Basic 6 pour appeler des fonctions API de Windows, par exemple, ou ayant essayé de transmettre un tableau JavaScript à une composante écrite en Visual Basic 6 ou C++, est conscient de ce problème. Il appartenait au développeur de convertir les données pour qu'elles soient compréhensibles pour la composante récepteur. Le CTS élimine ce problème en fournissant les fonctionnalités suivantes :

Espaces de noms

Les espaces de noms permet de regrouper les types associés. Ils ne sont pas simplement un concept Visual Basic .NET; ils sont également utilisés par le CLR et par d'autres langages ciblant la plateforme .NET. Il est important de garder à l'esprit que pour le CLR, un espace de noms n'est qu'une partie d'un nom de type complet, et rien de plus.

Portions du CLI

La spécification CLI reconnaît que le CLR ne peut pas être mise en oeuvre dans la même mesure sur toutes les plates-formes. Par exemple, la version du CLR mise en oeuvre sur un téléphone portable ne sera pas aussi polyvalente que celle mise en oeuvre sur Windows 2000 ou Windows XP. Pour résoudre ce problème, le CLI définit un ensemble de bibliothèques. Chaque bibliothèque contient un ensemble de classes mettant en oeuvre une certaine partie de la fonctionnalité de l'interface de ligne de commande. En outre, le CLI définit des profils. Un profil est un ensemble de bibliothèques devant être mise en oeuvres sur une plateforme donnée. Les bibliothèques définies par la CLI sont :

Nom Description
Runtime Infrastructure Library Cette bibliothèque permet de fournir les services de base nécessaires pour compiler et exécuter une application ciblant le CLI.
Base Class Library (BCL) Cette bibliothèque permet de fournir les services d'exécution nécessaires à la plupart des langages de programmation modernes. Entre autres choses, les types de données primitifs sont définis dans cette bibliothèque.
Network Library Cette bibliothèque permet de fournir des services de mise en réseau simples.
Reflection Library Cette bibliothèque permet d'examiner les informations de type au moment de l'exécution et d'appeler des membres de types en fournissant le nom du membre au moment de l'exécution, plutôt qu'au moment de la compilation.
XML Library Cette bibliothèque permet de fournir un analyseur XML simple.
Floating Point Library Cette bibliothèque permet de prendre en charge les types et opérations à virgule flottante.
Extended Array Library Cette bibliothèque permet de prendre en charge les tableaux multidimensionnels.

Les profils définis par la CLI sont :

Nom Description
Kernel Profile Ce profil permet de définir la fonctionnalité minimale de tout système revendiqué comme une mise en oeuvre du CLI. Les CLR conformes au profil de noyau doivent mettre en oeuvre la bibliothèque de classes de base et la bibliothèque d'infrastructure d'exécution.
Compact Profile Ce profil permet d'inclure les fonctionnalités du profil de noyau, ainsi que la bibliothèque réseau, la bibliothèque de réflexion et la bibliothèque XML. Il est prévu qu'une mise en oeuvre du profil compact puisse être légère, tout en fournissant suffisamment de fonctionnalités pour être utile.

Des profils supplémentaires seront définis dans les futures versions de la spécification CLI. Toute mise en oeuvre donnée de la CLI est libre de mettre en oeuvre plus que les fonctionnalités spécifiées par ces profils minimaux. Par exemple, une mise en oeuvre donnée peut prendre en charge le profil compact mais également la bibliothèque à virgule flottante. Le cadre d'application .NET sur Windows 2000 prend en charge toutes les bibliothèques CLI, ainsi que des bibliothèques supplémentaires non définies par le CLI.

Notez que l'interface de ligne de commande n'inclut pas les bibliothèques de classes majeures telles que Windows Forms, ASP.NET et ADO.NET. Il s'agit de bibliothèques de classes spécifiques à Microsoft pour le développement d'applications sur les plates-formes Windows. Les applications dépendant de ces bibliothèques ne seront pas portables vers d'autres mise en oeuvres de l'interface de ligne de commande à moins que Microsoft rend ces bibliothèques de classes disponibles sur ces autres mises en oeuvres.

Modules et Assembly

Un module est un fichier .exe ou .dll. Un Assembly est un ensemble d'un ou de plusieurs modules formant ensemble une application. Si l'application est entièrement contenue dans un fichier .exe, c'est un Assembly à un seul module. Si le .exe est toujours déployé avec deux fichiers .dll et que l'on pense que les trois fichiers constituent une unité inséparable, alors les trois modules forment ensemble un Assembly, mais aucun d'eux ne le fait tout seul. Si le produit est une bibliothèque de classes existant dans un fichier .dll, ce fichier .dll unique est un Assembly. Pour le dire dans les termes de Microsoft, l'Assembly est l'unité de déploiement dans .NET.

Un Assembly est plus qu'une manière abstraite de penser à des ensembles de modules. Lorsqu'un Assembly est déployé, un (et un seul) des modules de l'Assembly doit contenir le manifeste d'Assembly, contenant des informations sur l'Assembly dans son ensemble, y compris la liste des modules contenus dans l'Assembly, la version de l'Assembly, sa culture,... Le compilateur de ligne de commande et le compilateur Visual Studio .NET créent par défaut des Assembly à module unique.

Les limites de l'Assembly affectent la résolution du type. Lorsqu'un fichier source est compilé, le compilateur doit résoudre les noms de type utilisés dans le fichier en définitions de types. Pour les types définis dans le même projet source, le compilateur obtient les définitions du code qu'il compile. Pour les types définis ailleurs, le compilateur doit savoir où trouver les définitions. Cela se fait en référençant les Assembly contenant les définitions de type compilées. Lorsque le compilateur de ligne de commande est utilisé, le paramètre /reference identifie les Assembly contenant les types utilisés dans le projet en cours de compilation. Un Assembly porte le même nom que le module contenant le manifeste d'Assembly, à l'exception de l'extension de fichier. Dans certains cas, cependant, un Assembly est spécifié en donnant le nom complet du module contenant le manifeste d'Assembly. Par exemple, pour compiler une application utilisant la classe System.Drawing.Point, vous pouvez utiliser la ligne de commande suivante :

vbc MaSource.vb /reference:System.Drawing.dll

La documentation du compilateur de ligne de commande indique que le paramètre du commutateur de référence est un Assembly. Ce n'est pas tout à fait exact. Le paramètre est le nom du module contenant le manifeste d'Assembly pour un Assembly. Si plusieurs Assembly doivent être référencés, vous pouvez tous les lister dans le même paramètre /reference, séparés par des virgules, comme ceci :

vbc MaSource.vb /reference:System.Drawing.dll,System.Windows.Forms.dll

Le compilateur de ligne de commande Visual Basic .NET référence automatiquement deux Aassembly : mscorlib.dll, contenant la plupart des types trouvés dans l'espace de noms System; et Microsoft.VisualBasic.dll, contenant les types trouvés dans l'espace d'entreposage Microsoft.VisualBasic.



PARTAGER CETTE PAGE SUR
Dernière mise à jour : Vendredi, le 1er janvier 2021