ISAPI vs Composant ASP (Objet com)

JJM

L'objet de ce billet n'est pas de prendre parti pour l'une ou l'autre technologie, mais de mettre en évidence les avantages et inconvénients des deux technologies. Si ISAPI est plus portable, et dans certains cas plus rapide, l'objet Com n'est pas dénué d'intérêts, en ce sens qu'il est plus permissif et plus performant en matière de sécurité.

- Titre : ISAPI vs Composant ASP (Objet com)

- Auteur : JJM

- Parution : 29 avril 2004

- Mise à jour : 17 janvier 2020

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Developpez.com. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Portabilité des deux technologies

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

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

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

- II. Annexes

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 plupart des cas, à besoin égal, elles sont également plus rapides à développer pour les programmeurs que nous sommes. Toutefois, la différence en matière de performances mérite d'être relativisée.

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

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élai 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 objets 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 :

&#160;&#160;VarName = MonObjet.GetName

ou

&#160; IdClient = Request.QueryString(&#8216;'ID'')

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

Côté Delphi, la méthode RecupFicheClient aura la forme suivante&#160;:

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

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 :

<%
&#160; For i = 0 to N
&#160;&#160; Response.Write MonObjetListe(i).FicheClient.Nom
&#160; 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édente 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 demeure invisible sur le client. Le passage de l'information se fait par 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

https://jplamon.developpez.com/isapi/