Estoy buscando diferentes técnicas / herramientas que utiliza para implementar un proyecto de aplicación web ASP.NET ( NO un sitio web ASP.NET) en producción.
Estoy particularmente interesado en el flujo de trabajo que ocurre entre el momento en que su servidor Continuous Integration Build suelta los binarios en alguna ubicación y el momento en que la primera solicitud del usuario llega a estos binarios.
¿Está utilizando algunas herramientas específicas o simplemente XCOPY? ¿Cómo se empaqueta la aplicación (ZIP, MSI, ...)?
Cuando se implementa una aplicación por primera vez, ¿cómo se configura el grupo de aplicaciones y el directorio virtual (los crea manualmente o con alguna herramienta)?
Cuando cambia un recurso estático (CSS, JS o archivo de imagen), ¿vuelve a implementar toda la aplicación o solo el recurso modificado? ¿Qué pasa cuando cambia una página ASPX / ensamblado?
¿Realiza un seguimiento de todas las versiones implementadas para una aplicación determinada y, en caso de que algo salga mal, tiene procedimientos para restaurar la aplicación a un estado de trabajo conocido anterior?
Siéntase libre de completar la lista anterior.
Y esto es lo que usamos para implementar nuestras aplicaciones ASP.NET:
- Agregamos un proyecto de implementación web a la solución y lo configuramos para construir la aplicación web ASP.NET
- Agregamos un proyecto de instalación ( NO un proyecto de instalación web) a la solución y lo configuramos para que tome la salida del proyecto de implementación web.
- Agregamos una acción de instalación personalizada y en el evento OnInstall ejecutamos un ensamblado .NET de compilación personalizado que crea un grupo de aplicaciones y un directorio virtual en IIS usando System.DirectoryServices.DirectoryEntry (esta tarea se realiza solo la primera vez que se implementa una aplicación) . Admitimos múltiples sitios web en IIS, autenticación para directorios virtuales y configuración de identidades para grupos de aplicaciones.
- Agregamos una tarea personalizada en TFS para construir el proyecto de instalación (TFS no admite proyectos de instalación, por lo que tuvimos que usar devenv.exe para construir el MSI)
- El MSI está instalado en el servidor en vivo (si hay una versión anterior del MSI, primero se desinstala)