Partager via


Client utilisant ASP.NET

L'une des fonctionnalités les plus importantes de .NET est la capacité d'exécuter le même code dans ASP.NET que dans des applications clientes autonomes. Bien entendu, il existe quelques différences. La page ASP.NET produit généralement du code HTML en réponse à une demande HTTP et la page elle-même est compilée dynamiquement, contrairement à ce qui était fait pour les exemples précédents. Chaque page ASP.NET est analysée individuellement et la syntaxe est vérifiée. Enfin, une classe d'exécution .NET est produite, compilée et appelée. ASP.NET met l'objet compilé en cache, de sorte que les demandes suivantes évitent l'étape de compilation et s'exécutent ainsi plus rapidement.

La plupart des pages ASP existantes utilisent Microsoft JScript ou Microsoft Visual Basic Scripting Edition (VBScript). Une version compatible .NET de JScript est fournie avec le .NET Framework et le code VBScript est presque naturellement mis à niveau vers Visual Basic. Le code suivant affiche la page à l'aide de Visual C#, mais la même page aurait pu tout aussi facilement être écrite dans Visual Basic ou JScript :

Listing 11. Client dans ASP.NET (ClientASP.aspx)

<%@ Page Language="C#" Description="ASP.NET Component Test" %>
<%@ Import Namespace="CompCS"%>
<%@ Import Namespace="CompVC"%>
<%@ Import Namespace="CompVB"%>

<html>
<script language="C#" runat=server>
void Page_Load(Object sender, EventArgs EvArgs) {
   String Out = "";
   Int32 Count = 0;

   // Iterate through the component's strings, and concatenate them.
   Out = Out + "Strings from C# StringComponent<br>";
   CompCS.StringComponent myCSStringComp = new 
   CompCS.StringComponent();
   for (int index = 0; index < myCSStringComp.Count; index++) {
     Out = Out + myCSStringComp.GetString(index) + "<br>";
   }
   Out = Out + "<br>";

   // Iterate throught component's strings, and concatenate them.
   Out = Out + "Strings from Visual C++ StringComponent<br>";
   CompVC.StringComponent myVCStringComp = new 
   CompVC.StringComponent();
   for (int index = 0; index < myVCStringComp.Count; index++) {
      Out = Out + myVCStringComp.GetString(index) + "<br>";
   }
   Out = Out + "<br>";

   // Iterate over component's strings and concatenate.
   Out = Out + "Strings from Visual Basic StringComponent<br>";
   CompVB.StringComponent myVBStringComp = new 
   CompVB.StringComponent();
   for (int index = 0; index < myVBStringComp.Count; index++) {
      Out = Out + myVBStringComp.GetString(index) + "<br>";
   }

   Message.InnerHtml = Out;
}
</script>
<body>
   <span id="Message" runat=server/>
</body>
</html>

Il s'agit essentiellement du même code que celui des exemples du client autonome, excepté qu'il crée une chaîne (appelée out) et qu'il assigne la chaîne à une propriété d'un contrôle serveur HTML.

**Remarque   **Le code aurait pu utiliser le Response.Write habituel pour écrire la chaîne directement dans le flux de sortie HTML.

La page spécifie Visual C# comme langage, mais Visual Basic ou même JScript auraient pu tout aussi facilement être utilisés :

<%@ Page Language="C#" Description="ASP.NET Component Test"

L'importation de bibliothèques dans ASP.NET est également légèrement différente :

<%@ Import Namespace="CompVB"%>
<%@ Import Namespace="CompCS"%>
<%@ Import Namespace="CompVC"%>

Les lignes précédentes utilisent <%...%> pour indiquer du code de script et elles spécifient les espaces de noms à importer. Comme indiqué plus haut, les assemblys doivent se trouver dans le sous-répertoire \Bin du point de départ de l'application.

La ligne suivante est une autre subtilité de cette page :

<script language="C#" runat="server">

Elle indique au serveur d'exécuter le code sur le serveur plutôt que de renvoyer le texte du code au client dans le flux HTML.

Web Forms offre une reconnaissance spéciale des six méthodes suivantes :

  • Page_Init
  • Page_Load
  • Page_DataBind
  • Page_PreRender
  • Page_Dispose
  • Page_Error

Ces méthodes sont automatiquement connectées aux gestionnaires d'événements pour les événements de la page standard. Le gestionnaire d'événements le plus couramment utilisé est celui de Load et il contient la majeure partie du code de l'exemple de programme :

void Page_Load(Object sender, EventArgs EvArgs) {...}

Le reste du code est très simple. Il concatène simplement les chaînes dans une chaîne plus longue appelée out et ajoute out au code HTML avec cette instruction :

Message.innerHTML = Out

Quelques opérations sont nécessaires pour tester cette page. Tout d'abord, il est nécessaire que les logiciels suivants soient installés sur l'ordinateur qui effectue le test :

  • Services IIS (Internet Information Services).
  • Le Common Language Runtime ;
  • ClientASP.aspx ;
  • Les composants compilés CompVC.dll, CompCS.dll et CompVB.dll.

L'installation du Kit de développement .NET Framework SDK sur un ordinateur sur lequel IIS est déjà installé permet à cet ordinateur d'exécuter ASP.NET. (Si vous installez IIS après le Kit de développement SDK, vous devrez réinstaller le Kit de développement SDK.)

Vous devez ensuite configurer un répertoire virtuel (à l'aide du Gestionnaire des services Internet) qui pointe vers le répertoire où se trouve ClientASP.aspx. Pour créer un répertoire virtuel à l'aide du composant logiciel d'IIS, procédez de la manière suivante :

  1. Sélectionnez le site Web ou FTP auquel vous souhaitez ajouter un répertoire.
  2. Cliquez sur le bouton Action, pointez sur Nouveau et sélectionnez Répertoire virtuel.
  3. Utilisez l'assistant Création de répertoire virtuel pour accomplir la tâche.

Si vous utilisez le système de fichiers NTFS, vous pouvez également créer un répertoire virtuel en cliquant avec le bouton droit sur un répertoire dans l'Explorateur Windows, en cliquant sur Partager, puis sur l'onglet Partage Web. Pour plus d'informations, consultez la rubrique « Creating Virtual Directories » (Création de répertoires virtuels) dans la documentation de IIS, qui se trouve à l'adresse https://localhost/iisHelp/ sur l'ordinateur sur lequel IIS est installé.

Le répertoire virtuel peut également être créé en exécutant le fichier VBScript CreateVRoot.vbs, qui se trouve dans le répertoire CompTest.

Les DLL des composants compilés doivent se trouver dans le sous-répertoire \Bin sous le point de départ pour le répertoire virtuel de l'application.

En supposant que tout est configuré correctement, l'exécution du fichier avec l'URL https://localhost/NetSDK/PlatformIntroduction/ClientASP.aspx engendre une instance d'Internet Explorer dont l'écran est similaire à celui-ci :

Voir aussi

Résumé du didacticiel de développement | Annexe A : Outils pour l'exploration des espaces de noms