Pregunta

Siempre he implementado mis aplicaciones web a través de FTP (a veces incluso xcopy), y luego ejecuto manualmente los scripts de la base de datos.

Comencé a implementar de esta manera en los años 90, pero últimamente, he visto algunas aplicaciones web con instaladores. Estoy empezando a preguntar, si estoy encerrado en un proceso desactualizado. Soy consultor, mis aplicaciones suelen ser internas, por lo que no me preocupo por distribuirlas y hacer que otras personas las instalen.

Pero tengo curiosidad; ¿Alguien crea instaladores para implementar aplicaciones web internas asp.net?

Si es así, ¿por qué? (Voluntario, obligatorio o parte de un proceso de automatización)

¿Y ha tenido algún problema para hacerlo de esta manera?

¿Fue útil?

Solución

absolutamente. Lo usamos para hacer todas nuestras aplicaciones. De esa forma creamos el instalador y lo ejecutamos en los entornos qa y uat para probar y sabemos exactamente lo que sucederá en la producción. No hay conjeturas sobre el orden en que alguien podría hacer algo, o si pierden un paso. Hace las cosas mucho más fáciles.

Ooh, también me olvidé del proceso automatizado. Tenemos sistemas implementados (Ant Hill Pro) que lo implementan automáticamente en los entornos adecuados. Las personas qa no tienen que esperar a que se haga algo, porque todo se hace a las 2 am. Si necesitan volver a ejecutar la compilación con actualizaciones, los desarrolladores registran el código y presionamos un botón, y se implementa automáticamente. Sin esperar al ingeniero de construcción, porque está en una reunión o enfermo o lo que sea.

Otros consejos

Siempre desea tener una forma automatizada de compilar e implementar: reduce en gran medida las posibilidades de un error único si olvida un determinado paso. Además, le permite descargar la implementación a otra persona fácilmente sin tener que enseñarle 100 pasos personalizados. Si el proyecto es interno o no, todas las aplicaciones deben seguir las mejores prácticas.

Personalmente soy un poco como el OP; por lo general, simplemente despliego usando FTP, pero al decir que normalmente mis aplicaciones son internas, o en el caso de otros proyectos, 100% administradas por mí.

Sin embargo, también he estado pensando en esto últimamente, y he comenzado a pensar en cómo el uso de una implementación adecuada puede mejorar el proceso; tener que documentar un proceso de instalación detallado puede ser un verdadero dolor.

Utilizo Powershell y me pareció muy fácil de automatizar muchas tareas ¡Probablemente encontrará un poco diferente al principio, pero al final verá que se trata del poder de las bibliotecas .NET!

He usado el " Proyecto de configuración web " para crear un MSI que instaló la salida de un " Proyecto de implementación web & Quot; para una aplicación interna. El administrador de nuestro servidor no estaba preparado para realizar una instalación manual de 50 pasos. Para mi aplicación actual, al administrador de mi servidor no le gusta la sensación de 'caja negra' de los instaladores de MSI y prefiere obtener una pila de archivos y un manual de implementación de 50 pasos. (¿Ves un patrón aquí? Pregúntale al administrador de tu servidor qué quiere).

El Proyecto de configuración web no hace que sea obvio de inmediato cómo instalar en otra cosa que no sea " Sitio web predeterminado " ;, aparte de eso, hizo que el proceso de instalación sea repetible y creó una función integrada forma de deshacer (simplemente ejecutando el instalador desde 1 versión hace).

Por supuesto, esto supone que su directorio virtual no contiene ningún contenido modificado por el usuario; no confiaría en un MSI para fusionar correctamente los archivos creados y nuevos por el usuario.

Usamos " XCopy " despliegue el modelo aquí, ya que la gente de Ops tiene su propio método para configurar la seguridad en una nueva aplicación web en el servidor.

Sin embargo, tuvimos que usar un instalador cuando tuvimos que instalar una aplicación web que usaba una versión más nueva de Crystal Reports ya que tenía que hacer algo especial con una clave y no teníamos una versión completa de CR en el propio servidor. Así que tenga esto en cuenta cuando trabaje con aplicaciones de terceros, es posible que necesiten hacer algún tipo de módulo de fusión que MSI maneje fácilmente.

Sí ... tenemos una aplicación que necesita una gran cantidad de requisitos previos configurados ... servicio web, servicio de Windows, cuentas de usuario, seguridad, creación de carpetas, bits de GAC, etc. hasta un buen MSI con acciones personalizadas que se pueden instalar y desinstalar limpiamente. Ahorré aproximadamente una hora de trabajo para implementar en una nueva caja.

Muchas de las otras aplicaciones más pequeñas se implementan simplemente haciendo Publicar sitio web en una carpeta local y luego enviando los contenidos al objetivo.

Depende en gran medida de la escala de su proyecto, su entorno y su base interna de usuarios. Raramente implemento con un msi porque somos una operación demasiado pequeña para tener múltiples entornos (a excepción de SharePoint, eso es completamente diferente). Desarrollamos y usamos VS para implementar aplicaciones web en un cuadro de desarrollo, suponiendo que estén aprobadas, luego usamos VS nuevamente para implementar en el cuadro en vivo.

La única condición es que tengamos varias copias de web.config (junto con test, dev y live) y luego eliminemos el sufijo del archivo correspondiente dependiendo de dónde se haya implementado.

Probablemente no sea la mejor metodología (sé que no lo es), pero funciona y ayuda a la implementación rápida de soluciones de tamaño pequeño a mediano en un entorno de usuario a pequeña escala.

F5ToDebug ...

¿Estás diciendo que está bien tomar atajos si no tienes tiempo para hacerlo correctamente?

" ¿quién va a probar el código en el entorno de prueba? " Usted mismo dijo que tiene archivos de configuración para _test: ¿por qué no sería una prueba adecuada?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top