Mejoras en Visual Studio 2005

de Microsoft

Visual Studio 2005 proporciona a los desarrolladores de aplicaciones web una larga lista de mejoras para los proyectos web.

Visual Studio 2005 proporciona a los desarrolladores de aplicaciones web una larga lista de mejoras para los proyectos web. A pesar de la potencia de Visual Studio .NET 2002 y 2003, hubo muchas quejas en la forma de administrar los proyectos web. Visual Studio 2005 agrega un número significativo de características nuevas para abordar estas quejas. Para los que prefieren la forma en que Visual Studio .NET 2003 administra la compilación de aplicaciones web, vea Proyectos de aplicación web.

En este módulo, se describirán las mejoras en la creación, administración y desarrollo de proyectos web. En un módulo posterior, se abordarán las mejoras en la creación de proyectos web y su implementación.

Extensiones de servidor de FrontPage

En Visual Studio .NET 2002 y 2003 se necesitaban Extensiones de servidor de FrontPage inicialmente para crear o compilar proyectos web. Los desarrolladores podían elegir entre dos modos de acceso diferentes (Extensiones de servidor de FrontPage o el modo de acceso a archivos), en los que se usaban Extensiones de servidor de FrontPage para realizar tareas como establecer la raíz de la aplicación en IIS, etc.

En Visual Studio 2005 se quita la dependencia de las Extensiones de servidor de FrontPage para proyectos locales. Ahora, en Visual Studio 2005 se accede directamente a la metabase de IIS en lugar de usar las extensiones de servidor de FrontPage. En Visual Studio 2005 también se agrega compatibilidad con FTP, lo que permite el acceso remoto al proyecto sin necesidad de extensiones de servidor de FrontPage.

Para aquellos desarrolladores que quieran usar extensiones de servidor de FrontPage en sus proyectos, la opción sigue estando disponible. Pero según comentarios sólidos de la comunidad de desarrolladores de ASP.NET, no es un requisito.

Nota:

Las extensiones de servidor de FrontPage siguen siendo necesarias para la creación remota de proyectos, la apertura, etc.

Información general del Servidor de desarrollo de ASP.NET

En Visual Studio 2005 se incluye un nuevo servidor web denominado Servidor de desarrollo de ASP.NET. (Este servidor web se conocía anteriormente como Cassini).

El servidor de desarrollo de ASP.NET ofrece varias ventajas.

  • Ahora, los usuarios que no son administradores pueden realizar el desarrollo y la depuración en un servidor web.
  • El Servidor de desarrollo de ASP.NET asigna dinámicamente directorios virtuales a cualquier ubicación del sistema de archivos, lo que permita que haya ubicaciones de proyecto flexibles.
  • Los usuarios de Windows XP Professional que ya usan IIS ahora podrán crear aplicaciones web que no afectarán a la estructura de archivos o carpetas de su sitio web predeterminado en IIS.

No se necesita ninguna configuración especial para aprovechar las ventajas del servidor de desarrollo de ASP.NET. Cuando se depura o examina un proyecto web hospedado en el sistema de archivos, Visual Studio 2005 inicia automáticamente una instancia del servidor de desarrollo de ASP.NET en un puerto aleatorio para atender la solicitud.

Más adelante en este módulo se ofrecerá información adicional sobre el servidor de desarrollo de ASP.NET.

Administración de archivos mejorada

En Visual Studio 2002 y 2003, un archivo del proyecto (.vbproj para VB.NET y .csproj para C#) almacena información sobre todos los archivos de la aplicación web. La presentación del Explorador de soluciones se basa en la información del archivo del proyecto. Por este motivo, el Explorador de soluciones a menudo muestra información inexacta cuando se han usado editores externos. En Visual Studio 2002 y 2003 normalmente se sobrescribían los cambios de archivo o no se mostraba la versión más reciente de los archivos.

En Visual Studio 2005 se ignora el archivo de proyecto. En su lugar, se lee la información de archivo y carpeta directamente desde el disco, lo que da lugar a una visualización precisa de los archivos del proyecto. Como la carpeta References de Visual Studio 2002 y 2003 no representa una carpeta real en la aplicación web, en Visual Studio 2005 también se quita la carpeta References del Explorador de soluciones. Para acceder a las referencias del proyecto en Visual Studio 2005, debe usar las páginas de propiedades del proyecto.

Creación de proyectos web

En Visual Studio 2005, los desarrolladores web tienen muchas opciones nuevas para la creación de proyectos. Ahora los sitios web se pueden crear en cualquier lugar del sistema de archivos y, después, se pueden depurar o examinar mediante el nuevo servidor de desarrollo de ASP.NET. Los desarrolladores también pueden crear sitios web mediante FTP.

Haga clic aquí para ver un tutorial de vídeo sobre cómo crear proyectos web en Visual Studio 2005.

Abrir vídeo en pantalla completa

Proyectos del sistema de archivos

Como ha visto en el tutorial de vídeo, puede elegir crear sitios web en el sistema de archivos en el equipo local o en una ubicación remota mediante un recurso compartido de archivos. Los sitios web que se crean en el sistema de archivos se examinan y depuran mediante el servidor de desarrollo de ASP.NET.

Nota:

El servidor de desarrollo de ASP.NET puede provocar cierta confusión para los clientes. Si un proyecto web se crea en el sistema de archivos en la estructura de directorios de IIS (es decir, c:/inetpub/wwwroot), el sitio web se seguirá explorando desde el servidor de desarrollo de ASP.NET cuando se inicia desde Visual Studio 2005. Por tanto, cualquier configuración de IIS (como los métodos de autenticación) no es aplicable.

El proyecto web predeterminado también quita una gran cantidad de la sobrecarga y solo incluye una página de Default.aspx, un archivo default.cs y una carpeta App/_Data. Las carpetas web.config y especiales (como app/_code) se agregan a medida que son necesarias. El proyecto web solo incluye los archivos y carpetas que necesita.

Proyectos HTTP

Los proyectos HTTP pueden ser proyectos creados en un sitio web de IIS local o en un sitio web remoto. La ubicación predeterminada del proyecto es http://localhost. Si hace clic en el botón Examinar, hay dos opciones HTTP: IIS local y Sitio remoto. La principal diferencia entre estas dos opciones es el método para mostrar la información del sitio web en el cuadro de diálogo Elegir ubicación y en cómo se copian los archivos en el servidor web.

La opción IIS local lee la información del sitio de la metabase en el equipo local y los archivos se copian mediante el sistema de archivos. La opción Sitio remoto usa las extensiones de servidor de FrontPage y la información del sitio y los archivos se copian mediante HTTP y llamadas RPC de extensiones de servidor de FrontPage.

Nota:

El archivo vs###/_tmp.htm y get/_aspx/_ver.aspx ya no se usan para determinar la información de la versión.

La opción HTTP predeterminada es IIS local. Esta opción lee la metabase de IIS para determinar qué sitios están disponibles y la ubicación en la que se va a crear contenido. Para seleccionar otra carpeta o directorio virtual, selecciónelo en la vista de árbol. También puede crear un directorio virtual, marcar carpetas como aplicaciones, así como eliminar directorios virtuales existentes desde este cuadro de diálogo.

The Choose Location Dialog

Figura 1: Cuadro de diálogo Elegir ubicación

A diferencia de las versiones anteriores de Visual Studio, si activa la casilla Usar Capa de sockets seguros y el certificado SSL no coincide con la dirección URL a la que navega, se le mostrará un cuadro de diálogo alerta de seguridad que le pregunta si quiere continuar. Con Visual Studio .NET 2003, si el certificado no coincidía, se producía un error al crear el proyecto.

Security Alert Regarding SSL Certificate

Figura 2: Alerta de seguridad relacionada con el certificado SSL

Nota sobre los encabezados host

Si va a crear una aplicación web en un sitio enlazado a una dirección IP específica, deberá asegurarse de que un encabezado host está configurado. De lo contrario, Visual Studio creará el sitio en http://localhost, pero la dirección IP no se resolverá correctamente cuando el sitio se examine o depure desde el IDE.

Si selecciona la opción Sitio remoto, el cuadro de diálogo cambia para permitirle escribir la dirección URL de destino del nuevo sitio web. Esta dirección URL debe estar en un servidor que tenga habilitadas las extensiones de servidor de FrontPage. Si quiere trabajar con el servidor web local mediante las extensiones de servidor de FrontPage, puede usar la opción Sitio remoto y especificar una dirección URL local.

Creating a Web Site on a Remote Server

Figura 3: Creación de un sitio web en un servidor remoto

Al crear una aplicación en un sitio remoto mediante SSL, si el certificado SSL no coincide, el cuadro de diálogo de confirmación es ligeramente diferente al que se muestra al usar la opción IIS local.

The Remote Site Security Alert

Figura 4: Alerta de seguridad del sitio remoto

FTP

En Visual Studio 2005 se presenta la opción de crear sitios web mediante FTP. Cuando se usa esta opción, el IDE crea los archivos localmente en la carpeta temporal users y, después, usa FTP para mover los archivos a la ubicación FTP.

Nota:

La ubicación de la carpeta temporal es c:/Documents and Settings/<Usuario>/Local Settings/Temp/VWDWebCache/<Server>/_<nombre de la aplicación>

Al usar la opción FTP, se le mostrará un cuadro de diálogo Elegir ubicación. Escriba la información de conexión FTP necesaria en este cuadro de diálogo, como se muestra a continuación.

The Choose Location Dialog for FTP

Figura 5: Cuadro de diálogo Elegir ubicación para FTP

Laboratorio: Configuración del sitio FTP y creación de un proyecto

En los pasos siguientes se configura el sitio FTP para que un usuario tenga una ubicación que solo pueda cargar mediante FTP.

Instalación del servicio FTP

  1. Abra Agregar o quitar programas y seleccione Agregar o quitar componentes de Windows
  2. Seleccione Internet Information Services (Servidor de aplicaciones en Windows 2003) y haga clic en Detalles.
  3. Active Servicio de protocolo de transferencia de archivos (FTP) y haga clic en Aceptar.
  4. Haga clic en Siguiente para instalar el servicio FTP.

Creación de una carpeta para contenido

  1. En el Explorador de Windows, cree una carpeta denominada User1 dentro de c:/inetpub/wwwroot.

Configure carpetas y permisos en las carpetas.

  1. Abra el complemento Internet Information Services desde Herramientas administrativas. Ahora tendrá una carpeta Sitios FTP bajo el nodo del nombre del equipo.
  2. Expanda Sitios FTP.
  3. Haga clic con el botón derecho en el Sitio FTP predeterminado, seleccione Nuevo, después Directorio virtual y luego haga clic en Siguiente.
  4. Escriba User1 como nombre del directorio virtual y haga clic en Siguiente.
  5. Escriba c:/inetpub/wwwroot/User1 para la ruta de acceso y haga clic en Siguiente.
  6. Haga clic en Siguiente y, después, seleccione Finalizar para completar el asistente.
  7. Haga clic con el botón derecho en el directorio virtual User1 en Sitio FTP predeterminado y seleccione Propiedades.
  8. Active la casilla Escribir y haga clic en Aceptar para cerrar el cuadro de diálogo.
  9. Haga clic con el botón derecho en Sitio FTP predeterminado y seleccione Propiedades.
  10. En la pestaña Cuentas de seguridad, desactive Permitir conexiones anónimas.
  11. Haga clic en en el cuadro de diálogo en el que se le pregunta si quiere continuar.
  12. Haga clic en Aceptar para cerrar el cuadro de diálogo.
  13. Expanda el sitio web predeterminado en el nodo Sitios web.
  14. Haga clic con el botón derecho en el directorio User1 y seleccione Propiedades
  15. En la sección Configuración de la aplicación, haga clic en Crear para marcar la carpeta como una aplicación.
  16. Haga clic en Aceptar para cerrar el cuadro de diálogo.
  17. Cierre el complemento Internet Information Services.

Creación de un proyecto web

  1. Abra Visual Studio 2005.
  2. En el menú Archivo, seleccione Nuevo sitio web.
  3. En la lista desplegable Ubicación, seleccione FTP.
  4. Haga clic en Examinar.
  5. Escriba localhost en el cuadro de texto Servidor.
  6. Escriba User1 en el cuadro de texto Directorio.
  7. Haga clic en Abrir. La ubicación FTP se escribirá en el cuadro de diálogo Nuevo sitio web.
  8. Haga clic en OK.
  9. Desactive Inicio de sesión anónimo en el cuadro de diálogo Inicio de sesión de FTP, escriba las credenciales y haga clic en Aceptar.
  10. ¿Cuál es la dirección URL del proyecto? (La dirección URL del proyecto se mostrará en el Explorador de soluciones).
  11. En el menú Compilar, seleccione Compilar sitio web o Compilar solución.
  12. Haga clic con el botón derecho en el archivo Default.aspx en el Explorador de soluciones y seleccione Ver en el explorador.
  13. En el cuadro de diálogo Se requiere la dirección URL al sitio web, escriba http://localhost/user1 para la URL y haga clic en Aceptar.

Nota:

Si se produce un error que indica la incapacidad de cargar el tipo /_Default, asegúrese de que ejecuta ASP.NET 2.0 en el sitio web y no en una versión anterior. Puede hacerlo desde la pestaña ASP.NET de Internet Information Services.

Apertura de proyectos web

La apertura de proyectos web es similar a la creación de proyectos. En las secciones siguientes se describen las áreas que debe tener en cuenta mientras trabaja en el IDE. También se describe cómo trabajar con proyectos web mediante HTTP y FTP.

Para abrir un proyecto web, seleccione Abrir sitio web en el menú Archivo. Se presentará el mismo cuadro de diálogo Elegir ubicación que se ha descrito antes y tiene las mismas cuatro opciones disponibles: Sistema de archivos, IIS local, FTP y Sitio remoto.

Sistema de archivos

Como se ha indicado antes en este módulo, Visual Studio ya no usa un archivo del proyecto. Por tanto, si decide abrir un sitio web desde el sistema de archivos, realmente tiene la opción de elegir cualquier carpeta que quiera, incluso si la que elige no se ha creado como un proyecto web inicialmente en Visual Studio. Por ejemplo, puede abrir la carpeta Mis documentos como un sitio web y Visual Studio la abrirá sin problemas y mostrará los archivos como se muestra a continuación.

My Documents Opened As a Web Site

Figura 6: Mis documentos abierta como un sitio web

Como Visual Studio solo crea archivos y carpetas adicionales cuando es necesario, no se agregan archivos ni carpetas adicionales a la ubicación que abra. Un efecto secundario de esta arquitectura es que impide anidar sitios web en el sistema de archivos. Por ejemplo, considere la estructura de proyecto siguiente.

Proyecto web en C:/MyWebSite

Otro proyecto web en C:/MyWebSite/Anidado

Al abrir el sitio web en c:/MyWebSite, la carpeta Anidado aparecerá como una subcarpeta de esa aplicación.

HTTP

Al abrir sitios web mediante HTTP, los valores se leen desde la metabase de IIS (IIS local) o mediante extensiones de servidor de FrontPage (sitio remoto). Si hay aplicaciones web anidadas, se muestran también con un icono que las identifica como una aplicación. Si está familiarizado con el trabajo con aplicaciones web en FrontPage, el comportamiento de Visual Studio 2005 es similar.

Aunque Visual Studio mostrará un icono para las aplicaciones anidadas debajo de la aplicación que se abre actualmente en el IDE, no le permitirá expandirlas para ver su contenido. Pero puede hacer doble clic en ellas para abrirlas. Cuando lo haga, aparecerá un cuadro de diálogo que le pedirá que abra la aplicación web (y reemplace la solución abierta actualmente) o que agregue la aplicación web a la solución actual.

Double-clicking a nested application icon presents you with this dialog

Figura 7: Al hacer doble clic en un icono de aplicación anidada se abre este cuadro de diálogo

Sitio de FTP

Al abrir un sitio mediante FTP, todos los archivos se copian localmente en la carpeta temporal. La ruta de acceso completa de la ubicación de almacenamiento local se muestra en el panel Propiedades del proyecto y se crea con el siguiente formato.

C:/Documents and Settings/<Usuario>/Local Settings/Temp/VWDWebCache/<Server>/_<nombre de la aplicación>

Al usar FTP, Visual Studio deberá especificar la dirección URL base del proyecto para que pueda examinarla como se muestra a continuación. Si no especifica una dirección URL base, Visual Studio se la pedirá la primera vez que intente examinar una página en el sitio web.

Specifying a Base URL for FTP Sites

Figura 8: Especificación de una dirección URL base para sitios FTP

Mejoras de la compilación

El trabajo con aplicaciones web en Visual Studio 2005 es notablemente más rápido que en versiones anteriores. Esto se debe principalmente a los cambios en la arquitectura de compilación.

En Visual Studio 2002 y 2003, las aplicaciones web se compilaban en un ensamblado principal que residía en la carpeta /bin. En Visual Studio 2005, se ha agregado una carpeta App/_Code. Las clases y otros códigos que no son de la interfaz de usuario se agregan a la carpeta App/_Code. Cuando Visual Studio compila el proyecto, todos los archivos de la carpeta App/_Code se compilan en un único archivo App/_Code.dll. El resultado de este cambio es que las compilaciones siguientes son mucho más rápidas que en versiones anteriores.

Nota:

La utilidad de línea de comandos MSBuild también se puede usar para compilar aplicaciones web ASP.NET. Esa herramienta se describirá en el módulo 9.

Otra mejora de compilación es la nueva opción Página de compilación del menú Compilar. Esta característica permite que un desarrollador recompile solo la página actual (junto con las dependencias, por supuesto) para que los cambios se puedan compilar más rápidamente. Como en C# no se ofrece compilación en segundo plano para la actualización de IntelliSense, etc., se beneficiarán inmensamente de esta característica, ya que permitirá que IntelliSense se actualice rápidamente mediante la regeneración de una sola página.

Las propiedades de compilación de un proyecto le permiten configurar el tipo de compilación que se produce antes de que se ejecute la página de inicio. Los desarrolladores pueden elegir entre compilar solo la página actual para que Visual Studio pueda iniciar la depuración de aplicaciones más rápidamente después de que cambie el código.

The Build Page Start Action

Figura 9: Acción de inicio de la página de compilación

Otra gran mejora para Visual Studio y la arquitectura de ASP.NET está en el área de la edición y continuación. En Visual Studio 2005, los desarrolladores pueden empezar a depurar un proyecto y realizar cambios de código en el proyecto sin desasociar el depurador. De hecho, puede iniciar literalmente la depuración de un proyecto, agregar una nueva clase, agregar código a esa clase, agregar código a la página que crea una instancia de esa clase y ejecutar un método de la clase, todo sin desasociar el depurador. La ejecución del nuevo código es literalmente tan fácil como actualizar el explorador.

Haga clic aquí para ver un tutorial de vídeo de la característica Editar y continuar en Visual Studio 2005.

Abrir vídeo en pantalla completa

La sólida funcionalidad de edición y continuación en ASP.NET 2.0 y Visual Studio 2005 se debe a un cambio arquitectónico para las aplicaciones de ASP.NET. En ASP.NET 1.x, las aplicaciones creadas en Visual Studio 2002/2003 se compilaban en un ensamblado principal almacenado en la carpeta /bin. Todas las clases, páginas, etc. de la aplicación se compilaban en ese archivo DLL. Después, en tiempo de ejecución, ASP.NET compilaba todos los controles, el marcado y el código de ASP.NET dentro de páginas y copiaba esos archivos DLL en la carpeta temporal de ASP.NET.

En Visual Studio 2005 con ASP.NET 2.0, los dos modelos de compilación descritos antes (uno para Visual Studio y otro para ASP.NET en tiempo de ejecución) se han combinado en un modelo de compilación común. Esto significa que todos los problemas de compilación ahora se detectan durante la fase de desarrollo en lugar de en tiempo de ejecución. También permite la compatibilidad del diseñador e IntelliSense con características como los controles de usuario y las páginas maestras.

Haga clic aquí para ver un tutorial de vídeo sobre la compatibilidad del diseñador con controles de usuario.

Abrir vídeo en pantalla completa

Nota:

Cuando se quita un control de usuario de una página, la directiva @Register permanece en el marcado y se debe quitar manualmente para evitar errores del analizador si el control de usuario se elimina del sitio web.

Otra mejora del modelo de compilación de Visual Studio es la característica Publicar sitio web. Como la característica Publicar precompila el sitio web, los desarrolladores pueden disfrutar del rendimiento agregado de no tener que compilar nada a petición. También precompila todo el código fuente de la carpeta App/_Code en un archivo DLL para que no se tenga que implementar ningún código fuente.

The Publish Web Site Dialog

Figura 10: Cuadro de diálogo Publicar sitio web

Nota:

La utilidad aspnet/_compile.exe también se puede usar para precompilar una aplicación web ASP.NET. Esa herramienta se describirá en el módulo 9.

Al publicar un sitio web, los archivos precompilados se almacenan en la carpeta Archivos ASP.NET temporales, como se muestra a continuación. Los archivos con una extensión de archivo .compiled son archivos XML que definen dependencias para archivos DLL concretos. Cualquier formulario web o controles de usuario se compila en archivos DLL aleatorios que comienzan por App/Web/.

Si deja activada la casilla Permitir que este sitio precompilado sea actualizable, el marcado dentro de los formularios web y los controles de usuario no se compilará previamente en un archivo DLL, lo que le permite realizar cambios después de la implementación. Si prefiere bloquear el marcado para que no se permitan cambios en el contenido implementado, desactive esta casilla.

La casilla Usar nombres fijos y ensamblados de página única le permite deshabilitar la compilación por lotes para que cada página se compile en un ensamblado con nombre fijo. Si deja esta casilla desactivada, podrá aprovechar las ventajas de la compilación por lotes.

La casilla Habilitar nombre seguro en los ensamblados precompilados permite asignar un nombre seguro a los ensamblados precompilados.

Nota:

En ASP.NET 1.x, los ensamblados con nombre seguro se tenían que instalar en la caché global de ensamblados (GAC). En ASP.NET 2.0, no es necesario instalar ensamblados con nombre seguro en la GAC.

An ASP.NET Applications Pre-Compiled Files

Figura 11: Archivos precompilados de aplicaciones ASP.NET

Nota:

En la aplicación anterior, no había ningún archivo web.config. Si lo hubiera habido, se habría llamado PrecompiledApp.config después del proceso Publicar sitio web.

Mejoras en la implementación

Como sucede en Visual Studio 2002 y 2003, en Visual Studio 2005 se ofrece una característica Copiar proyecto. Pero la característica se ha ampliado en Visual Studio 2005 y ahora se denomina Copiar sitio web.

El cuadro de diálogo Copiar sitio web se divide en un marco izquierdo y un marco derecho. El marco izquierdo se denomina Sitio web de origen y, el derecho, Sitio web remoto. Un aspecto que puede confundir a algunos desarrolladores es que el sitio mostrado en el marco de la derecha no es necesariamente un sitio remoto. Podría ser un sitio en el sistema de archivos local o en la instancia local de IIS. Además, el sitio mostrado en el marco izquierdo no es necesariamente el sitio web de origen porque el cuadro de diálogo le permite publicar desde el sitio web remoto en el sitio web de origen.

Si va a copiar un proyecto en un sitio web remoto, ese sitio debe tener instaladas las extensiones de servidor de FrontPage. Si no es así, deberá conectarse mediante FTP. Por otro lado, si va a copiar un proyecto en la instancia local de IIS, no se necesitan Extensiones de servidor de FrontPage.

Nota:

Si intenta crear un sitio web en la instancia local de IIS y las extensiones de servidor de FrontPage 2002 están instaladas, recibirá un mensaje de error que le indicará que no se admite la creación de sitios web en un servidor de SharePoint. En ese caso, tiene la opción de instalar las extensiones de servidor de FrontPage 2000 o de quitar las extensiones de servidor de FrontPage.

Haga clic aquí para ver un tutorial de vídeo de la característica Copiar sitio web.

Screenshot of the video walkthrough of the Copy Web Site feature in Visual Studio.

Abrir vídeo en pantalla completa

Mejoras en la depuración

Hay cuatro mejoras clave en la depuración en Visual Studio 2005.

  • La depuración localmente como usuario no administrador es posible de fábrica.
  • El atributo Debug para el elemento Compilation ahora es false de forma predeterminada.
  • La instalación y configuración de la depuración remota es más fácil que antes.
  • Ahora puede depurar un sitio web abierto desde una ubicación FTP.

Depuración como usuario no administrador

La adición del servidor de desarrollo de ASP.NET permite a los usuarios no administradores depurar con facilidad aplicaciones ASP.NET directamente de fábrica. Cuando se depura una aplicación ASP.NET que se ejecuta en el sistema de archivos local, Visual Studio inicia el servidor de desarrollo de ASP.NET en el contexto del usuario que ha iniciado sesión. Después, ese usuario puede depurar esa aplicación sin ninguna configuración adicional.

De manera predeterminada, Debug es False

En ASP.NET 1.x, el atributo debug del elemento compilation del archivo web.config se establecía en true de manera predeterminada. Siempre se ha recomendado que los desarrolladores establezcan este atributo en false antes de implementar una aplicación en producción, pero como la mayoría de los desarrolladores no comprenden completamente las consecuencias de dejar el atributo de depuración establecido en true, simplemente lo dejan tal cual.

El problema más grave al tener el atributo de depuración establecido en true es que deshabilita el modelo de compilación por lotes de ASP.NET. Por tanto, cada página se compila en un archivo DLL independiente. Si una aplicación web consta de miles de páginas (no es algo extraño), significa que esa aplicación creará miles de archivos DLL pequeños. Aunque estos archivos DLL tienen un tamaño pequeño, no se cargan en ninguna ubicación determinada en memoria. Por tanto, provocan la fragmentación de la memoria del sistema y pueden contribuir a las apariciones de OutOfMemoryException.

En ASP.NET 2.0, el atributo debug se establece en false de manera predeterminada. Como ya ha visto, cuando un desarrollador depura una aplicación ASP.NET en Visual Studio 2005, se le pide que agregue un archivo web.config con la depuración habilitada. Al hacerlo, se producen los mismos inconvenientes que estaban presentes en ASP.NET 1.x, pero ahora se advierte claramente al desarrollador de que el atributo se debe establecer en false antes de mover la aplicación a producción.

Instalación y configuración de la depuración remota

En Visual Studio 2002/2003, la depuración remota se basaba en el Administrador de depuración de la máquina (mdm.exe) y el proceso vs7jit.exe. Por ese motivo, la solución de problemas de depuración remota a menudo era una caja negra para los clientes y no mucho mejor para PSS.

En Visual Studio 2005 se elimina la dependencia de los procesos mdm.exe y vs7jit.exe. En su lugar, ahora se usa el servicio Supervisión de depuración remota (msvsmon.exe).

El requisito para la depuración en Visual Studio 2005 de forma remota es bastante sencillo. Debe ejecutar msvsmon.exe en el servidor remoto antes de la depuración. Puede instalar el Monitor de depuración remota desde el CD de Visual Studio o simplemente ejecutar msvsmon.exe desde un recurso compartido sin instalar nada en el servidor web.

Al ejecutar msvsmon.exe, es probable que se queje de puertos bloqueados para la depuración remota. Afortunadamente, puede desbloquear fácilmente los puertos desde el cuadro de diálogo de advertencia, como se muestra a continuación.

Notification that Windows Firewall is Blocking Remote Debugging

Figura 12: Notificación de que Firewall de Windows bloquea la depuración remota

Una vez que haya desbloqueado los puertos necesarios para la depuración, verá el Monitor de depuración remota como se muestra a continuación. Desde esta interfaz, puede supervisar las conexiones y cambiar fácilmente los permisos de depuración.

The Remote Debugging Monitor

Figura 13: Monitor de depuración remota

También es posible depurar de forma remota una aplicación web abierta mediante FTP. Los pasos son los mismos que los descritos anteriormente. Pero deberá especificar una dirección URL base para examinar el proyecto FTP como se ha descrito antes en este módulo.

Laboratorio 2

Depuración remota con Visual Studio 2005

En este laboratorio se le guiará por la depuración remota con Visual Studio 2005.

Haga clic aquí para ver un tutorial de vídeo de este laboratorio.

Screenshot of the video walkthrough of remote debugging in Visual Studio.

Abrir vídeo en pantalla completa

Para este laboratorio debe tener dos máquinas, una que ejecute Visual Studio 2005 y otra que ejecute IIS 5 o posterior.

  1. Abra Visual Studio 2005 y cree un sitio web en el servidor remoto.

Nota:

Puede crear el sitio web en una instancia remota de IIS o mediante FTP.

  1. Desde el servidor web remoto, busque msvsmon.exe en la máquina de desarrollo con una ruta de acceso UNC y ejecútelo.
    La ubicación predeterminada de msvsmon.exe es //servidor/c$/Program Files/Microsoft Visual Studio 8/Common7/IDE/Remote Debugger/x86.
  2. Si se le pide que desbloquee los puertos para la depuración remota, hágalo.
  3. En la máquina de desarrollo, abra el código subyacente para Default.aspx y establezca un punto de interrupción en el método Page/_Load.
  4. Inicie la depuración desde la máquina de desarrollo.

Debería alcanzar el punto de interrupción según lo previsto.

Inicio del servidor de desarrollo de ASP.NET

Como ya se ha descrito, en Visual Studio 2005 se incluye un servidor web denominado Servidor de desarrollo de ASP.NET. (El servidor de desarrollo de ASP.NET se conoce a veces como Cassini). Este servidor web es un medio práctico para examinar y depurar aplicaciones web que se ejecutan en el sistema de archivos.

El Servidor de desarrollo de ASP.NET es un servidor web con restricciones. No permite conexiones remotas, ni permite ninguna solicitud de ningún usuario que no sea el usuario que ha iniciado el servidor web. Tampoco tiene la capacidad de servir páginas ASP. Solo se sirven recursos ASP.NET y recursos HTML (incluidas imágenes, archivos CSS, etc.).

El servidor de desarrollo de ASP.NET se puede iniciar desde la línea de comandos si se ejecuta el archivo WebDev.WebServer.exe ubicado en c:/Windows/Microsoft.NET/Framework/v2.0./////*. En el cuadro de diálogo siguiente se muestran los parámetros disponibles.

Screenshot of Visual Studio dialogue box displaying the parameters for launching A S P dot net Development server from the command line.

Figura 14

Nota:

El servidor de desarrollo de ASP.NET no se admite cuando se inicia explícitamente desde la línea de comandos.