Compartir a través de


Un cliente mediante ASP.NET

Una de las más importantes características de .NET es la capacidad de ejecutar el mismo código en ASP.NET y en aplicaciones cliente independientes. Naturalmente, hay algunas diferencias: La página ASP.NET suele generar código HTML en respuesta a una solicitud HTTP y, a diferencia de los ejemplos anteriores, la propia página se compila dinámicamente. Cada página ASP.NET se analiza individualmente y se comprueba la sintaxis. Por último, se genera una clase de motor de tiempo de ejecución, que se compila y se invoca. ASP.NET almacena en caché el objeto compilado de modo que las posteriores solicitudes no tengan que pasar por la fase de compilación y, por lo tanto, se ejecutan con mayor rapidez.

La mayoría de las páginas ASP utilizan Microsoft JScript o Microsoft Visual Basic Scripting Edition (VBScript). .NET Framework incluye una versión compatible con .NET de JScript y el código de VBScript se actualiza de manera bastante natural a Visual Basic. El siguiente código muestra la página mediante Visual C#, pero la misma página podría haberse escrito también en Visual Basic o JScript:

Lista 11. Cliente en 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>

Éste es fundamentalmente el mismo código que el utilizado en los ejemplos de aplicaciones cliente independientes, salvo que crea una cadena (denominada out) y que asigna la cadena a una propiedad de un control de servidor HTML.

**Nota   **El código podría haber utilizado Response.Write para escribir la cadena directamente en la secuencia de salida HTML.

La página especifica Visual C# como lenguaje, pero podría haber utilizado también Visual Basic o incluso JScript:

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

La importación de bibliotecas en ASP.NET también es un tanto diferente:

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

Las líneas anteriores utilizan <%...%> para indicar código de archivo de comandos y especifican los espacios de nombres que se van a importar. Tal y como se ha mencionado anteriormente, los ensamblados deben estar ubicados en el subdirectorio \Bin del punto de entrada de la aplicación.

La siguiente línea es otra sutileza de esta página:

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

Indica al servidor que ejecute el código en el servidor en lugar de devolver el texto del código al cliente como parte de la secuencia HTML.

Los formularios Web Forms proporcionan un reconocimiento especial de estos seis métodos:

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

Estos métodos se conectan automáticamente a los controladores de eventos correspondientes a los eventos estándar de la página. El controlador de eventos más usado es el correspondiente a Load, que contiene la mayor parte del código del programa de ejemplo:

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

El resto del código es bastante sencillo. Simplemente concatena cadenas formando una cadena más larga denominada out y agrega ésta al código HTML con la siguiente instrucción:

Message.innerHTML = Out

Para probar esta página, el procedimiento es el siguiente. En primer lugar, es necesario que el equipo de prueba tenga instalado el siguiente software:

  • Servicios de Internet Information Server (IIS)
  • Common Language Runtime
  • ClientASP.aspx
  • Los componentes compilados CompVC.dll, CompCS.dll y CompVB.dll

Al instalar .NET Framework SDK en un equipo que ya tenga instalado IIS, dicho equipo podrá ejecutar ASP.NET. (Si se instala IIS tras instalar SDK, es preciso volver a instalar SDK.)

En segundo lugar, es necesario configurar un directorio virtual (mediante el Administrador de servicios Internet) que apunte al directorio donde está ubicado ClientASP.aspx. Para crear un directorio virtual mediante el complemento de IIS, siga este procedimiento:

  1. Seleccione el sitio Web o sitio FTP al que desee agregar un directorio.
  2. Haga clic en el botón Acción, elija Nuevo y seleccione Directorio virtual.
  3. Utilice el Asistente para nuevo directorio virtual para realizar la tarea.

Si utiliza el sistema de archivos NTFS, también podrá crear un directorio virtual haciendo clic con el botón secundario del mouse (ratón) en un directorio en el Explorador de Windows, haciendo clic en Compartir y, a continuación, en la ficha Uso compartido de Web. Para obtener más información, vea el tema "Crear directorios virtuales" en la documentación de IIS, ubicada en https://localhost/iisHelp/ en el equipo donde esté instalado IIS.

El directorio virtual también se puede crear ejecutando el archivo CreateVRoot.vbs de VBScript, ubicado en el directorio CompTest.

En tercer lugar, los archivos DLL de componentes compilados deben estar ubicados en el subdirectorio \Bin debajo del punto inicial del directorio virtual de la aplicación.

Suponiendo que todo está configurado correctamente, al ejecutar el archivo con la dirección URL https://localhost/NetSDK/PlatformIntroduction/ClientASP.aspx, el resultado será una instancia de Internet Explorer similar a ésta:

Vea también

Resumen del tutorial sobre la programación | Apéndice A: Herramientas para explorar espacios de nombres