Compartir a través de


Compilar proyectos de aplicaciones web

Actualización: noviembre 2007

El tipo de proyecto de aplicación web proporciona una alternativa al tipo de proyecto de sitio web que se introdujo en Microsoft Visual Studio 2005. Este modelo de proyecto de aplicación web se basa en el modelo de proyecto web de Visual Studio .NET 2003. Fue creado para simplificar la conversión de proyectos web de Visual Studio .NET 2003 a las versiones posteriores de Visual Studio y para reducir la necesidad de cambios de código. Los archivos de código del proyecto se precompilan en un ensamblado único mediante Microsoft Build Engine (MSBuild). El compilador de ASP.NET compila dinámicamente en el servidor las páginas Web ASP.NET (.aspx) y los controles de usuario (.ascx).

Nota:

Puede crear proyectos de aplicación web ASP.NET usando Visual Studio o Visual Web Developer Express.

Modelo de compilación

El modelo de compilación de proyectos de aplicaciones Web es similar al modelo de compilación de Visual Studio .NET 2003. Todos los archivos de código (archivos de clase independientes, subyacentes y de diseñador) del proyecto se precompilan en un ensamblado único. De forma predeterminada, este ensamblado se genera y conserva en la carpeta Bin. Debido a que este modelo de compilación crea un único ensamblado, puede especificar atributos como el nombre y la versión del ensamblado. También puede especificar la ubicación del ensamblado de salida.

Los proyectos de aplicación web se definen mediante un archivo de proyecto en lugar de mediante una carpeta de proyecto, como sucede en los proyectos de sitio web. El archivo de proyecto contiene los archivos que se incluyen en el proyecto así como las referencias al ensamblado y otras configuraciones de metadatos de proyecto. Los archivos que se encuentran en la carpeta de proyecto pero que no se definen en el archivo de proyecto no se compilan como parte del proyecto de aplicación web. En el archivo de proyecto (.*proj) que se genera para cada proyecto se hace referencia a la configuración del proyecto que se agrega y se cambia mediante Visual Studio o Visual Web Developer Express.

Para ejecutar y depurar páginas, debe compilar el proyecto de aplicación Web completo. La generación del proyecto de aplicación web completo puede ser rápida porque Visual Studio y Visual Web Developer Express usan un modelo de compilación incremental que únicamente genera los archivos que han cambiado.

Para obtener más información, vea Información general sobre proyectos de aplicaciones web.

Precompilar archivos de clase

Los proyectos de aplicación web usan MSBuild para precompilar los archivos de clase. Estos archivos de clase se compilan en un único ensamblado. De forma predeterminada, se colocan en la carpeta Bin. Puede extender y personalizar el proceso de compilación mediante reglas de extensibilidad estándar de MSBuild. Para obtener más información, vea Información general sobre MSBuild.

En la tabla siguiente se describen los tipos de archivos de clase de proyecto de aplicación Web que se compilan en un ensamblado único.

Tipo de archivo de clase

Descripción

Independiente

Archivos de clase que se pueden crear y agregar a la carpeta Bin.

Subyacente

Código definido por el usuario que se relaciona directamente con los archivos de contenido.

Diseñador

Código que se genera automáticamente. No debe modificar el archivo .designer.

Personalizar opciones de compilación

Puede especificar el nombre, la versión y otros detalles del ensamblado de salida utilizando elementos de la página de propiedades Aplicación de la ventana Diseñador de proyectos. Utilice la página Generar de la ventana Diseñador de proyectos para especificar la configuración de la compilación del proyecto. Por ejemplo, puede especificar cómo se administran los errores y especificar detalles sobre el resultado del ensamblado. Además puede agregar pasos anteriores y posteriores a la generación durante la compilación estableciendo valores de la página de propiedades Eventos de compilación. Para obtener más información sobre las páginas de propiedades, vea Proyectos, Elementos de la interfaz de usuario.

Establecer la propiedad Build Action

De forma predeterminada, MSBuild sólo compila archivos de clase de proyectos de aplicación web cuya propiedad Acción de compilación está establecida en Compilar. Sin embargo, si un proyecto de aplicación web incluye archivos de clase en la carpeta App_Code, el compilador de ASP.NET compilará estos archivos de clase. Esto es así aunque la acción de compilación no esté establecida de forma explícita en Compilar.

Nota:

La carpeta App_Code existe para los proyectos de sitio web en Visual Studio 2005. Por lo general, esta carpeta no se incluye en los proyectos de aplicación web. Para obtener más información sobre la carpeta App_Code , vea Carpetas de código compartido en sitios Web ASP.NET.

Compilación dinámica

Aunque los archivos de código del proyecto se precompilan en un ensamblado único utilizando MSBuild, el compilador de ASP.NET compila dinámicamente en el servidor las páginas web ASP.NET (.aspx) y los controles de usuario (.ascx) de un proyecto de aplicación web. En un proyecto de aplicación web, las páginas web y los controles de usuario pueden utilizar el atributo CodeBehind y el atributo Inherits en sus directivas @ Page o @ Control. El atributo CodeBehind hace referencia al archivo de código subyacente que se va a utilizar. El atributo Inherits señala a un espacio de nombres y a una clase en el archivo de código subyacente. 

En los proyectos de aplicación web, puede realizar cambios limitados en las páginas web ASP.NET del sitio después de compilarlas e implementarlas. Por ejemplo, se puede cambiar la organización de los controles, colores, fuentes y otros aspectos relacionados con el aspecto de las páginas. Cuando el sitio se ejecuta por primera vez, ASP.NET realiza otra compilación para crear el resultado a partir del marcado.

Puede declarar un control estáticamente en el archivo de código subyacente siempre que lo haga público o protegido. Dado que la página .aspx hereda del archivo de código subyacente, usará esa declaración y no declarará una nueva. El desplazamiento de la declaración de un control al archivo de código subyacente es útil en las situaciones siguientes:

  • Cuando el tipo del control debe derivarse de un tipo estándar.

  • Si desea un ámbito para el control distinto del ámbito predeterminado. El ámbito hace referencia al nivel de accesibilidad, como public, private, internal, protected y protected internal.

  • Si desea agregar atributos de metadatos a la declaración del control.

  • Si desea escribir comentarios de código XML para la declaración del control.

Para obtener más información acerca de cómo agregar controles, vea Cómo: Agregar controles a una página Web ASP.NET mediante programación.

Implementación

Dado que todos los archivos de clase se compilan en un único ensamblado, sólo es necesario implementar dicho ensamblado, junto con los archivos .aspx y .ascx y otros archivos de contenido estático. En este modelo, no se compilan los archivos .aspx hasta que los solicita el explorador.

Sin embargo, también puede compilar los archivos .aspx e incluirlos en un ensamblado único para la implementación. Para ello, utilice el complemento de proyectos de implementación en Web que puede descargar para Visual Studio. Para descargar este complemento, vea Visual Studio 2005 Web Deployment Projects en el sitio web del Centro para desarrolladores de ASP.NET. Para obtener más información sobre cómo crear proyectos de aplicaciones Web, vea Cómo: Publicar proyectos de aplicaciones web.

Vea también

Conceptos

Información general sobre MSBuild

Información general sobre proyectos de aplicaciones web

Carpetas de código compartido en sitios Web ASP.NET

Información general sobre páginas Web ASP.NET

Referencia

Eventos de compilación (Página, Diseñador de proyectos) (C#)

Generar (Página, Diseñador de proyectos) (C#)

@ Page

Otros recursos

Conceptos de MSBuild