SUPINFO International University

SUPINFO Institute of Information Technology
Laboratoire Microsoft




Tous les Articles du Laboratoire Microsoft

Introduction au langage VBScript
Accueil > Articles > Développement
Auteur 

2,3/5

Moyen


64572
86/199

La répartition des traitements entre le client et le serveur
Le traitement côté client
Le traitement côté serveur
Fonctionnement du langage VBScript
Qu'est-ce qu'un langage interprété ?
Caractéristiques du langage VBScript
Principe des pages ASP
Le modèle objet ASP

La répartition des traitements entre le client et le serveur

Les évolutions récentes d'Internet ont fait émergé de nouvelles demandes allant dans le sens d'offrir un contenu dynamique, autrement dit, basés sur des traitements. Cependant, il est essentiel de tenir compte du fonctionnement dit Client-Serveur d'Internet. En effet, après saisi une adresse dans votre navigateur qui joue le rôle du client, une requête est émise au serveur associé à cette adresse, qui se charge de fournir en retour les informations (textes et images) demandées.

Le traitement peut donc être effectué du côté client c'est-à-dire par le navigateur ou du côté serveur, selon les  fonctionnalités attendues et les capacités de traitement de chacun d'entre eux. Bien entendu, les possibilités ne seront pas les mêmes. Par exemple, les traitements effectués du côté serveur permettront de tirer parti des fonctionnalités du serveur, comme l'accès à une base de données par exemple, tandis que les traitements effectués par le navigateur concerneront le contenu et la présentation de la page qu'elle affiche.

Ainsi, malgré certaines ressemblances, les techniques ne sont pas tout à fait les mêmes selon si on programme du côté client ou du côté serveur.

Le traitement côté client

Du côté client (comme du côté serveur d'ailleurs), plusieurs langages peuvent être employés pour effectuer un traitement. Les plus connus sont le JavaScript et VBScript. Historiquement parlant, le JavaScript a vu le jour plus tôt, avec le navigateur Netscape 2.0. La riposte de Microsoft de s'est pas attendre, qui a sorti le VBScript avec Internet Explorer 3. Cependant, compte tenu du succès rencontré par JavaScript, Internet Explorer 3  a également été pourvu de sa propre version de JavaScript, baptisée JScript par Microsoft.

Cette situation est restée la même dans les navigateurs récents : JavaScript est supporté par tous les navigateurs tandis que VBScript est supporté seulement par Internet Explorer. Il est donc d'usage de faire les traitements du côté client avec le langage JavaScript lorsque la compatibilité des navigateurs doit être respectée.

En résumé, les traitements effectués du côté client sont rarement écrits en VBScript et se limitent à des traitement portant sur la modification de l'apparence et du contenu de la page une fois téléchargée.

Le traitement côté serveur

Lorsque le traitement se déroule du côté serveur, il n'est plus question bien entendu, de modifier le contenu et l'apparence de la page une fois affichée dans le navigateur. Il s'agit au contraire de générer la page de manière dynamique en fonction de différents paramètres.

Prenons un exemple que l'on rencontre dans la plupart des sites offrant la possibilité d'effectuer des recherches dans une base données. Une première page Web classique comporte des contrôles regroupés dans un tag FORM autorisant la saisie de critères de sélection des informations recherchées. Les critères saisis sont transmis au serveur à une autre page d'extension ASP par le biais des attributs Action et Method du tag FORM.

Une page ASP est une page HTML classique comprenant un ou plusieurs scripts généralement écrit en VBScript (ou en JScript). C'est donc ici qu'intervient le langage VBScript qui permet d'écrire les instructions permettant d'analyser les critères et d'extraire les informations recherchées dans la base. Ces instructions sont exécutées par le serveur. En résultat de l'exécution de ce script, une page HTML standard est créée avec les informations extraites de la base avant d'être finalement transmise au navigateur.

Fonctionnement du langage VBScript

Cette introduction nous donne un aperçu du mode de fonctionnement de VBScript dans le contexte d'Internet. Toutefois il est important de comprendre qu'il peut fonctionner dans d'autres contextes et notamment dans un environnement disponible sous Windows 2000 nommé Windows Scripting Host (WSH). Autrement dit, il peut fonctionner dans différents types de conteneurs 'également dénommées sous le terme d'application hôte), dont les plus connus sont Internet Explorer et Windows Scripting Host.

Dans WHS, VBScript permet par exemple d'exécuter des scripts de maintenance sur un serveur Windows. Ces scripts offrent ainsi le même genre de fonctionnalités que les fichiers .BAT du système DOS, mais à partir d'un véritable langage de programmation standard. 

Qu'est-ce qu'un langage interprété ?

La vocation de ce langage est donc d'offrir un même langage standard pour travailler dans différents contextes, un peu comme le langage VBA est commun à Visual Basic et aux applications de la suite MS Office.

En fait, le langage VBScript étant d'ailleurs un-sous ensemble du langage VBA, il est légitime de se demander pourquoi avoir fabriqué un "sous-langage" ?

La raison découle de la section précédente puisqu'un script a été conçus pour s'exécuter dans des applications hôtes telles qu'une page Web affichée par un navigateur.

Pour mieux comprendre ce que ceci implique, considérons le langage VBA dont la vocation est de créer des exécutables avec Visual Basic, des fichiers MDE avec Access, des macros Excel, etc. Le langage VBA fonctionne ainsi au sein d'une application qui a besoin d'être préalablement installée sur le poste de l'utilisateur pour fonctionner.

Avec l'avènement des navigateurs, la demande s'oriente vers des traitements exécutables à partir d'une page HTML. Or, il n'est pas possible d'héberger un programme traditionnel au sein d'une page HTML. On ne peut donc pas avoir de programmes compilés tels que nous les connaissons avec VB ou VBA.

Pour qu'un script fonctionne sans compilation, il faut que le conteneur (le navigateur ou  WSH) se charge de le lire et de l'interpréter instruction par instruction lors de son affichage dans le navigateur ou lors de sa lecture dans WSH. On distingue ainsi les langages compilés tels que le langage VBA, C++, Pascal, Java, etc., des langages interprétés (tous les langage de script).

Caractéristiques du langage VBScript

La différence essentielle entre un langage interprété et un langage compilé se situe dans le fait que les types de données explicites n'existent pas. Les variables peuvent être déclarées avec le mot réservée Dim, mais sans type. Elles se comportent donc comme si elles possédaient toutes le type Variant.

Il faut donc faire attention à la validité des expressions. Par exemple, l'instruction suivante est valide :

MsgBox 6 / 2   'Affiche 3

Tandis que l'instruction suivante provoquera une erreur à l'exécution :

MsgBox 6 / "Bonjour"

Il faudra également veiller à respecter scrupuleusement les correspondance entre les arguments transmis à une procédure avec la définition de cette dernière sous peine d'erreur d'exécution.

En dehors de cette distinction essentielle, le langage VBScript comprend quasiment toutes les caractéristiques du langage VBA, y compris la bibliothèque de fonctions prédéfinies telles Trim, Left, Date, DateDiff, etc.

Fonctionnement des pages ASP

Il existe aujourd'hui deux principaux types types de serveurs Web : les serveurs Windows (NT ou 2000) et les serveurs Unix/Linux. Le langage VBScript étant propriétaire Microsoft, celui-ci n'est disponible que sous Windows. Pour effectuer des traitements sur les serveurs Unix, il faudra par conséquent s'orienter vers d'autres langages tels que le langage Perl ou PHP (il existe aujourd'hui des interpréteurs de pages ASP fonctionnant sous Unix).

Pour créer une page dynamiquement avec le langage VBScript, il faut donc commencer par disposer d'un serveur Web fonctionnant sous Windows. Le serveur fournit avec Windows serveur (NT ou 2000) est IIS dont la version actuelle est la version 5.

Remarque : Si vous souhaitez faire vos premiers pas avec les pages ASP, le serveur Personnal Web Server livré avec Windows 98 suffit.

Pour mieux comprendre le fonctionnement des pages ASP, prenons l'exemple suivant :

<HTML><TITLE>Premier exemple de page ASP</TITLE><BODY>
<P>Page crée dynamiquement avec le langage VBScript</P>
<% For i = 1 To 5
     Response.Write "<font size=" & i & ">Ligne " & i & "</font><br>"
   Next
%>
</BODY></HTML>

Cet exemple représente le contenu d'un fichier texte dont l'extension doit être .ASP. Un fichier ASP doit respecter la structure d'une page Web classique, dans laquelle un ou plusieurs zones de scripts peuvent être écrites. Une zone de script se délimite par <% et %>.

En admettant que ce fichier soit installé dans le sous-dossier \scripts_asp du dossier racine du serveur Web (C:\Inetpub\wwwroot par défaut) et se nomme exemple1.asp, voici ce que l'on obtiendrait après avoir saisi http://localhost/scripts_asp/exemple1.asp dans la barre d'adresse du navigateur.

Remarque : L'adresse localhost est prédéfinie de manière à désigner le serveur web local. Elle peut être remplacée par le nom de domaine associé au serveur Web hébergeant la page ASP demandée. 

En observant le code source (commande Affichage/Source) de la page affichée on découvre le code HTML qui a été généré par la page ASP :

Il n'existe donc plus aucune trace du script dans la page affichée par le navigateur. Autrement dit, le script a bel et bien été exécuté par l'interpréteur de pages ASP associé au serveur IIS, c'est-à-dire du côté serveur.

Le modèle objet ASP

Pour terminer cette introduction au langage VBScript, il faut parler du modèle objet ASP. Nous avons déjà évoqué précédemment et dans l'article consacré au langage VBA, que ce dernier sert à écrire des procédures qui manipulent des objets de l'application hôte où il fonctionne. Il en est de même pour le langage VBScript qui peut, rappelons-le, exploiter les fonctionnalités du serveur par le biais de la fonction CreateObject qui permet d'instancier des composants tels que le FSO (se reporter aux articles publiés dans l'espace Visual basic concernant ce composant) les ADO, etc.

Parmi ces composants, il en existe un qui est prédéfini (il n'a pas besoin d'être instancié pour être disponible) au sein d'une page ASP : il s'agit du modèle objet des ASP dont les principaux objets sont :

  • Response

  • Request

  • Application

  • Session

  • Server

L'objet Response est sans doute celui que l'on rencontre le plus souvent puisqu'il possède la méthode Write permettant d'insérer du texte dans la page, comme nous le montre l'exemple ci-dessus. Notez que la syntaxe du langage VBA doit être respectée (délimitation des chaînes de caractères par des guillemets, utilisation de l'opérateur de concaténation &, etc.). 

La description des autres objets sort du cadre de cet article, mais nous pouvons néanmoins en donner une brève description : l'objet Request sert à récupérer les informations envoyées par une page Web comportant un formulaire avec la méthode POST ou GET. Les objets Application et Session procurent une fonctionnalité essentielle pour un programmeur alors qu'elle est totalement absente du protocole HTTP, dit "stateless".

Terminologie : Ce terme signifie ici qu'il n'est pas possible de mémoriser une information d'une page à l'autre si elles ne sont pas regroupées au sein d'une page de cadres avec le tag FRAMESET.

Ils permettent en effet de définir des variables avec un niveau de visibilité par utilisateur (objet Session) ou global (objet Application).

L'objet Server est très stratégique car c'est grâce à lui que l'on peut faire appel à la fonction CreateObject pour instancier des composants du serveur.




En Savoir Plus 
Evaluez cet article 


Pour afficher ou poster un commentaire, cliquez sur ce lien : Forum-Microsoft



Retrouvez ci-dessous les autres sections du Laboratoire Microsoft