Chapter 11 ASP Active Server Page
ASP , comme PHP , est un langage de script fonctionnant coté
serveur.
Il est très lié au serveur IIS (Internet Information Services
), mais des implémentations existent sous W95 PWS (Personal Web
Server) et unix (Apache).C'est une solution proriétaire de Microsoft.
Un fichier ASP peut contenir du code HTML , XML , et des scripts, ces
scripts sont éxécutés par le serveur.
Un fichier ASP à une extension ".asp" .
<html> <body>
Hello World! <p>
The time And date is now <%=now()%> //asp code script imbriqué
</body> </html>
ASP , comme tout langage de script, peut modifier ou ajouter du
contenu au page Web . Nativement le langage de scripting est VBScript,
mais JavaScript, Python ou Perl , java ... peuvent être utilisé
après leurs installations.
<%@ language="javascript" %>
<html><body>
<% // en VB insensible à la casse
Response.Write("Hello World!") // response.write("Hello World!")
%>
</body></html>
11.1 Asp est orienté objet:
Les 6 principaux objets sont:
-
Server Il représente l'environnement
- Application Plusieurs applications peuvent tourner dans un serveur (Généralement
un site = 1 application)
- Session Plusieurs sessions dans une application.
Généralement 1 utilisateur = 1 Session.
Les informations stockées dans la section sont disponibles au fil des pages.
- Request Contient la requête du client et les caractéristiques du navigateur
: Les données entrantes (requêtes, formulaires, etc..)
- Response Contient les informations à renvoyer à l'utilisateur.
La méthode Response.write est probablement la plus employée, elle permet d'écrire
un résultat dans la page.
- ObjectContext
Traite les transactions gérées par MTS (Microsoft Transaction
Server) et initiées par un Script ASP directive @Transaction)
11.2 Exemple: ajouter un enregistrement à une table
Soit une table nommée table1 contenant les champs Nom, Prénom, Age;
Le script suivant nommé user.asp devrait permettre de
constituer un formulaire de saisie et d'ajouter les informations
issues de celui-ci à cette table
<%
ENVOY = Left(UCase(Request("ENVOYER")),5) ' On récupère la valeur du bouton cliqué
If ENVOY = "ENVOY" Then ' test bouton envoyer la première fois on n'y passe pas
Dim objConnexion, chaineConn
' Créer l'objet ADO (ActiveX Data Object) à partir de l'objet server
Set objConnexion = Server.CreateObject("ADODB.Connection")
' Ouvrir la base sans DSN avec chaîne de connexion
chaineConn = "provider=MICROSOFT.JET.OLEDB.4.0;
DataSource=D:\inetpub\db\base.mdb;User ID=??;Password=??;"
objConnexion.open chaineConn
' Traitement...
SQLQuery= "INSERT INTO table1 (Nom, Prenom, Age) "
SQLQuery= SQLQuery & "VALUES( '" & Request("Nom") & "','"&
Request("Prenom")& "','" &
Request("Age") & "')"
objConnexion.Execute(SQLQuery)
' Fermer la connexion et détruire l'objet
objConnexion.close
set objConnexion=nothing
%>
'constitution du formulaire en html
<html> <body>
<form method="POST" action="user.asp">
<H2>Ajouter un enregistrement</H2>
<table>
<tr> <td>Nom: </td><td> <input type="text" name="Nom" size="20"
value="<%=Request("Nom")%>"> </td> </tr>
<tr> <td>Prénom:</td><td> <input type="text" name="Prenom" size="20"
value="<%=Request("Prenom")%>"> </td> </tr>
</table> <p>
<input type="submit" value="ENVOYER" name="Envoyer">
</form>
</body> </html>
11.3 PHP/ASP : comparaisons
Coûts : avantage au système libre PHP
Syntaxe langage : égalité, les deux systèmes sont
comparables, selon les sensibilités et le passé "d'informaticien"
de chacun,
le choix pourra se porter sur une technologie ou une autre
Langage de requête : identique
Rapidité :
sur une base de données comportant le même
nombre d'enregistrements, des benchmarks:
http://www.mysql.com/information/benchmarks.html
http://www.devparadise.com/technoweb/sys/bench/d55.asp
ont montré un faible avantage pour PHP .
Concrètement, le choix d'une technologie s'effectue souvent en
fonction de l'existant. La migration vers un système nouveau pose
souvent beaucoup d'interrogations et quelques risques.
Là où l'aboutissement de la comparaison penche en faveur du système libre est :
-
pour les nouvelles créations de bases de données (pas
d'existant = pas d'à priori)
- pour les organismes dont la structure a des difficultés à
supporter le coût d'un système commercial.
- la volonté d'utiliser ce type de logiciels (libre...).