Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
por Tom Dykstra
En esta serie de tutoriales se muestra cómo implementar (publicar) una aplicación web de ASP.NET en Azure App Service Web Apps o un proveedor de hospedaje de terceros mediante Visual Studio 2012 con el SDK de Azure para .NET. La mayoría de los procedimientos son similares para Visual Studio 2013.
Desarrolla una aplicación web para que esté disponible para las personas a través de Internet. Pero los tutoriales de programación web normalmente se detienen justo después de mostrarte cómo hacer que algo funcione en el equipo de desarrollo. Esta serie de tutoriales comienza donde los demás dejan de estar: ha creado una aplicación web, lo ha probado y está listo para usarse. ¿Qué sigue? Estos tutoriales muestran cómo implementar primero en IIS en el equipo de desarrollo local para realizar pruebas y, después, en Azure o en un proveedor de hospedaje de terceros para almacenamiento provisional y producción. La aplicación de ejemplo que implementará es un proyecto de aplicación web que usa Entity Framework, SQL Server y el sistema de pertenencia ASP.NET. La aplicación de ejemplo usa ASP.NET Web Forms, pero los procedimientos que se muestran también se aplican a ASP.NET MVC y Web API.
En estos tutoriales se supone que sabe cómo trabajar con ASP.NET en Visual Studio. Si no, un buen lugar para empezar es un tutorial básico de ASP.NET Web Forms o un tutorial básico de ASP.NET MVC.
Si tiene preguntas que no están directamente relacionadas con el tutorial, puede publicarlas en el foro de implementación de ASP.NET o StackOverflow.
Visión general
Estos tutoriales le guían a través de la implementación de una aplicación web de ASP.NET que incluye bases de datos de SQL Server. Primero implementará en IIS en su equipo de desarrollo local para realizar pruebas y luego en Web Apps en Azure App Service y Azure SQL Database para fases de prueba y producción. Verá cómo implementar mediante la publicación con un solo clic de Visual Studio y verá cómo implementar mediante la línea de comandos.
El número de tutoriales podría hacer que el proceso de implementación parezca abrumador. De hecho, los procedimientos básicos son sencillos. Sin embargo, en situaciones reales, a menudo debe realizar tareas de implementación adicionales, por ejemplo, establecer permisos de carpeta en el servidor de destino. Hemos mostrado algunas de estas tareas adicionales, con la esperanza de que los tutoriales no abandonen la información que podría impedir que implemente correctamente una aplicación real.
Los tutoriales están diseñados para ejecutarse en secuencia y cada parte se basa en la parte anterior. Puede omitir partes que no son relevantes para su situación, pero es posible que tenga que ajustar los procedimientos en tutoriales posteriores.
Audiencia prevista
Los tutoriales están dirigidos a ASP.NET desarrolladores que trabajan en entornos donde:
- El entorno de producción es Azure App Service Web Apps o un proveedor de hospedaje de terceros.
- La implementación no se limita a un proceso de integración continua, pero se puede realizar directamente desde Visual Studio.
La implementación desde el control de código fuente mediante un proceso de entrega continua no se trata en estos tutoriales, excepto en un tutorial que muestra cómo realizar la implementación desde la línea de comandos. Para obtener información sobre la entrega continua, consulte los siguientes recursos:
- Integración continua y entrega continua (compilación de aplicaciones en la nube Real-World con Windows Azure)
- Implementación de una aplicación web en Azure App Service
- Implementación de aplicaciones web en escenarios empresariales (un conjunto anterior de tutoriales escritos para Visual Studio 2010, que todavía tiene información útil para entornos empresariales).
Uso de un proveedor de hospedaje de terceros
Los tutoriales le llevan a través del proceso de configuración de una cuenta de Azure e implementación de la aplicación en Web Apps en Azure App Service para almacenamiento provisional y producción. Sin embargo, puede usar los mismos procedimientos básicos para implementar en un proveedor de hospedaje de terceros de su elección. Donde los tutoriales cubren los procesos únicos de Azure, explican eso e informan sobre las diferencias que puede esperar con un proveedor de alojamiento de terceros.
Implementación de proyectos de aplicaciones web
La aplicación de ejemplo que descargue e implemente para estos tutoriales es un proyecto de aplicación web de Visual Studio. Sin embargo, si instala la actualización de publicación web más reciente para Visual Studio, puede usar los mismos métodos de implementación y herramientas para proyectos de aplicaciones web.
Implementación de proyectos de MVC de ASP.NET
La aplicación de ejemplo es un proyecto de ASP.NET Web Forms, pero todo lo que aprende a hacer también es aplicable a ASP.NET MVC. Un proyecto MVC de Visual Studio es simplemente otra forma de proyecto de aplicación web. La única diferencia es que si va a implementar en un proveedor de hospedaje que no admite ASP.NET MVC o su versión de destino, debe asegurarse de que ha instalado el paquete NuGet adecuado (MVC 3, MVC 4 o MVC 5) en el proyecto.
Lenguaje de programación
La aplicación de ejemplo usa C# pero para los tutoriales no se necesitan conocimientos de C#, y las técnicas de implementación que se muestran en los tutoriales no son específicas de un lenguaje.
Métodos de implementación de base de datos
Hay tres maneras de implementar una base de datos de SQL Server junto con la implementación web en Visual Studio:
- Migraciones de Entity Framework Code First
- El proveedor dbDacFx Web Deploy
- El proveedor dbFullSql Web Deploy
En este tutorial usará los dos primeros métodos. El proveedor dbFullSql Web Deploy es un método heredado que ya no se recomienda, excepto para algunos escenarios específicos, como la migración de SQL Server Compact a SQL Server.
Los métodos que se muestran en este tutorial son para bases de datos de SQL Server, no para SQL Server Compact. Para obtener información sobre cómo implementar una base de datos de SQL Server Compact, vea Implementación web de Visual Studio con SQL Server Compact.
Los métodos que se muestran en este tutorial requieren que use el método publish de Web Deploy. Si prefiere un método de publicación diferente, como FTP, Sistema de archivos o FPSE, consulte Implementación de una base de datos por separado de la implementación de aplicaciones web en el mapa de contenido de implementación web para Visual Studio y ASP.NET.
Migraciones de Entity Framework Code First
En la versión 4.3 de Entity Framework, Microsoft introdujo migraciones de Code First. Migraciones de Code First automatiza el proceso de realizar cambios incrementales en un modelo de datos y propagar esos cambios a la base de datos. En versiones anteriores de Code First, normalmente se deja que Entity Framework quite y vuelva a crear la base de datos cada vez que cambie el modelo de datos. Esto no es un problema en el desarrollo porque los datos de prueba se vuelven a crear fácilmente, pero en producción normalmente desea actualizar el esquema de la base de datos sin quitar la base de datos. La característica Migraciones permite a Code First actualizar la base de datos sin quitarla ni volver a crearla. Puede permitir que Code First decida automáticamente cómo realizar los cambios de esquema necesarios o puede escribir código que personalice los cambios. Para obtener una introducción a las migraciones de Code First, consulte Migraciones de Code First.
Al implementar un proyecto web, Visual Studio puede automatizar el proceso de implementación de una base de datos administrada por migraciones de Code First. Al crear el perfil de publicación, selecciona una casilla con la etiqueta Ejecutar migraciones de Code First (se ejecuta al inicio de la aplicación). Esta configuración hace que el proceso de implementación configure automáticamente el archivo Web.config de la aplicación en el servidor de destino para que Code First utilice la clase inicializador MigrateDatabaseToLatestVersion.
Visual Studio no hace nada con la base de datos durante el proceso de implementación. Cuando la aplicación implementada accede a la base de datos por primera vez después de la implementación, Code First crea automáticamente la base de datos o actualiza el esquema de la base de datos a la versión más reciente. Si la aplicación implementa un método de inicialización de migraciones, el método se ejecuta después de crear la base de datos o se actualiza el esquema.
En este tutorial, usará Migraciones de Code First para implementar la base de datos de la aplicación.
El proveedor dbDacFx Web Deploy
Para una base de datos de SQL Server que no está administrada por Entity Framework Code First, puede activar una casilla con la etiqueta Actualizar base de datos al configurar el perfil de publicación. Durante la implementación inicial, el proveedor dbDacFx crea tablas y otros objetos de base de datos de la base de datos de destino para que coincidan con la base de datos de origen. En las implementaciones posteriores, el proveedor determina lo que es diferente entre las bases de datos de origen y de destino y actualiza el esquema de la base de datos de destino para que coincida con la base de datos de origen. De forma predeterminada, el proveedor no realizará ningún cambio que cause pérdida de datos, como cuando se quita una tabla o columna.
Este método no automatiza la implementación de datos en tablas de base de datos, pero puede crear scripts para hacerlo y configurar Visual Studio para ejecutarlos durante la implementación. Otro motivo para ejecutar scripts durante la implementación es realizar cambios de esquema que no se pueden realizar automáticamente porque provocarían la pérdida de datos.
En este tutorial, usará el proveedor dbDacFx para implementar la base de datos de pertenencia ASP.NET.
Solución de problemas durante este tutorial
Cuando se produce un error durante la implementación o si el sitio implementado no se ejecuta correctamente, los mensajes de error no siempre proporcionan una solución obvia. Para ayudarle con algunos escenarios de problemas comunes, hay disponible una página de referencia de solución de problemas. Si recibe un mensaje de error o algo no funciona mientras realizar los tutoriales, asegúrese de comprobar la página de solución de problemas.
Comentarios bienvenidos
Los comentarios sobre los tutoriales son bienvenidos y, cuando el tutorial se actualiza, se realizarán todos los esfuerzos para tener en cuenta las correcciones o sugerencias de mejoras que se proporcionan en los comentarios del tutorial.
Prerrequisitos
Este tutorial se escribió para los siguientes productos:
- Windows 8 o Windows 7.
- Visual Studio 2012 o Visual Studio 2012 Express for Web con la actualización más reciente.
- SDK de Azure para Visual Studio 2012
Puede seguir el tutorial con Visual Studio 2010 SP1 o Visual Studio 2013, pero algunas capturas de pantalla serán diferentes y algunas características serán diferentes.
Si usa Visual Studio 2013, instale El SDK de Azure para Visual Studio 2013.
Si usa Visual Studio 2010 SP1, instale el siguiente software:
- SDK de Azure para Visual Studio 2010
- SQL Server Express LocalDB
- Herramientas de datos de SQL Server.
En función del número de dependencias del SDK que ya tenga en la máquina, la instalación del SDK de Azure puede tardar mucho tiempo, de varios minutos a media hora o más. Necesita el SDK de Azure incluso si planea publicar en un proveedor de hospedaje de terceros en lugar de en Azure, ya que el SDK incluye las actualizaciones más recientes de las características de publicación web de Visual Studio.
Nota:
Este tutorial se escribió con la versión 1.8.1 del SDK de Azure. Desde entonces se han publicado versiones más recientes con características adicionales. Los tutoriales se han actualizado para mencionar estas características y vincular a los recursos que tienen más información sobre ellas.
Las instrucciones y capturas de pantalla se basan en Windows 8, pero los tutoriales explican las diferencias para Windows 7.
Se requiere otro software para completar el tutorial, pero aún no es necesario tenerlo instalado. En el tutorial se le guiará por los pasos para instalarlo cuando lo necesite.
Descarga de la aplicación de ejemplo
La aplicación que desplegarás se denomina Contoso University y ya ha sido creada para ti. Es una versión simplificada de un sitio web universitario, basado de forma flexible en la aplicación Contoso University descrita en los tutoriales de Entity Framework en el sitio de ASP.NET.
Cuando tenga instalados los requisitos previos, descargue la aplicación web Contoso University. El archivo .zip contiene varias versiones del proyecto. Para realizar los pasos del tutorial, comience con el proyecto ubicado en la carpeta C#. Para ver el aspecto del proyecto al final de los tutoriales, abra el proyecto en la carpeta ContosoUniversity-End.
Para preparar el proyecto para trabajar con los pasos del tutorial, realice los pasos siguientes:
Guarde los archivos de solución ContosoUniversity de la carpeta C# en una carpeta denominada ContosoUniversity en cualquier carpeta que use para trabajar con proyectos de Visual Studio.
De forma predeterminada, esta es la carpeta siguiente para Visual Studio 2012:
C:\Users\<username>\Documents\Visual Studio 2012\Projects(Para las capturas de pantalla de este tutorial, la carpeta del proyecto se encuentra en el directorio raíz en la unidad
C:).Inicie Visual Studio y abra el proyecto.
En el Explorador de soluciones, haga clic con el botón derecho en la solución y haga clic en Habilitar Restauración de paquetesNuGet.
Compile la solución.
Si recibe errores de compilación, restaure manualmente los paquetes NuGet:
- En el Explorador de soluciones, haga clic con el botón derecho en la solución y, a continuación, haga clic en Administrar paquetes NuGet para la solución.
- En la parte superior del cuadro de diálogo Administrar paquetes NuGet verá que faltan algunos paquetes NuGet de esta solución. Haga clic para restaurar. Haga clic en el botón Restaurar .
- Recompile la solución.
Presione CTRL-F5 para ejecutar la aplicación.
La aplicación se abre en la página principal de Contoso University.
(Es posible que haya un tiempo de espera mientras Visual Studio inicia la instancia de SQL Server Express LocalDB y podría obtener un error de tiempo de espera si ese proceso tarda demasiado tiempo. En ese caso, simplemente inicie el proyecto de nuevo).
Las páginas del sitio web son accesibles desde la barra de menús y permiten realizar las siguientes funciones:
- Mostrar las estadísticas de los alumnos (la página Acerca de).
- Mostrar, editar, eliminar y agregar alumnos.
- Mostrar y editar cursos.
- Mostrar y editar instructores.
- Mostrar y editar departamentos.
A continuación se muestran capturas de pantalla de algunas páginas representativas.
Revisión de las características de la aplicación que afectan a la implementación
Las siguientes características de la aplicación afectan a cómo implementarla o a lo que tiene que hacer para implementarla. Cada una se explica con más detalle en los siguientes tutoriales de la serie.
- Contoso University usa una base de datos de SQL Server para almacenar datos de aplicación como nombres de alumno e instructor. La base de datos contiene una combinación de datos de prueba y datos de producción, y cuando se implementa en producción, debe excluir los datos de prueba.
- La aplicación usa el sistema de pertenencia ASP.NET, que almacena la información de la cuenta de usuario en una base de datos de SQL Server. La aplicación define un usuario administrador que tiene acceso a cierta información restringida. Debe implementar la base de datos de pertenencia sin cuentas de prueba, pero con una cuenta de administrador.
- La aplicación usa una utilidad de informes y registro de errores de terceros. Esta utilidad se proporciona en un ensamblado que se debe implementar con la aplicación.
- La utilidad de registro de errores escribe información de error en archivos XML en una carpeta de archivos. Debe asegurarse de que la cuenta en la que ASP.NET se ejecuta en el sitio implementado tiene permiso de escritura en esta carpeta y debe excluir esta carpeta de la implementación. (De lo contrario, es posible que los datos del registro de errores del entorno de prueba se implementen en producción o que se eliminen los archivos de registro de errores de producción).
- La aplicación incluye algunas opciones de configuración que se deben cambiar en el archivo deWeb.config implementado en función del entorno de destino (prueba, ensayo o producción) y otras opciones de configuración que se deben cambiar en función de la configuración de compilación (depuración o versión).
- La solución de Visual Studio incluye un proyecto de biblioteca de clases. Solo se debe implementar el ensamblado que genera este proyecto, no el propio proyecto.
Resumen
En este primer tutorial de la serie, ha descargado el proyecto de Visual Studio de ejemplo y ha revisado las características del sitio que afectan a la implementación de la aplicación. En los tutoriales siguientes, preparará la implementación mediante la configuración de algunos de estos elementos para que se controlen automáticamente. Te encargas de otros manualmente.