Información general sobre clases de páginas ASP.NET

Actualización: noviembre 2007

Cuando se solicita una página ASP.NET y se representa el marcado en un explorador, no sólo se ejecuta el código que se creó para la página, sino que ASP.NET genera y compila, en tiempo de ejecución, una o más clases que realizan efectivamente las tareas necesarias para ejecutar la página. En este tema se proporciona información general sobre el código que se genera en tiempo de ejecución.

Generar y ejecutar el código de la clase de página

Una página ASP.NET se ejecuta como una unidad, al combinar los elementos del servidor de la página, como los controles, con el código de control de eventos que se ha escrito. No es necesario precompilar las páginas en ensamblados. ASP.NET las compila dinámicamente y las ejecuta la primera vez que las solicita un usuario. Si se realiza cualquier cambio en la página o en los recursos de los que depende, se vuelve a compilar automáticamente. La clase o clases que crea el compilador dependen de si la página utiliza el modelo de un solo archivo o el modelo de código subyacente.

ASP.NET también admite precompilación de un sitio Web para mejorar el rendimiento y realizar la comprobación de errores al igual que admite la implementación del sitio. Para obtener más información, vea Información general sobre la compilación previa de sitios Web ASP.NET. La precompilación funciona para ambos modelos de página, el de un solo archivo y el de código subyacente, y el resultado del compilador es el mismo para los dos.

Páginas de un solo archivo

En una página de un solo archivo, el marcado, los elementos del servidor y el código de control de eventos se incluyen todos en un único archivo .aspx. Cuando se compila la página, el compilador genera y compila una clase nueva que deriva de la clase base Page o una clase base personalizada definida con el atributo Inherits de la directiva @ Page. Por ejemplo, si crea una nueva página Web ASP.NET llamada SamplePage1 en el directorio raíz de la aplicación, entonces se deriva una clase nueva llamada ASP.SamplePage1_aspx de la clase Page. Para las páginas dentro de las subcarpetas de la aplicación, el nombre de la subcarpeta se utiliza como parte de la clase generada. La clase generada contiene las declaraciones de los controles de la página .aspx, los controladores de eventos y el resto del código personalizado.

Después de generar la página, la clase generada se compila en un ensamblado, éste se carga en el dominio de la aplicación y entonces, se crea una instancia de la clase de la página y se ejecuta para representar el resultado al explorador. Si realiza cambios a la página que afecten a la clase generada, ya sea al agregar controles o modificar su código, se invalida el código de clase compilado y se genera una clase nueva. Para obtener más información sobre la compilación en ASP.NET, vea Información general sobre la compilación de ASP.NET.

La ilustración siguiente muestra el modelo de herencia de la clase de página en una página Web ASP.NET de un solo archivo:

Páginas de código subyacente

En el modelo de código subyacente, el marcado y los elementos del servidor de la página, incluidas las declaraciones de control, se encuentran en un archivo .aspx, mientras que el código de página se encuentra en un archivo de código separado. El archivo de código contiene una clase parcial, es decir, una declaración de clase con la clave partial (Partial en Visual Basic) que indica que contiene solo una parte del código total que conforma la clase completa para la página. En la clase parcial, se agrega el código que necesita la aplicación para la página. Éste suele estar formado por controladores de eventos, pero puede incluir todas las propiedades o métodos que sean necesarios.

El modelo de herencia de las páginas de código subyacente es algo más complejo que el de las páginas de un solo archivo. El modelo es el siguiente:

  1. El archivo de código subyacente contiene una clase parcial que hereda de una clase base de página. Esta clase puede ser Page; o bien, puede proceder de otra clase derivada de Page.

  2. El archivo .aspx contiene un atributo Inherits en la directiva @ Page que indica la clase parcial de código subyacente.

  3. Cuando se compila la página, ASP.NET genera una clase parcial basada en el archivo .aspx; esta clase es una clase parcial del archivo de clases de código subyacente. El archivo de clase parcial generado contiene las declaraciones de los controles de la página. Esta clase parcial permite utilizar el archivo de código subyacente como parte de una clase completa sin que sea necesario declarar los controles explícitamente.

  4. Finalmente, ASP.NET genera otra clase que hereda de la clase generada en el paso 3. Esta segunda clase generada contiene el código necesario para generar la página. La segunda clase generada y la clase de código subyacente se compilan en un ensamblado que se ejecuta para representar el resultado en el explorador.

La ilustración siguiente muestra el modelo de herencia de la clase de página en una página Web ASP.NET de código subyacente:

Vea también

Conceptos

Modelo de código de las páginas web ASP.NET