I. Portabilité des deux technologies.

Une Dll ISAPI présente l'avantage indéniable de la portabilité. La Dll n'est pas confinée à Internet Information Server de Microsoft. Une recompilation sous Kylix devrait permettre son fonctionnement sous environnement Linux. De ce point de vue l'objet ASP ne tient pas la comparaison. Même s'il peut fonctionner sous Apache, il reste et demeure une technologie Microsoft.

I-A. Du côté de la rapidité

Comme vous, j'ai souvent lu que les DLL ISAPI étaient beaucoup plus performantes que les objets ASP. J'ajoute que dans la plus part des cas, à besoin égal, elles sont également plus rapide à développer pour les programmeurs que nous sommes. Toutefois, la différence en matière de performance mérite d'être relativisée.

Dans le cas d'un gros site, ISAPI et l'objet ASP sont assez proches en terme de performance.

Dans le cas d'un gros site, très fréquenté, je doute fort que vous puissiez voir une différence entre les deux technologies. Si ISAPI est chargé en mémoire, sachez qu'il en sera de même pour l'objet ASP. Une option de IIS permet de définir le délai de déchargement de l'objet après utilisation. Ce délais est de une à trois minutes sous IIS 4. Du fait, lorsque la page Asp instancie l'objet, si le site est fréquenté, le chargement (physique) de l'objet est inutile, IIS établira le lien vers un objet qui en mémoire et disponible. Cette particularité est d'autant plus intéressante avec les objet ASP qui établissent des connexions vers des bases de données du fait de la persistance des connexions ouvertes. De ce fait, inutile d'ouvrir une nouvelle connexion.

I-B. L'objet ASP est plus permissif que ISAPI

Si vous souhaitez créer un site dynamique, qui autorise une interactivité avec l'utilisateur, l'objet ASP est bien plus intéressant que ISAPI. De la même manière qu'un objet Delphi, que vous manipulez des méthodes et des propriétés.

Ex :

 
Sélectionnez
  VarName = MonObjet.GetName


Ou

 
Sélectionnez
  IdClient = Request.QueryString(‘’ID’’) 

MyResult = MonObjet.RecupFicheClient(IDClient, vNom, vPrenom, vAge, vAdresse) 

Côté Delphi, la méthode RecupFicheClient aura la forme suivante : 

Function Tobj.RecupFicheClient(Id : Integer ; Var vNom,vPrenom, vAdresse : WideString ; Var Age : Integer) : Integer ; 

De la même manière, vous pouvez utiliser des listes d'objets

  • Soit un objet com " FicheClient " qui possède les méthodes de lecture / écriture dans une base de données, et les propriétés de la fiche (nom, prénom, adresse, âge, etc)
  • Un objet " ListeFiche " peut contenir la liste de tous les objets FicheClient.

Dans le code de votre page, vous pourrez utiliser une écriture similaire à celle-ci :

 
Sélectionnez
<%
  For i = 0 to N
   Response.Write MonObjetListe(i).FicheClient.Nom
  Next
%>

Dans le cadre d'un internet, ou la connaissance des utilisateurs et des logiciels employés est plus facile que sur internet, vous pouvez même charger l'objet ASP dans une variable Session et retrouver la saisie de l'utilisateur, faite sur la page précédante ou à l'ouverture du site. Cette technique n'est pas conseillée sur un site internet, ou la diversité des configurations et des outils de navigation est bien trop importante. Un client qui désactive l'acceptation de cookies non persistants ne pourra pas naviguer sur le site utilisant des variables Session.

I-C. Répartir les objets ASP sur plusieurs PC

Autre intérêt non négligeable de l'objet ASP, vous pouvez l'installer sur une machine différente de celle qui héberge votre serveur Internet. L'objet ASP est un objet Com.

Dans le IIS Admin Manager, vous pouvez spécifier que le composant est installé dans un lot " Distant ". Cette possibilité dépend de la typologie du réseau et des droits attribués sur les machines, mais c'est possible.

Affecter des droits différents aux objets ASP

Autre intérêt non négligeable de l'objet ASP, vous pouvez indiquer l'utilisateur de l'objet. Lors de l'installation dans un Lot MTS, vous pouvez définir qu'un objet ASP qui exécute une action d'administration prendra l'identité d'un user qui possède les droits requis.

L'objet ASP permet d'accroître la sécurité du site.

Excepté l'action définie par défaut, pour communiquer avec ISAPI, vous devrez multiplier les formulaires. Or les paramètres du formulaire sont visibles lorsqu'on affiche le code source de la page HTML. Avec l'objet ASP, les informations sont passées dans un script Asp qui demeurent invisible sur le client. Le passage de l'information se fait pas affectation de propriété(s) ou par méthode.

II. Annexes

Exemples de code ASP qui mettent en œuvre un objet ASP

Tutoriel

  • Création d'une Dll ISAPI par Jean-Pierre Lamon

http://jplamon.developpez.com/isapi/