Los atributos de la directiva @Page en la cabecera de los archivos de código aspx son diferentes dependiendo de que se trabaje dentro o fuera del entorno de Visual Studio
La directiva @Page de las páginas aspx es distinta en cada uno de los 2 casos.
Entorno de Visual Studio
Se usan estos atributos en la directiva @Page:
- CodeBehind, que especifica el nombre del archivo compilado que contiene la clase asociada con la página. El diseñador de formularios Web Forms de Visual Studio usa este atributo para averiguar dónde se encuentra la clase derivada de Page de forma que pueda crear una instancia de la misma para que se pueda trabajar con ella en tiempo de diseño. CodeBehind sólo se usa en tiempo de diseño, no se usa en tiempo de ejecución, el archivo vb como tal no es necesario, sólo la librería dll resultante de la compilación.
- Inherits, que define la clase de la que hereda la página aspx. Esta clase será buscada en la librería correspondiente de la carpeta bin de la raíz del servidor Web, según el esquema nombre_de_la_dll.nombre_de_la_clase.
Así es como debe ser configurado mientras se trabaja con la página dentro de Visual Studio. Igualmente se puede mantener esta directiva en el servidor web a condición de tener la librería dll en la carpeta bin de la raíz del servidor; es indiferente conservar o borrar el atributo CodeBehind, no se usa en tiempo de ejecución. Ejemplo:
%@ Page Language="vb" CodeBehind="clases.aspx.vb" Inherits="ejercicio.clase1" %>
Aquí la página aspx utiliza el atributo Inherits para heredar clase1 derivada de Page, clase1 está descrita en el archivo clases.aspx.vb que es precompilado en segundo plano para poder probar la página a medida que se va construyendo.
Fuera del entorno de Visual Studio
Si trabajas fuera del entorno de Visual Studio, por ejemplo creando la aplicación a mano con editor de texto y probándola desde localhost con IIS, se usan estos atributos en la directiva @Page:
- CodeFile, que especifica el archivo de código fuente en el que se define la clase heredada (es compilado dinámicamente cuando se solicita la página aspx); este archivo puede estar situado en cualquier carpeta del servidor, sólo hay que especificarlo correctamente en la ruta del atributo CodeFile.
- Inherits, que define la clase que hereda la página aspx (puede ser cualquier clase derivada de la clase Page).
Así es como debe ser configurado al colocar las páginas en el servidor web:
<% @Page Language="vb" CodeFile="clases.aspx.vb" Inherits="clase1" %>
Aquí la página aspx hereda clase1, que está descrita en el archivo clases.aspx.vb el cual es compilado en tiempo de ejecución.