Implementar el sitio con Visual Studio (C#)

por Scott Mitchell

Descargar PDF

Visual Studio incluye herramientas para implementar un sitio web. Obtenga más información sobre estas herramientas en este tutorial.

Introducción

En el tutorial anterior se ha examinado cómo implementar una aplicación web de ASP.NET sencilla en un proveedor de host web. En concreto, el tutorial mostró cómo usar un cliente FTP como FileZilla para transferir los archivos necesarios del entorno de desarrollo al entorno de producción. Visual Studio también ofrece herramientas integradas para facilitar la implementación en un proveedor de host web. En este tutorial se examinan dos de estas herramientas: la herramienta Copiar sitio web, donde puede mover archivos hacia y desde un servidor web remoto mediante FTP o Extensiones de servidor de FrontPage; y la herramienta Publicar, que copia todo el sitio web en una ubicación especificada.

Nota:

Otra herramienta relacionada con la implementación que ofrece Visual Studio es el complemento Proyectos de instalación web. Los proyectos de instalación web empaquetan el contenido y la información de configuración de un sitio web en un único archivo MSI. Esta opción es más útil para sitios web que se implementan dentro de una intranet o para empresas que venden una aplicación web empaquetada previamente que los clientes instalan en sus propios servidores web. El complemento Proyectos de implementación web es un complemento de Visual Studio que facilita la especificación de diferencias de configuración entre compilaciones para entornos de desarrollo y entornos de producción. Los proyectos de instalación web no se describen en esta serie de tutoriales; los proyectos de implementación web se resumen en el tutorial Diferencias de configuración comunes entre desarrollo y producción.

Implementación del sitio mediante la herramienta Copiar sitio web

La herramienta Copiar sitio web de Visual Studio es similar a la funcionalidad de un cliente FTP independiente. En pocas palabras, la herramienta Copiar sitio web le permite conectarse a un sitio web remoto a través de FTP o extensiones de servidor de FrontPage. De forma similar a la interfaz de usuario de FileZilla, la interfaz de usuario Copiar sitio web consta de dos paneles: el panel izquierdo muestra los archivos locales mientras que el panel derecho enumera esos archivos en el servidor de destino.

Nota:

La herramienta Copiar sitio web solo está disponible para proyectos de sitio web. Visual Studio ofrece esta herramienta cuando se trabaja con un proyecto de aplicación web.

Echemos un vistazo al uso de la herramienta Copiar sitio web para publicar la aplicación Book Review en producción. Dado que la herramienta Copiar sitio web solo funciona con proyectos que usan el modelo de proyecto de sitio web, solo podemos examinar el uso de esta herramienta con el proyecto BookReviewsWSP. Abra ese proyecto.

Inicie el proyecto de la herramienta Copiar sitio web haciendo clic en el icono Copiar sitio web en el Explorador de soluciones (este icono se rodea en la ilustración 1); Como alternativa, puede seleccionar la opción Copiar sitio web en el menú Sitio web. Cualquiera de los enfoques inicia la interfaz de usuario Copiar sitio web que se muestra en la ilustración 1; solo se rellena el panel izquierdo de la ilustración 1 porque todavía tenemos que conectarse a un servidor remoto.

The Copy Web Site Tool's User Interface is Divided Into Two Panes

Ilustración 1: la interfaz de usuario de la herramienta Copiar sitio web se divide en dos paneles (Haga clic para ver la imagen a tamaño completo)

Para implementar nuestro sitio, primero es necesario conectarse al proveedor de host web. Haga clic en el botón Conectar de la parte superior de la interfaz de usuario Copiar sitio web. Esto muestra el cuadro de diálogo Abrir sitio web que se muestra en la ilustración 2.

Puede conectarse al sitio web de destino seleccionando una de las cuatro opciones de la izquierda:

  • Sistema de archivos: seleccione esta opción para implementar el sitio en una carpeta o recurso compartido de red accesible desde el equipo.
  • IIS local: use esta opción para implementar el sitio en el servidor web de IIS instalado en el equipo.
  • Sitio FTP: conéctese a un sitio web remoto mediante FTP.
  • Sitio remoto: conéctese a un sitio web remoto mediante extensiones de servidor de FrontPage.

La mayoría de los proveedores de host web admiten FTP, pero menos ofrecen compatibilidad con la extensión de servidor de FrontPage. Por ese motivo, he seleccionado la opción Sitio FTP y, a continuación, especificó la información de conexión como se muestra en la ilustración 2.

Screenshot of the Open Web Site dialog, which shows the connection information is filled into the text fields.

Ilustración 2: especificar el sitio web de destino (haga clic para ver la imagen a tamaño completo)

Después de conectarse, la herramienta Copiar sitio web carga los archivos en el sitio remoto del panel derecho e indica el estado de cada archivo: Nuevo, Eliminado, Cambiado o Sin cambios. Puede copiar un archivo desde el sitio local al sitio remoto o viceversa.

Vamos a agregar una nueva página al proyecto BookReviewsWSP y, a continuación, implementarla para que podamos ver la herramienta Copiar sitio web en acción. Cree una nueva página de ASP.NET en Visual Studio en el directorio raíz denominado Privacy.aspx. Haga que la página use la página Site.master maestra y agregue la directiva de privacidad de su sitio a esta página. En la ilustración 3 se muestra Visual Studio después de crear esta página.

Add a New Page Named <code>Privacy.aspx</code> to the Website's Root Folder

Ilustración 3: agregar una nueva página denominada Privacy.aspx a la carpeta raíz del sitio web (Haga clic para ver la imagen a tamaño completo)

A continuación, vuelva a la interfaz de usuario Copiar sitio web. Como se muestra en la ilustración 4, el panel izquierdo ahora incluye los nuevos archivos: Policy.aspx y Policy.aspx.cs. Además, estos archivos se marcan con un icono de flecha y un estado nuevo, lo que indica que existen en el sitio local, pero no en el sitio remoto.

The Copy Web Site Tool Includes the New <code>Privacy.aspx</code> Page in its Left Pane

Ilustración 4: la herramienta Copiar sitio web incluye la página nueva Privacy.aspx en su panel izquierdo (Haga clic para ver la imagen a tamaño completo)

Para implementar los nuevos archivos, selecciónelos y, a continuación, haga clic en el icono de flecha para transferirlos al sitio remoto. Una vez completada la transferencia, existen los archivos Policy.aspx y Policy.aspx.cs en los sitios locales y remotos con el estado Sin cambios.

Junto con la lista de archivos nuevos, la herramienta Copiar sitio web resalta los archivos que difieren entre los sitios locales y remotos. Para ver esto en acción, vuelva a la página Privacy.aspx y agregue algunas palabras más a la directiva de privacidad. Guarde la página y vuelva a la herramienta Copiar sitio web. Como se muestra en la ilustración 5, la página Privacy.aspx del panel izquierdo tiene un estado Cambiado que indica que no está sincronizado con el sitio remoto.

The Copy Web Site Tool Indicates that the <code>Privacy.aspx</code> Page has been Changed

Ilustración 5: la herramienta Copiar sitio web indica que se ha cambiado la página Privacy.aspx (Haga clic para ver la imagen a tamaño completo)

La herramienta Copiar sitio web también indica si se ha eliminado un archivo desde la última operación de copia. Elimine el Privacy.aspx del proyecto local y actualice la herramienta Copiar sitio web. Los archivos Privacy.aspx y Privacy.aspx.cs permanecen en la lista en el panel izquierdo, pero tienen un estado Eliminado que indica que se han quitado desde la última operación de copia.

Publicación de una aplicación web

Otra manera de implementar la aplicación web desde Visual Studio es usar la opción Publicar, que es accesible a través del menú Compilar. La opción Publicar compila explícitamente la aplicación y, a continuación, copia todos los archivos necesarios hasta el sitio remoto especificado. Como veremos en breve, la opción Publicar es más directa que la herramienta Copiar sitio web. Mientras que la herramienta Copiar sitio web le permite examinar los archivos en los sitios locales y remotos y le permite cargar o descargar archivos individuales según sea necesario, la opción Publicar implementa toda la aplicación web.

Además de copiar todos los archivos necesarios en el sitio remoto especificado, la opción Publicar también compila explícitamente la aplicación. Dado que los proyectos de aplicación web deben compilarse explícitamente, no debería sorprender que la opción Publicar esté disponible para proyectos de aplicación web. Lo que puede ser un poco sorprendente es que la opción Publicar también está disponible para proyectos de sitio web. Como se indicó en el tutorial Determinación de los archivos que se deben implementar, los proyectos de sitio web se pueden compilar explícitamente a través de un proceso denominado compilación previa. Este tutorial se centra en el uso de la opción Publicar con proyectos de aplicación web; En un tutorial futuro se explorará la compilación previa, en cuyo punto volveremos a examinar el uso de la opción Publicar con proyectos de sitio web.

Nota:

Aunque la opción Publicar está disponible en Visual Studio para proyectos de sitio web y proyectos de aplicación web, Visual Web Developer solo ofrece la opción Publicar para proyectos de aplicación web.

Echemos un vistazo a la implementación de la aplicación Opiniones de libros mediante la opción Publicar. Para empezar, abra BookReviewsWAP (proyecto de aplicación web) en Visual Studio. En el menú Publicar, elija el proyecto Build BookReviewsWAP. Esto abre un cuadro de diálogo que solicita la ubicación de destino, entre otras opciones de configuración (vea la ilustración 6). Al igual que con la herramienta Copiar sitio web, puede escribir una ubicación que apunte a una carpeta local, un sitio web local en IIS, un sitio web remoto que admita extensiones de servidor de FrontPage o una dirección de servidor FTP. Puede elegir si desea reemplazar los archivos del servidor web remoto por los archivos implementados o eliminar todo el contenido del sitio remoto antes de publicarlo. También puede especificar si se va a copiar:

  • Solo los archivos del proyecto necesarios para ejecutar la aplicación, que omite el código fuente innecesario y los archivos relacionados con el proyecto.
  • Todos los archivos de proyecto, que incluyen los archivos de código fuente y los archivos de proyecto de Visual Studio, como el archivo de solución.
  • Todos los archivos de la carpeta del proyecto de origen, que copia todos los archivos de la carpeta del proyecto de origen, independientemente de si se incluyen en el proyecto.

También hay una opción para cargar el contenido de la carpeta App_Data.

Screenshot of the Publish Web dialog, which shows the filled Delete all existing files prior to publish and Only files needed to run checkboxes.

Ilustración 6: especificar el sitio web de destino (haga clic para ver la imagen a tamaño completo)

Para la aplicación De revisión de libros, el sitio remoto contiene los archivos implementados al copiar el proyecto BookReviewsWSP a través de la herramienta Copiar sitio web. Por lo tanto, vamos a hacer que la opción Publicar empiece eliminando todo el contenido existente. Además, vamos a copiar los archivos necesarios en lugar de desordenar el entorno de producción con código fuente y archivos de proyecto innecesarios. Después de especificar estas opciones, haga clic en el botón Publicar. En los próximos segundos, Visual Studio implementará los archivos necesarios en el sitio de destino, mostrando su progreso en la ventana Salida.

En la ilustración 7 se muestran los archivos del sitio FTP una vez completada la operación de publicación. Tenga en cuenta que solo se han cargado las páginas de marcado y los archivos de soporte técnico necesarios del lado cliente.

Only the Needed Files Were Published to the Production Environment

Ilustración 7: solo se publicaron los archivos necesarios en el entorno de producción (Haga clic para ver la imagen a tamaño completo)

La opción Publicar es una herramienta menos matizada que la herramienta Copiar sitio web. Mientras que la herramienta Copiar sitio web le permite inspeccionar los archivos en los sitios locales y remotos y ver cómo difieren, la opción Publicar no proporciona dicha interfaz. Además, la herramienta Copiar sitio web permite realizar cambios puntuales, cargar o eliminar archivos individuales. La opción Publicar no permite este control específico; en su lugar, publica el aplicación completa. Este comportamiento tiene sus ventajas y desventajas. El lado positivo es que, al utilizar la opción Publicar, sabe que no olvidará cargar un archivo importante. Pero considere lo que ocurre si ha realizado un pequeño cambio en un sitio web muy grande: con la opción Publicar no puede actualizar esa página o dos que se han modificado, sino que debe esperar mientras Visual Studio implementa todo el sitio.

No es raro que haya determinados archivos cuyo contenido difiere entre los entornos de producción y desarrollo. Un ejemplo clave es el archivo de configuración de la aplicación, Web.config. Dado que la opción Publicar copia ciegamente los archivos de aplicación web, sobrescribe los archivos de configuración personalizados del entorno de producción con la versión del entorno de desarrollo. El tutorial siguiente explora aún más este tema y ofrece sugerencias para implementar una aplicación web cuando existen estas diferencias.

Resumen

La implementación de un sitio web implica copiar los archivos necesarios desde el entorno de desarrollo al entorno de producción. En el tutorial anterior se mostró cómo transferir archivos mediante un cliente FTP como FileZilla. En este tutorial se examinaron dos herramientas de implementación en Visual Studio: la herramienta Copiar sitio web y la opción Publicar. La herramienta Copiar sitio web es similar a un cliente FTP en que tiene una interfaz de dos paneles que enumera los archivos en el equipo local y un equipo remoto especificado que facilita la carga o descarga de archivos entre los dos equipos. La opción Publicar es una herramienta más directa que compila explícitamente el proyecto y, a continuación, implementa toda la aplicación en el destino especificado.

¡Feliz programación!

Lecturas adicionales

Para obtener más información sobre los temas tratados en este tutorial, consulte los siguientes recursos: