Opciones de hospedaje de ASP.NET (C#)

por Scott Mitchell

Descargar PDF

Las aplicaciones web ASP.NET suelen diseñarse, crearse y probarse en un entorno de desarrollo local y deben implementarse en un entorno de producción una vez que están listas para su lanzamiento. En este tutorial se proporciona información general de alto nivel sobre el proceso de implementación y sirve como introducción a esta serie de tutoriales.

Introducción

Las aplicaciones web suelen diseñarse, crearse y probarse en un entorno de desarrollo al que solo pueden acceder los programadores que trabajan en el sitio. Una vez que la aplicación esté lista para su lanzamiento, se mueve a un entorno de producción al que cualquier usuario de Internet puede acceder al sitio. Este proceso de implementación presenta una serie de desafíos:

  • Antes de implementar una aplicación ASP.NET, debe existir y configurarse correctamente un entorno de producción; además, el entorno de producción debe mantenerse actualizado con las últimas revisiones de seguridad.
  • El conjunto correcto de archivos de marcado, archivos de código y archivos de soporte técnico debe copiarse del entorno de desarrollo al entorno de producción. En el caso de las aplicaciones basadas en datos, puede ser necesario copiar también el esquema y/o los datos de la base de datos.
  • Puede haber diferencias de configuración entre los dos entornos. Es probable que la cadena de conexión a la base de datos o el servidor de correo electrónico utilizados en el entorno de desarrollo sean diferentes a los del entorno de producción. Además, el comportamiento de la aplicación puede depender del entorno. Por ejemplo, cuando se produce un error en el desarrollo, los detalles del error se pueden mostrar en pantalla, pero cuando se produce un error en producción, se debe mostrar una página de error fácil de usar y los detalles del error se envíen por correo electrónico a los desarrolladores.

Para obviar el primer desafío, configurar y mantener un entorno de producción, muchas personas y empresas subcontratan sus entornos de producción para proveedores de hospedaje web. Un proveedor de hospedaje web es una empresa que administra el entorno de producción en su nombre. Hay innumerables proveedores de host web, cada uno con diferentes precios y niveles de servicio; consulte la sección "Búsqueda de un proveedor de host web" para obtener sugerencias sobre cómo localizar dicho proveedor de servicios.

Este es el primero de una serie de tutoriales que examinan los pasos implicados en la implementación de una aplicación web de ASP.NET en un entorno de producción administrado por un proveedor de host web. En el transcurso de estos tutoriales examinaremos:

  • Qué archivos deben implementarse en el proveedor de host web.
  • Herramientas para simplificar el proceso de implementación.
  • Cómo implementar una base de datos.
  • Sugerencias para implementar una base de datos que usa el proveedor de roles y pertenencia basado en SQL, junto con formas de imitar la herramienta de administración del sitio web en un entorno de producción.
  • Estrategias para actualizar sin problemas la base de datos en producción con cambios realizados durante el desarrollo.
  • Técnicas para registrar errores que se producen en producción y formas de notificar a los desarrolladores cuando se produce un error.

Estos tutoriales están orientados a ser concisos y a proporcionar instrucciones paso a paso con una gran cantidad de capturas de pantalla para guiarle visualmente por el proceso. En este tutorial introductorio se proporciona información general sobre el proceso de implementación de ASP.NET y consejos sobre la búsqueda de un proveedor de hospedaje web. Comencemos.

Información general sobre el proceso de implementación de ASP.NET

En pocas palabras, la implementación de una aplicación de ASP.NET implica los tres siguientes pasos:

  1. Configure la aplicación web, el servidor web y la base de datos en el entorno de producción.
  2. Sincronice las páginas de ASP.NET, los archivos de código, los ensamblados de la carpeta Bin y los archivos de soporte técnico relacionados con HTML, como los archivos CSS y JavaScript.
  3. Sincronice el esquema o los datos de la base de datos.

La información de configuración de una aplicación web se encuentra normalmente en el archivo Web.config e incluye cadenas de conexión de base de datos, criterios de control de errores, reglas de reescritura de direcciones URL e información del servidor de correo electrónico. A menudo, esta información es diferente para una aplicación en desarrollo frente a la misma aplicación en producción. Por ejemplo, al desarrollar una aplicación, es mejor usar una base de datos de desarrollo para que no esté probando en la base de datos de producción. Como resultado, las cadenas de conexión de la base de datos suelen diferir entre las aplicaciones de desarrollo y producción. Debido a estas diferencias, parte de la implementación implica realizar cambios en la información de configuración de la aplicación web.

Además de los cambios de configuración de la aplicación web, el paso 1 también puede implicar la configuración del servidor web y la base de datos. Por ejemplo, si una página ASP.NET crea o elimina archivos de un directorio del servidor web, este debe estar configurado para permitir estas modificaciones del sistema de archivos. Del mismo modo, puede haber permisos o configuraciones de autenticación que se deben realizar en la base de datos.

El paso 2 implica sincronizar el conjunto de páginas de ASP.NET esenciales y archivos de soporte técnico entre los entornos de desarrollo y producción. El conjunto concreto de archivos relacionados con ASP.NET que deben sincronizarse entre los dos entornos depende del tipo de proyecto que haya creado en Visual Studio, y es el tema que se trata en el siguiente tutorial, Determinar los archivos que deben implementarse. Los tutoriales tercero y cuarto, implementación de su sitio mediante FTP y implementación de su sitio mediante Visual Studio, examine diferentes herramientas y técnicas para sincronizar estos archivos.

Al compilar aplicaciones controladas por datos, normalmente se usan dos bases de datos: una para el desarrollo y otra en producción. Durante el desarrollo, el esquema de la base de datos de desarrollo puede modificarse para incluir nuevas tablas, columnas, procedimientos almacenados y disparadores, o puede modificarse para eliminar o cambiar el nombre de los objetos de base de datos existentes. Entre el momento en que se realizan estos cambios y el momento en que se implementa la aplicación en producción, las bases de datos de desarrollo y producción no están sincronizadas. Esta asincronía debe corregirse durante el proceso de implementación. Estos desafíos se examinarán en tutoriales futuros.

Búsqueda de un proveedor de host web

Las aplicaciones ASP.NET pueden implementarse en cualquier servidor web que tenga instalado .NET Framework e Internet Information Services (IIS). Podrías hospedar un sitio desde su equipo personal, suponiendo que tuvieras una conexión de banda ancha a Internet y supieras cómo configurar su enrutador para permitir las solicitudes web entrantes. También puede hospedar un sitio desde un equipo de una intranet, como hacen muchas empresas. Sin embargo, el foco de estos tutoriales es hospedar su sitio web con un proveedor de host web.

Nota:

IIS es el servidor web de nivel empresarial de Microsoft. Se incluye con las ediciones que no son home de Windows, como Windows Server 2008 y ciertas ediciones de Windows Vista. No es necesario instalar IIS para servir aplicaciones de ASP.NET en un entorno de desarrollo, ya que Visual Studio incluye el servidor web de desarrollo ASP.NET. Sin embargo, el servidor web de desarrollo de ASP.NET solo acepta conexiones locales, por lo que no puede utilizarse en un entorno de producción.

Antes de enviar su sitio a un proveedor de hospedaje web, debe decidir con qué empresa va a hacer negocios. Existen innumerables empresas de hospedaje web en marketplace; una búsqueda de "empresa de hospedaje web" arroja más de cinco millones de resultados. ¿Cómo encontrar el más adecuado para usted? Su motor de búsqueda favorito es un buen lugar inicial, como sitios web como TopHosts y HostCritique, que comparan y contrastan varios servicios de hospedaje. También le aconsejo que pida recomendaciones a sus colegas y compañeros de trabajo; también puede pedir recomendaciones en el Foro abierto sobre hospedaje aquí en los Foros de ASP.NET.

Las empresas de hospedaje web suelen ofrecer planes de hospedaje compartidos y planes de hospedaje dedicados. Con el hospedaje compartido de un solo servidor web hospeda docenas si no cientos de sitios web diferentes. Con el hospedaje dedicado se alquila un equipo de la empresa que sirve su sitio y su sitio solo. Un plan de hospedaje compartido puede incluir soporte para páginas de ASP.NET, la posibilidad de trabajar con bases de datos Microsoft Access, 5 GB de espacio en disco y 100 GB de tráfico mensual de ancho de banda por 9,95 $ al mes. Otro plan de hospedaje compartido podría incluir compatibilidad con páginas de ASP.NET, acceso al servidor de bases de datos Microsoft SQL Server 2008, 10 GB de espacio en disco y 250 GB de tráfico mensual de ancho de banda por 19,95 $ al mes. Los planes de hospedaje dedicados suelen ser mucho más caros, cuestan varios cientos de dólares al mes, pero ofrecen un mejor rendimiento y más control que las opciones de hospedaje compartido. El plan que elija depende de su presupuesto, de la cantidad de tráfico que recibe su sitio web y de las características que prevé que necesitará.

Dos consideraciones importantes al elegir un proveedor de host web son el servicio al cliente y la calidad del servicio. Si tiene una pregunta o un problema de configuración, ¿cuánto tiempo pasa desde que envía su problema al servicio de asistencia del hospedaje web hasta que recibe una respuesta? ¿Cuál es la fiabilidad de los servicios de la empresa? ¿Con frecuencia tienen interrupciones en la base de datos? ¿Con qué frecuencia se desconecta su servidor de correo electrónico? Siempre puede pedir a una empresa que le facilite detalles sobre su tiempo de actividad y preguntar por su directiva de atención al cliente, pero una forma más segura es solicitar la opinión de clientes actuales y pasados, lo que puede hacer a través de foros en línea, grupos de noticias y listas de correo electrónico.

Nota:

Algunas empresas de hospedaje web centran su negocio en una pila tecnológica determinada, como .NET o LAMP (L inux, A pache, M ySQL y P HP), por lo tanto, asegúrese de que la empresa que seleccione hospeda ASP.NET aplicaciones. Compruebe también que admiten la versión de ASP.NET que usa para compilar la aplicación. Y si va a compilar una aplicación controlada por datos, asegúrese de que el host web ofrece el mismo servidor de base de datos y la misma versión que está usando.

Resumen

Las aplicaciones web de ASP.NET suelen diseñarse, crearse y probarse en un entorno de desarrollo local. Una vez que una versión está lista para su lanzamiento, se mueve a un entorno de producción. Aunque es posible hospedar sitios web de ASP.NET en su equipo personal o en los servidores de su empresa, muchas empresas y particulares optan por subcontratar el hospedaje a un proveedor de hospedaje web.

Esta serie de tutoriales examina los pasos para implementar una aplicación de ASP.NET en un proveedor de hospedaje web, explorando los retos más comunes. Este tutorial ofrecía una visión general de alto nivel del proceso de implementación de ASP.NET y daba consejos para encontrar un proveedor de hospedaje web adecuado. El siguiente tutorial examina qué archivos relacionados con ASP.NET deben copiarse en el entorno de producción al implementar el sitio web.

¡Feliz programación!

Agradecimientos especiales a...

Muchos revisores han evaluado esta serie de tutoriales. El revisor principal de este tutorial ha sido Teresa Murphy. ¿Le interesa revisar mis próximos artículos de MSDN? Si es así, escríbame a mitchell@4GuysFromRolla.com.