De nos jours, de nombreux sites Web qui utilisent ASP n'utilisent pas du tout des composants. Aujourd'hui, le rédacteur en chef de Fooxin Technology Channel décrit brièvement les services de division entre ASP et Components. J'espère qu'il vous sera utile d'apprendre ces connaissances.
Services de division ASP et composants
ASP est le plus souvent utilisé pour créer des fichiers HTML ou XML à utiliser par les clients sur des serveurs, nous discutons donc principalement de ce scénario d'utilisation. Cela soulève une question commune: si les pages ASP sont sur le serveur, appartiennent-elles à une partie de la couche commerciale? Dans le monde des composants, la réponse est généralement non. Bien qu'ASP fonctionne sur le serveur et puisse être dans le même espace que le serveur d'applications, cela ne le fait pas partie de la logique métier.
Avec l'interface utilisateur, les outils en croissance ou à mesure que des solutions plus commerciales sont activées, la distinction claire apportera une énorme récompense.
Cela dit, examinons certains des critères de division de couche commerciale et de présentation les plus importants: la couche commerciale:
Code d'interface utilisateur séparé de la logique métier. Cela comprend l'écriture de code couplé à l'interface utilisateur, comme l'utilisation d'un objet MTS qui utilise un composant interne ASP pour le séparer du code de logique métier, comme s'il était dans une DLL différente.
Séparer les transactions des pages ASP. ASP de transaction est très bon dans certains cas, mais les composants et les applications à plusieurs niveaux le modifient. Les composants ne doivent pas compter sur la couche client pour gérer leurs transactions et sa sémantique logique métier.
Placez le composant représentant (composant qui utilise la demande et la réponse) dans la même machine et / ou le même processus que le serveur Web. Si un objet utilisant l'objet de composant interne ASP est placé sur une machine distante, tous les appels vers le composant interne se produiront dans un formulaire de rappel. Le serveur COM + qui appelle le client IIS est un serveur COM +, qui réduit considérablement les performances et complique la configuration de sécurité. Ces objets Tweak peuvent être placés dans une "activation" de la bibliothèque marquée de l'application COM +.
ASP existe sur le serveur, de sorte que la page ASP doit se conformer aux règles de partage des ressources et garder à l'esprit l'évolutivité. Veuillez consulter les détails ci-dessous:
Dans une "session", la direction devrait essayer d'éviter le statut spécifique à l'utilisateur.
Gardez ASP sans état et autorisez les pools de ressources dans la mesure du possible.
Méthode de fonctionnement
Lorsque vous évaluez si un segment de code appartient à la logique métier ou à la couche de présentation, demandez-vous: "Si je dois remplacer ma page ASP par une application téléphonique de type bouton, ce code est-il toujours utile?" Si la réponse est "oui", vous pouvez essayer de le diviser en code logique métier ou code d'assistance interface utilisateur.
Si le code ne peut pas être utilisé après avoir modifié le client, ou s'il est une aide pour construire l'interface utilisateur, le code appartient à la couche de service de représentation. Il se trouve dans la page ASP ou dans un composant qui utilise les composants internes ASP. Il n'appartient pas au composant d'objet commercial.
Comprendre la différence entre le bureau et le client ASP
ASP est un client spécial de composants, contrairement aux applications Win32 traditionnelles à thread unique sur le bureau. Les principales différences sont résumées comme suit.
Gestion des threads: ASP est un client multithread. Cela signifie qu'il peut y avoir de nombreuses activités simultanées qui se déroulent ensemble, peut-être gérer des pages ASP différentes en même temps. Cela signifie que l'objet ne peut pas prétendre à faussement qu'il s'agit du seul utilisateur à occuper exclusivement le système. Cela peut provoquer des réactions inattendues, par exemple, pour développer une mauvaise habitude de stocker des objets dans une session ASP ou des variables d'application.
Environnement de sécurité: ASP est effectué par Internet Information Services 5.0 sur le site Web, avec trois niveaux d'isolement: faible, moyen et élevé. Même ces sites Web peuvent avoir différents paramètres de sécurité, autoriser ou refuser un accès anonyme, authentifier les clients, etc. Tous ces paramètres créent un grand nombre de schémas où différents comptes d'utilisateurs finissent par utiliser vos objets.
Croissance facilement: ce n'est pas un problème technique, mais un effet secondaire des installations fournies par les applications Web.
Traditionnellement, l'ajout d'une base d'utilisateurs aux applications de bureau nécessite une planification minutieuse des transferts à des nombres connus de clients. ASP a changé le processus. Après opération opérationnelle, l'application de base ASP-visuelle peut être facilement ouverte pour une utilisation par tous les employés, tous les partenaires commerciaux et tous les clients localement ou dans le monde.
Il peut être décrit de cette manière - un seul e-mail avec un lien hypertexte peut décocher la base d'utilisateurs. Votre application est-elle prête pour cela? La seule façon de savoir est de faire des tests de force sur votre site Web pour obtenir la valeur attendue des performances réelles.
Comment devriez-vous utiliser des objets Visual Basic dans ASP? Créez et annulez vos objets dans la portée de la page.
Autrement dit, rendre la page ASP sans état que possible et ne dépendre que des variables de session ou d'application dans un état temporaire. Ne stockez pas d'objets en variables de session ou d'application. Cela verrouille le thread ASP à votre session, annule toutes les valeurs attendues pour l'évolutivité. C'est-à-dire que le nombre d'utilisateurs traités par le serveur Web ne dépassera pas des dizaines d'utilisateurs. Si vous devez stocker du contenu dans une session ou une application, faites-en des données plutôt que dans un objet.
Il existe de nombreuses autres directives à suivre. Nous vous recommandons de lire la colonne «Servin’ It Up »écrite par JD Meier sur MSDN Voices. Cette colonne comprend un large éventail de techniques, de pratiques et de conseils qui aident à développer des applications ASP et composants évolutives et fiables.
Ne stockez pas de références dans des objets VB en session ou en application
Tous les composants Visual Basic 6.0 sont des "threads unitaires", ce qui signifie qu'ils s'exécutent tous en unités STA. Cela signifie que si un objet est créé dans un thread, tous les appels à cet objet doivent être desservis par le même thread. De nombreux threads (des utilisateurs simultanés de sites Web) utilisent la même instance de l'objet STA, provoquant une série d'activités qui peuvent devenir des goulots d'étranglement dans l'application.
De plus, le stockage des objets STA créés avec Server.CreateObject dans la portée de la session peut contacter efficacement le thread d'exécution à l'utilisateur actuel, limitant ainsi le nombre maximum d'utilisateurs simultanés de l'application au 20xn par défaut (n = nombre de processeurs).
Méthode de fonctionnement
Si vous suivez nos recommandations pour rendre les objets sans état, vous n'avez pas besoin de stocker des références pour la réutilisation du client et de les stocker dans la portée de l'application. Les clients pourront créer, utiliser et annuler leurs propres objets indépendamment. Cela réduit la nécessité de conserver les objets spécifiques à la session car ils ne conservent pas l'état spécifique à la session.
Le moyen recommandé est de rendre l'objet sans état, qui accède à la base de données ou à d'autres zones de stockage (telles que les cookies et LDAP) en cas de besoin.
Si vous avez besoin d'utiliser des données à l'échelle de la session ou de l'application, stockez les données, plutôt que l'objet qui traite les données, ici. Vous pouvez créer une classe qui résume le traitement de la valeur souhaitée.
Apprenez un nouveau contenu dans IIS 5.0
Internet Information Server 5.0 ajoute de nombreuses nouvelles fonctionnalités. Ces améliorations ont été écrites dans l'article MSDN de JD Meier: Utilisez ASP dans IIS 5.0 (anglais).
Ce qui précède est une brève description des services de division entre ASP et composants partagés par l'éditeur de la False New Technology Channel. J'espère que vous avez plus de connaissances sur cet aspect, ce qui aidera le développement de l'ASP.