1. 1
Chapitre 1 : Programmation événementielle
1.1 Introduction
La programmation événementielle (ou programmation par événements) est un type de
programmation fondé sur les événements. Elle s'oppose à la Programmation séquentielle. Le
programme sera principalement défini par ses réactions aux différents événements qui
peuvent se produire ; l'ordre d'exécution des différentes opérations n'est pas strictement
déterminé à l'avance.
La programmation événementielle peut également être définie comme une technique
d'architecture logicielle où l'application a une boucle principale divisée en deux sections : la
première section détecte les événements, la seconde les gère.
La programmation événementielle peut être réalisée dans n'importe quel langage de
programmation, bien que la tâche soit plus aisée dans les langages de haut niveau. Certains
environnements de développement intégré (IDE) permettent de générer automatiquement le
code des tâches récurrentes dans la gestion des événements. Parmi les environnements de
développement intégré on trouve Visual Studio, SharpDevelop, MonoDevelop,….
1.2 Visual Studio
Microsoft Visual Studio est une suite de logiciels de développement pour Windows conçu par
Microsoft. Visual Studio est un ensemble complet d'outils de développement permettant de
générer des applications Web ASP.NET, des Services Web XML, des applications
bureautiques et des applications mobiles. Visual Basic, Visual C++, Visual C# et Visual J#
utilisent tous le même environnement de développement intégré, qui leur permet de partager
des outils et facilite la création de solutions faisant appel à plusieurs langages. Par ailleurs, ces
langages permettent de mieux tirer parti des fonctionnalités du Framework .NET.
1.2.1 Framework .NET
Le .NET Framework est un framework qui peut être utilisé par le système d'exploitation
Microsoft Windows. Le framework .NET s'appuie sur la norme Common Language
Infrastructure (CLI) qui est indépendante du langage de programmation utilisé. Ainsi tous les
langages compatibles respectant la norme CLI ont accès à toutes les bibliothèques installées
(installables) dans l'environnement d'exécution.
Le framework .NET est un sous ensemble de la technologie Microsoft .NET. Il a pour but de
faciliter la tâche des développeurs en proposant une approche unifiée à la conception
2. 2
d'applications Windows ou Web, tout en introduisant des facilités pour le développement, le
déploiement et la maintenance d'applications.
Le framework gère tous les aspects de l'exécution d'une application :
• il alloue la mémoire pour le stockage des données et des instructions du programme ;
• il autorise ou refuse des droits à l'application ;
• il démarre et gère l'exécution ;
• il gère la ré-allocation de la mémoire pour les ressources qui ne sont plus utilisées.
Il est composé de deux blocs principaux :
• l'implémentation d'une machine virtuelle compatible Common Language
Infrastructure (CLI) sous le nom de Common Language Runtime (CLR) et Dynamic
Language Runtime (DLR);
• bibliothèques de classes .NET
Figure 1 : L’architecture fonctionnelle de .NET
3. a)
Commo
machine
Commo
program
Languag
Languag
Quel qu
en CIL
instructi
pas être
par le JI
est exéc
F
Common La
on Languag
e virtuelle d
on Languag
mmes. Le C
ge- CIL app
ge IL.
ue soit le lan
L (Common
ion relative
e exécuté dir
IT Compile
cuté et stock
Figure 2 : Sché
anguage Ru
ge Runtime
du framewo
e Infrastruc
CLR fait to
pelé aussi M
ngage utilis
n Intermedi
e au matérie
rectement. U
er (''Just in T
ké en mémo
éma explicatif d
untime
(CLR) est
ork .NET. Il
cture (CLI)
ourner une
Microsoft In
sé pour écrir
iate Langua
el (i.e. hard
Une fois le
Time) en la
oire sous for
3
du Common L
le nom cho
l s'agit de l'i
qui définit
sorte de b
ntermediate
re une appli
age). Ce c
dware) ou a
code présen
angage natif
rme de code
Language Infra
oisi par Mi
implémenta
l'environne
bytecode n
Language -
ication .NE
code interm
au système
nt dans le C
f de la mach
e natif.
astructure (CL
icrosoft pou
ation par Mi
ement d'exéc
nommé Com
- MSIL ou e
ET, le code d
médiaire ne
d'exploitati
CLR, il va p
hine. Une fo
LI)
ur le compo
icrosoft du
cution des c
mmon Inter
encore Inter
doit être tra
e comporte
ion. Il ne pe
ouvoir être
ois compilé
osant de
standard
codes de
rmediate
rmediate
ansformé
aucune
eut donc
compilé
, le code
4. 4
Le CLR est nécessaire pour exécuter le code intermédiaire. Il est basé sur le CTS (Common
Type System) et le CLS (Common Language Specification). Le CLS définit les
fonctionnalités auxquelles doit répondre un langage pour être « .NET Compatible ». Le CTS
garantit que tous les types manipulés par les langages sont les mêmes. Le CLR apporte de
nombreuses fonctionnalités comme le ramasse-miettes (en anglais : Garbage Collector) (la
mémoire utilisée par l'application lors de l'exécution est optimisée), la BCL (Base Class
Library) et le système de sécurité.
b) Bibliothèques de classes .NET
Il y a trois couches au-dessus du Common Language Runtime –CLR (voir figure 1), chacune
comportant des classes apportant des fonctionnalités de plus en plus évoluées.
• Base Class Library
Dans la première couche se trouve la Base Class Library (BCL), rassemblant des classes
permettant les manipulations de chaînes de texte, la gestion des entrées/sorties, des
communications réseaux, des processus légers et le design des interfaces utilisateur. Ces
classes sont similaires à celles présentes dans l'API Java développée par Sun Microsystems.
Par exemple, la manipulation des chaînes est disponible dans la classe String, dans les deux
langages ; la différence étant qu'en Java il n'existe pas de type de base pour manipuler les
chaînes (on manipule des objets 'String'), alors qu'en .NET, le type string (avec un 's'
minuscule) a spécifiquement été défini.
• Classes d'accès aux données
La deuxième couche est composée de deux bibliothèques de classes d'accès aux données.
Tout d'abord, ADO.NET, s'élevant sur les bases de l'ancien ADO (ActiveX Data Objects)
utilisé par les développeurs ASP, et permettant l'accès sous format XML aux interfaces de
bases de données SQL Server, ODBC, OLE DB, Oracle et Sybase, et bien sûr aux fichiers
XML. Les XML Classes permettent de manipuler les données XML.
• XML Web Services, Web Forms, Windows Forms
La dernière couche, la plus élevée, est utilisée pour la création de services web, de pages
Web, et d'applications Windows. Les deux premiers forment ASP.NET, là aussi une référence
à l'ancien langage de programmation Web. Les pages internet ayant pour extension .aspx sont
généralement des pages Web écrites en .NET, tandis que les pages écrites en ASP se
terminent généralement en .asp.
5. 5
1.2.2 Les versions successives
a) Visual Studio 97
La première version de Visual Studio a été publiée en 1997 par Microsoft, afin de rassembler
au sein d'un même environnement de développement plusieurs de ses outils de
programmation. Visual Studio 97 incluait Visual Basic 5.0 et Visual C++ 5.0, pour le
développement d'application Windows, Visual J++ 1.1 pour la programmation Java et Visual
FoxPro 5.0 pour la programmation xBase. Visual InterDev était utilisé pour créer des pages
web générées dynamiquement en ASP.
b) Visual Studio 6.0
La version suivante (6.0) date de 1998. Cette version a été la base du développement pour
Microsoft pour les quatre années suivantes, jusqu'au passage au développement .NET. Visual
Studio 6.0 a été la dernière version incluant Visual Basic tel que le connaissait la majeure
partie des programmeurs VB.
c) Visual Studio .NET (2002)
En 2002, Visual Studio .NET est publié. Le principal changement a été l'introduction du .NET
Framework. Les programmes développés en utilisant .NET ne sont pas compilés en langage
machine (au contraire du C++, par exemple) mais dans un langage intermédiaire MSIL. Une
application MSIL est ensuite compilée, au moment de son exécution, dans le langage machine
approprié à la plate-forme sur laquelle elle est exécutée. Cette compilation s'appelle une
compilation « juste à temps » (Just-In-Time en anglais ou JIT).
En dissociant le programme binaire de la plateforme, cette méthode permet notamment à
Microsoft de mieux supporter les différentes versions du système d'exploitation Windows
ainsi que les nouvelles architectures de micro-processeurs. Les programmes compilés en
MSIL peuvent être exécutés seulement sur des plates-formes possédant une implémentation
du .NET framework. Il est possible de lancer des programmes MSIL sur Linux ou Mac OS X
grâce à des implémentations non-Microsoft de .NET comme Mono et DotGNU.
Microsoft a aussi introduit le langage C#, similaire au langage Java.
Visual Basic, renommé Visual Basic .NET, a subi des modifications drastiques pour
correspondre au nouveau framework, notamment en introduisant la programmation orientée
objet.
Le numéro de version interne de Visual Studio .NET est 7.0.
6. 6
d) Visual Studio .NET 2003
Il s'agit d'une mise à jour mineure de Visual Studio 2002. Le Framework .Net est passé à la
version 1.1.
Le numéro de version interne de Visual Studio 2003 est 7.1.
e) Visual Studio 2005
Visual Studio 2005 a été publiée en ligne en octobre 2005. Le Framework .NET est alors dans
sa version 2.0. Une des nouvelles fonctionnalités de cette version est le "Deployment
Designer" permettant de valider la conception d'applications avant leur déploiement.
L'ASP.net est passé en 2.0. Visual Studio 2005 inclut un support du 64-bit. La nouvelle API
du Framework .Net inclus les types génériques permettant de créer des patrons de classes ou
de méthodes.
Le numéro de version interne de Visual Studio 2005 est 8.0 (il s'agit d'une révision majeure).
f) Visual Studio Express
Microsoft propose maintenant des versions "express" dans un package nommé Microsoft
Visual Studio Express. Ces versions sont gratuites et disponibles sur le site de téléchargement.
Cependant, il n'existe pas de version express de Visual Studio complète. Les éléments sont
disponibles indépendamment les uns des autres (Visual Basic, Visual C++, ...).
g) Visual Studio 2008
Cette version est sortie en version finale à la fin de l'année 2007. Cette version est fondée sur
le .NET Framework 3.5.
Le numéro de version interne de Visual Studio 2008 est 9.0.
h) Visual Studio 2010
Cette version est sortie en version finale le 12 avril 2010. Cette nouvelle version utilise la
version 4.0 du .NET Framework dans le logiciel ainsi qu'une refonte de l'interface graphique
propulsé par WPF.
Un nouveau langage de programmation fait officiellement son apparition : F#
7. 7
Ou trouver Visual Basic 2010 Express?
Cliquer sur le lien: http://www.microsoft.com/express/downloads/ Dans la liste de lien,
cliquer sur 'Visual Basic Express 2010' Puis dans la liste 'Select language", choisissez
"French", une fenêtre pop-up démarre.
1.3 Visual Basic
Visual Basic a été conçu pour être facile à apprendre et à utiliser. Le langage permet de créer
des applications graphiques de façon simple, mais également de créer des applications
véritablement complexes. Programmer en VB est un mélange de plusieurs tâches, comme
disposer visuellement les composants et contrôles sur les formulaires, définir les propriétés et
les actions associées à ces composants, et enfin ajouter du code pour ajouter des
fonctionnalités. Comme les attributs et les actions reçoivent des valeurs par défaut, il est
possible de créer un programme simple sans que le programmeur ait à écrire de nombreuses
lignes de code.
Dans l'IDE, les formulaires sont créés en utilisant la technique de Glisser-déposer, permettant
de disposer des contrôles (boîte de saisie, case à cocher, bouton, etc.) sur le formulaire. Les
contrôles possèdent tous des attributs et des gestionnaires d’évènements associés. Des valeurs
par défaut sont attribuées, qui peuvent être modifiées par le programmeur. De nombreux
attributs peuvent être modifiés dynamiquement lors de l’exécution, en réponse à des actions
de l’utilisateur ou à des changements dans l’environnement. Les contrôles fournissent les
fonctionnalités de base de l’application, les programmeurs ajoutant simplement le fonctionnel
supplémentaire en insérant du code dans les gestionnaires d’évènements appropriés. Visual
Basic permet de créer des exécutables (fichiers .EXE).