La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Introduction Aux Systèmes dInformation et Multimédia T. Bourdeaudhuy S. Collart-Dutilleul P. Kubiak IG 2 I - Saison 2006/2007 ASP / Pages Web Statiques.

Présentations similaires


Présentation au sujet: "Introduction Aux Systèmes dInformation et Multimédia T. Bourdeaudhuy S. Collart-Dutilleul P. Kubiak IG 2 I - Saison 2006/2007 ASP / Pages Web Statiques."— Transcription de la présentation:

1 Introduction Aux Systèmes dInformation et Multimédia T. Bourdeaudhuy S. Collart-Dutilleul P. Kubiak IG 2 I - Saison 2006/2007 ASP / Pages Web Statiques

2 ISIM 1 – Active Server Pages 2T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Plan du cours 4 séances de TP –Concepts et syntaxe de base, exigences de codage, formulaires –Les objets du serveur, utilisation des bases de données –Gestion des fichiers, Global.asa –Contrôle TP Evaluation –Exercices dun cours à lautre –Contrôles de connaissances par moodle –CTP Le CTP portera sur web statique ET web dynamique

3 ISIM 1 – Active Server Pages 3T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Supports de cours Ce poly Reference card ASP Feuille dexercices 2006-2007 Elements de VBScript Aide VBSCRIPT au format HTML Compilé Tout est sous moodle (Cours REM2) ! http://nti.ec-lille.fr/pedagogie

4 ISIM 1 – Active Server Pages 4T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Séance 1 Concepts de base Client/Serveur, HTTP Caractéristiques ASP, Exigences de codage Syntaxe VBSCRIPT : –Structures de contrôle, –Modularité, –Chaînes de caractères, –Tableaux et Collections, –Mathématiques, –Dates (?) Objets Request et Response –Affichage –Récupération des données dun formulaire

5 Concepts de Base Client-Serveur Schéma Général dune requête HTTP URL Accès au serveur

6 ISIM 1 – Active Server Pages 6T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Schéma général dune requête HTTP Client Serveur Demande de connexion Tcp (Port 80) Connexion acceptée Requête HTTP Envoi dun page HTML Traitement de la requête : *.html aucune modification *.asp interprétation préalable du contenu des balises *.cgi, *.php … RFC1945 (HTTP/1.0 - mai 1996) RFC2616 (HTTP/1.1 - juin 1999) Couche application Mode connecté (TCP) mais pas de connexion permanente entre le client et le serveur Fermeture de la connexion Vérifiez par vous- même depuis P5 : telnet webasp 80

7 ISIM 1 – Active Server Pages 7T. Bourdeaudhuy – IG 2 I Saison 2006-2007 URL Uniform Resource Locator (localisation uniformisée des ressources) permet au client d'identifier : –le type de protocole à utiliser –l'adresse précise de la ressource Format : RFC 1738 (déc 1994) Insensible à la casse Jeu de caractères US-Ascii (7 bits), encodage hexadécimal possible, recommandé pour # % @ & ? : / { } ( ) | \ ^ ~ [ ] ` et espace http://[ : @] [: ]/ [ ][? ] Bien faire la différence entre une url (http://...) et un chemin local sur la machine (c:\...) ainsi quentre url absolue et relative

8 ISIM 1 – Active Server Pages 8T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Accès au serveur Racine physique du site (sur le serveur) –Utilisation dun chemin daccès : V:\ ( Répertoire Partagé) –NB: Si votre répertoire personnel nest pas monté au démarrage : net use v: \\webasp\login$ (Sous DOS) Répertoire virtuel du site (sur le web) –Utilisation dune URL : http://webasp.priv.ig2i.fr/login Exercice 1 : créer un fichier index.html : « Hello World » Exercice 1 : créer un fichier index.html : « Hello World »

9 Avant de commencer… Caractéristiques de lASP Exigences de codage Du bon sens et de bons réflexes

10 ISIM 1 – Active Server Pages 10T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Caractéristiques de lASP Solution Microsoft pour le Web Dynamique ( DOT NET) Serveur IIS : Internet Information Services Langage VBScript Insensible à la casse Commentaires avec des apostrophes –Partout où on peut mettre un espace, on peut mettre un commentaire

11 ISIM 1 – Active Server Pages 11T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Principe ASP : Web Dynamique Création de code HTML « à la volée » en fonction de lexécution dun programme Ce qui circule : du texte au format HTML ! 2 « interprétations » successives Afficher la source world"%> Index.asp : Code ASP COTE SERVEUR CODE ASP HTML Hello world Visuel navigateur COTE CLIENT CODE HTML VISUEL Hello world Flux de données serveur client

12 ISIM 1 – Active Server Pages 12T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Exigences de codage Déclaration et Initialisation des variables (OPTION EXPLICIT sur la première ligne de chaque page) Conventions de nommage des variables, fonctions et fichiers –ex : variables, FONCTIONS & MOTS CLES DU LANGAGE Modularité Clarté et Lisibilité du code Particularité WEB : séparation HTML / ASP –Récupération variables ASP –Définition fonctions ASP –HTML

13 ISIM 1 – Active Server Pages 13T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Du bon sens et de bons réflexes Coder petit à petit ! Changer de fichier à chaque changement dexercice Utiliser des noms de fichiers/variables pertinents Mettre des commentaires –pour expliquer ce que lon fait (algo), –pourquoi on le fait (le but final) –Indiquer éventuellement le résultat récupéré après vérification A méditer : Si, après avoir lu uniquement les commentaires dun programme, vous nen comprenez pas la structure, alors jetez le tout ! Et… Réfléchir avant de coder !!!

14 Premiers Exemples

15 ISIM 1 – Active Server Pages 15T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Hello World index.html Hello World !!! index.asp Ces deux pages sont- elles équivalentes ? Résultat Performance Affichages

16 ISIM 1 – Active Server Pages 16T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Autre possibilité response.write("hello world !!! ")

17 ISIM 1 – Active Server Pages 17T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Code ASP dans le HTML : ajoute au source du fichier la valeur de la fonction ou de la variable désignée Nous sommes le, il est <% DIM monNom monNom = "tom" %> Hello Fonctions VBScript Déclaration dune variable Initialisation dune variable Affichage dune variable

18 Éléments de Programmation VBScript Déclaration de variables Structures de contrôle

19 ISIM 1 – Active Server Pages 19T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Déclaration de Variables –À placer sur la première ligne dune page ASP –Provoque des erreurs de compilation si des variables ne sont pas déclarées Concaténation : –response.write("Hello" & monNom) Constantes –TRUE, FALSE –EMPTY : correspond à une variable vide (pas de contenu ni de type) –NULL : variable non valide –VBCR : saut de ligne Objets –SET nom_objet = valeurDéclaration dun objet –NOTHINGCorrespond à un objet vide

20 ISIM 1 – Active Server Pages 20T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Tableaux Tableau Statique (dimension fixe) –Déclaration : DIM tab(nombre déléments) –Accès à un élément : –Numérotation à partir de lindice 1 Tableau multidimensionnel (jusquà 60 dimensions !) –DIM tab2(dimension1,dimension2) Tableau Dynamique (dimension variable) –DéclarationDIM tab() –RedimensionnementREDIM tab(dimension) –Préserver les anciennes valeurs REDIM PRESERVE tab(dimension)

21 ISIM 1 – Active Server Pages 21T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Structures de Contrôle : Alternatives Alternative simple <% IF condition THEN traitement ELSEIF condition2 THEN traitement ELSE traitement END IF %> Négation : NOT –IF NOT condition THEN –… Choix multiples <% SELECT CASE nom_variable CASE valeur_1 traitement CASE valeur_2 traitement CASE ELSE traitement par défaut END SELECT %>

22 ISIM 1 – Active Server Pages 22T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Imbrication ASP/HTML valeur = 0 valeur non = 0 Equivalent à : <% IF test = 0 THEN response.write(" valeur =0 ") ELSE response.write("valeur non = 0") END IF %>

23 ISIM 1 – Active Server Pages 23T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Boucles POUR <% FOR nomVar = 1 TO 10 Traitement NEXT %> Tableaux/Collections <% FOR EACH elt IN tab/col traitement NEXT %> TANT QUE <% WHILE condition traitement WEND %> FAIRE TANT QUE <% DO WHILE condition traitement LOOP %> FAIRE JUSQUA <% DO traitement LOOP UNTIL condition %>

24 ISIM 1 – Active Server Pages 24T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Modularité Fonctions FUNCTION nomFonction(liste de paramètres) Traitements [EXIT FUNCTION] nomFonction = valeur END FUNCTION Sous-routines SUB nomRoutine(liste de paramètres) Traitements [EXIT SUB] END SUB Librairies de fonctions : –Appel : (Directive SSI) –Lib.inc contient des balises ASP Passage par valeur/référence : –ByVal, ByRef (défaut) Appels : –CALL nomProcédure (listArgs) –nomFonction|Procédure listArgs –retour = nomFonction (listArgs)

25 ISIM 1 – Active Server Pages 25T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Quelques fonctions (Cf. refcard) INSTR : Renvoie la position de la première occurrence d une chaîne dans une autre JOIN : Renvoie une chaîne résultant de la concaténation de deux autres LCASE : Renvoie une chaîne convertie en minuscules UCASE : Renvoie une chaîne convertie en majuscules ASC : Code ASCII du premier caractère de la chaîne CHR : Caractère correspondant à un code ASCII INT : Partie entière CINT : Convertir en entier CSTR : Convertir en String RANDOMIZE : Initialiser le générateur de variables aléatoires RND : Renvoyer un nombre aléatoire entre 0 et 1

26 ISIM 1 – Active Server Pages 26T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Exercices Exercice 2 : Créer un script ASP permettant dafficher les entiers de 0 à 100 (un entier par ligne) Exercice 2 : Créer un script ASP permettant dafficher les entiers de 0 à 100 (un entier par ligne) Exercice 3 : Ecrire un script ASP permettant de créer un tableau de 100 composantes (contenant les entiers de 100 à 200) et de les afficher (un par ligne) Exercice 3 : Ecrire un script ASP permettant de créer un tableau de 100 composantes (contenant les entiers de 100 à 200) et de les afficher (un par ligne) Exercice 4 : Créer un script ASP permettant dafficher un mot de 5 lettres majuscules choisies aléatoirement Exercice 4 : Créer un script ASP permettant dafficher un mot de 5 lettres majuscules choisies aléatoirement Exercice 5 : Ecrire une fonction ASCII(n) qui affiche les n premiers caractères ASCII dans un tableau HTML Exercice 5 : Ecrire une fonction ASCII(n) qui affiche les n premiers caractères ASCII dans un tableau HTML

27 ISIM 1 – Active Server Pages 27T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Préparation de Fonctions Utiles Exercice 6 : Ecrire une fonction qui permet de passer à la ligne à la fois dans le source HTML et dans le visuel HTML : bprint(texte) Exercice 6 : Ecrire une fonction qui permet de passer à la ligne à la fois dans le source HTML et dans le visuel HTML : bprint(texte) Exercice 7 : Ecrire une fonction tPrint(tab) qui affiche le contenu dun tableau passé en paramètre. On utilisera la structure FOR EACH Exercice 7 : Ecrire une fonction tPrint(tab) qui affiche le contenu dun tableau passé en paramètre. On utilisera la structure FOR EACH –2ème version : Laffichage sera formaté dans un tableau HTML –3ème version : Permettre laffichage des tableaux récursifs ISARRAY(tab) permet de savoir si une variable est de type scalaire ou tableau ISARRAY(tab) permet de savoir si une variable est de type scalaire ou tableau UBOUND(tab[,dim]) permet de connaître lindice maximal du tableau UBOUND(tab[,dim]) permet de connaître lindice maximal du tableau

28 Les objets ASP… … Où le Web devient Dynamique

29 ISIM 1 – Active Server Pages 29T. Bourdeaudhuy – IG 2 I Saison 2006-2007 6 objets principaux Request : Requêtes des clients vers serveur Response : Réponses du serveur vers client Server : Environnement dexécution Application : Variables partagées entre les clients Session : Variables propres à chaque client ObjectContext : requêtes Microsoft Transactions Server Dautres objets sont égalements accessibles : –Objets ADO : ActiveX Data Object –Objets résultant de lajout de composants à IIS –Mail, upload, images

30 ISIM 1 – Active Server Pages 30T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Modèle général ASP Cli_1 Cli_2 Cookies Serveur Objet Application Objet Session Objet Server Objet Response Objet Request Environnement dexécution Bases de données Système de fichiers Etendue Application Etendue session Global.asa

31 ISIM 1 – Active Server Pages 31T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Objet REQUEST Contient toutes les valeurs envoyées par le navigateur vers le serveur Collections : (toutes en lecture seule) –QueryString : valeur de la chaîne de requête HTTP –Form : variables envoyée par un formulaire POST –ServerVariables : variables d environnement –Cookies : cookies envoyées par le navigateur –ClientCertificates : certificat client envoyé par le navigateur Propriétés –TotalBytes : nombre d octets reçus dans la requête Méthodes –BinaryRead : permet de lire les données envoyées par un formulaire de type POST

32 ISIM 1 – Active Server Pages 32T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Rappels de HTML Liens : Formulaires : <input type=text|hidden|password|checkbox|radio|reset|submit name=nom \ [value=valeur] [checked]>... description

33 ISIM 1 – Active Server Pages 33T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Chaînes de requête « Querystring » en anglais Informations passées dans lurl, précédées dun « ? » Format : Possibilité dutiliser plusieurs fois la même clé (cas dun « ») Attention : la longueur dune chaîne de requête est limitée par les capacités du navigateur Le même format est utilisé dans le passage par requête POST, mais sans les limitations ! ? =[ ][& =[ ]]*e.g. : url?cle1=valeur1&cle2=valeur2

34 ISIM 1 – Active Server Pages 34T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Méthode GET Réponse du serveur : HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Mon, 03 Nov 2003 10:08:34 GMT Connection: Keep-Alive Content-Length: 38 Content-Type: text/html Set-Cookie: ASPSESSIONIDAQCQBBBB=MKLJPDBDKMJPICFJNGNIKPAL; path=/ Cache-control: private GET cle : valeur Requête client : GET /index.asp?cle=valeur HTTP/1.0 Ligne de requête Entêtes HTTP Corps de la réponse Ligne vide Ligne détat

35 ISIM 1 – Active Server Pages 35T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Méthode POST Réponse du serveur : HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Mon, 03 Nov 2003 10:43:25 GMT Connection: Keep-Alive Content-Length: 38 Content-Type: text/html Set-Cookie: ASPSESSIONIDAQCQBBBB=DLLJPDBDCFAAFEDNLJPGDKDL; path=/ Cache-control: private POST cle : valeur Requête client : POST /index.asp HTTP/1.0 Content-type: application/x-www-form-urlencoded Content-length: 10 cle=valeur Champs dentête de la requête Ligne de requête Ligne vide Corps de la requête

36 ISIM 1 – Active Server Pages 36T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Utilisation des Collections Lieu de stockage de valeurs (chaînes, nombres, objets, autres valeurs) Accès aux éléments par leur nom (tableau associatif) Itération : FOR EACH cle IN collection Connaître le nombre déléments dune collection : collection.count

37 ISIM 1 – Active Server Pages 37T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Cas de valeurs multiples Dans certains cas un membre dune collection peut contenir plusieurs valeurs Le nombre de ces valeurs est alors donné par Request.collection("Nom_Champs").Count Les valeurs sont accessibles par indice (tel un tableau) : Request. collection("Nom_Champs")(indice)

38 ISIM 1 – Active Server Pages 38T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Collection SERVERVARIABLES Permet d accéder aux paires entête HTTP / valeur associée Entêtes HTTP : –HTTP_COOKIE : cookies envoyés –URL : Chemin du script –SERVER_PROTOCOL : Version du protocole HTTP –LOCAL_ADDR : Adresse IP du client –REMOTE_HOST : Nom de la machine cliente –REMOTE_ADDR : adresse IP du client –HTTP_USER_AGENT : type de navigateur –HTTP_ACCEPT_LANGUAGE : langages reconnus par le navigateur –…

39 ISIM 1 – Active Server Pages 39T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Exercices Exercice 8 : Réaliser un script qui affiche toutes les entêtes HTTP dans un tableau HTML Exercice 8 : Réaliser un script qui affiche toutes les entêtes HTTP dans un tableau HTML Exercice 9 : Exercice 9 : –Réaliser un script ASP qui permet d afficher toutes les variables envoyées par un formulaire avec la méthode GET (resp. POST) ainsi que les valeurs associées Exercice 10 : Rendre les deux scripts indépendants du formulaire les appelant Exercice 10 : Rendre les deux scripts indépendants du formulaire les appelant Exercice 11 : Améliorer lexemple précédent en tenant compte des champs multiples Exercice 11 : Améliorer lexemple précédent en tenant compte des champs multiples Exercice 12 : Réaliser un script qui affiche toutes les valeurs contenues dans toutes les collections de l Objet Request Exercice 12 : Réaliser un script qui affiche toutes les valeurs contenues dans toutes les collections de l Objet Request

40 ISIM 1 – Active Server Pages 40T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Corrigé exercice 8 <% FOR EACH cle IN request.servervariables response.write( ) response.write(cle) response.write( ) response.write(request.servervariables(cle)) response.write( ) NEXT %>

41 ISIM 1 – Active Server Pages 41T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Objet RESPONSE /1 Contient les valeurs renvoyées par le serveur vers le client Collections –Cookies : valeurs de cookies déposées chez le client Propriétés –Buffer : indique si la page est bufférisée ou pas –CacheControl : indique si le proxy peut enregistrer les données –Charset : ajoute le jeu de caractères au content-type –ContentType : type MIME de la réponse –Expires : délai d expiration de la page dans le cache du navigateur –ExpiresAbsolute : heure et date d expiration de la page –IsClientConnected : indique si le client s est déconnecté –Status : Etat HTTP renvoyé par le serveur

42 ISIM 1 – Active Server Pages 42T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Objet RESPONSE /2 Méthodes –AddHeader : Ajoute ou modifie une entête –AppentToLog : crée une entrée dans le fichier journalier –BinaryWrite : envoie du texte au navigateur sans conversion avec un jeu de caractères –Clear : efface tout le contenu HTML dans le cache –End : termine le traitement et envoie le résultat –Flush : envoie le contenu du cache –Redirect : renvoie une URL comme réponse –Write : insère une variable chaîne dans la page courante

43 ISIM 1 – Active Server Pages 43T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Redirection Permet de rediriger automatiquement le navigateur vers une autre adresse Attention erreur si le contenu a commencé à être envoyé Exemple : <% reponse = Request.Form("pays") SELECT CASE reponse CASE "France" : response.redirect("france.html") CASE "Belgique" : response.redirect("belgique.html") CASE Else : response.redirect("autre.html") END SELECT %>

44 ISIM 1 – Active Server Pages 44T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Exercices Exercice 12 : Réaliser une page HTML affichant un formulaire de Login et Password Exercice 12 : Réaliser une page HTML affichant un formulaire de Login et Password –Cette page envoie les données vers une page ASP –Si les données correspondent à un login et pass de votre choix, alors afficher Bienvenue –Sinon, rediriger vers le formulaire initial Exercice 13 : Comment faire pour afficher un message juste avant le formulaire (« veuillez recommencer ») après chaque mauvaise tentative ? Exercice 13 : Comment faire pour afficher un message juste avant le formulaire (« veuillez recommencer ») après chaque mauvaise tentative ?

45 ISIM 1 – Active Server Pages 45T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Utilisation du cache Technique permettant de contrôler le moment où les informations sont envoyées vers le client Propriété Buffer : –Response.Buffer = False –Les données sont envoyées au fur et à mesure de leur création –Response.Buffer = True –Les données sont envoyées une fois la page créée Méthodes –Flush : une fois les données préparées –Clear : remise à zéro des données dans le buffer (en cas de problème par exemple) –End : fin de traitement et envoie des données

46 ISIM 1 – Active Server Pages 46T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Les COOKIES Création : Response.Cookies("firstname") = "Alex" Response.Cookies("firstname").Expires = #6/09/2006# Sous-clés : Response.Cookies("user")("firstname") = "John" Response.Cookies("user")("lastname") = "Smith" Lecture : –Fname = Request.Cookies("firstname") Lecture des sous-clés : –propriété count ou HasKeys

47 ISIM 1 – Active Server Pages 47T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Exercice Exercice 14 : Réaliser un script utilisant les cookies pour passer des informations dune page à une autre Exercice 14 : Réaliser un script utilisant les cookies pour passer des informations dune page à une autre –Une première page permettra de réaliser une vérification daccès et créer un cookie –À la prochaine connexion sur le formulaire de connexion, le script utilise les cookies pour remplir le formulaire

48 ANNEXES Conventions de Nommage Critères dévaluation des CTP et exercices

49 Conventions de Nommage Déclaration et initialisation des variables Variables ASP Variables de requêtes, formulaires Fonctions Répertoires et fichiers Modularité Clarté et lisibilité du code

50 ISIM 1 – Active Server Pages 50T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Déclaration et Initialisation des variables Utiliser (1 ère ligne du source) : provoque des erreurs de compilation si des variables ne sont pas déclarées Utiliser les mots-clés DIM et CONST Toujours initialiser les variables : EMPTY, "", 0 Les chaînes de requête SQL sont définies et initialisées avant dêtre utilisées

51 ISIM 1 – Active Server Pages 51T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Variables ASP Variables en minuscules : nomVar1, maSuperVariable Constantes et mots-clés du langage en MAJUSCULES Utilisation de noms pertinents (pas de « toto ») Des préfixes sont utilisés pour définir : –La portée des variables : Session/Application/Globale/Locale –Le type de la variable : Int/Str/Bool/Date/Objet/Tab Exemples : –Un compteur à lintérieur dune fonction : lInt_i –Une variable globale : gStr_nomUser –Une variable de session : sStr_idOk –Le résultat dun test : lBool_isTrue

52 ISIM 1 – Active Server Pages 52T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Variables de formulaires, Requêtes Un préfixe décrit le type de champ de formulaire : –txt, passwd, textarea, radio, submit, button, hidden, select, … Tous les formulaires ont un nom, e.g. formCoord Les variables de formulaire utilisent ce nom : –formCoord_txtMail, formCoord_txtLogin Les variables ASP qui récupèrent des champs de formulaires portent le nom de la variable correspondante : –gStr_mail, gStr_login Les chaînes de requête SQL et les objets de connexion et de résultat correspondants doivent porter un nom fondé sur le même motif DANS TOUS LES CAS UTILISER UN NOMMAGE HOMOGENE

53 ISIM 1 – Active Server Pages 53T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Fonctions Indiquer dans le nom dune fonction ce qu'elle fait (verbe) : –get : récupération dune valeur –set : modification dune valeur –mk : réalisation dun traitement –show/write/print : affichage Un préfixe peut être utilisé pour indiquer ce quelle renvoie Exemples : –Affichage dun tableau : showTab() –Vérification dune identification : boolVerifUser()

54 ISIM 1 – Active Server Pages 54T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Répertoires et fichiers Les répertoires ne doivent pas être imbriqués Les extensions dépendent de la fonction du fichier : –asp, htm –inc, js pour les librairies asp et javascript Des préfixes permettent de connaître le contenu du fichier : –f formulairex traitement sans affichage –m menu –c cadre html

55 ISIM 1 – Active Server Pages 55T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Modularité Découper les traitements en fonctions génériques Utiliser des inclusions de fichiers pour les fonctions communes à plusieurs pages –Attention : des fichiers inclus ne doivent pas en inclure dautres (notion de module) Attention à la portée des variables Séparer le code client (HTML, javascript) du code ASP –Fonctions, inclusions, appels en haut de la page –Quand cest nécessaire, veiller à minimiser les ouvertures/fermetures

56 ISIM 1 – Active Server Pages 56T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Clarté et lisibilité du code Indentation BSD pour lASP ET le HTML ! User et abuser de commentaires pertinents : –Au moment de la déclaration dune variable –Avant la déclaration dune fonction –A chaque fois que lon effectue un traitement non trivial (début dune boucle, calcul dindex, … ) Commenter la fin dune boucle par son nom : WHILE lInt_i IN … DO traitements LOOPlInt_i

57 Critères dévaluation des CTP & Exercices Forme /3 Qualité du programme /3 Fonctionnalités attendues /14

58 ISIM 1 – Active Server Pages 58T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Forme Tout ce qui permet de sy retrouver quand on reprend le programme Indentation : tabulations, passage à la ligne Quantité, mise en forme et pertinence des commentaires Lisibilité globale : enchevêtrement html/php/javascript, définition des fonctions au début de chaque page Choix des noms de paramètres, variables, fonctions, librairies pertinents Respect des nommages html/php Esthétique du résultat dans les limites du raisonnable (ni trop beau si toutes les questions n'ont pas été faites, ni linverse)

59 ISIM 1 – Active Server Pages 59T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Qualité du programme Tout ce qui est indépendant de la fonction du programme Emploi de structures de contrôle adaptées et évoluées quand cest nécessaire (foreach, switch) Structure de la base de données conforme aux spécifications, qui permet l'ajout de fonctionnalités supplémentaires facilement Fermeture des bases de données, fichiers, … Tests aux limites : absence de résultats d'une requête … Utilisation raisonnée des variables globales et locales Modularité adaptée (traitements réutilisables, paramètres utiles et bien documentés, pas d'effets de bord néfastes), utilisation de librairies Robustesse, messages d'erreur pour l'utilisateur


Télécharger ppt "Introduction Aux Systèmes dInformation et Multimédia T. Bourdeaudhuy S. Collart-Dutilleul P. Kubiak IG 2 I - Saison 2006/2007 ASP / Pages Web Statiques."

Présentations similaires


Annonces Google