He estado evaluando la amplia gama de soluciones de instalación y despliegue web disponibles para las aplicaciones de Windows. Me limitaré a aclarar aquí (sin demasiado detalle, estas herramientas han sido cubiertos en otras cuestiones) mi comprensión de las opciones:¿Comprar o construir para la implementación web?
- NSIS - Herramienta gratuita que genera ejecutables de configuración. Pequeño binario. Lenguaje de scripting especializado, a veces obtuso.
- Inno Setup - Herramientas gratuitas para archivos ejecutables de instalación. Varios esquemas de compresión binarios. Motor de scripts Pascal.
- WIX - Conjunto de herramientas gratuito para generar binarios MSI. Lenguaje de definiciones XML.
- WIX ClickThrough - Herramientas adicionales para el empaquetado, la descarga web y la detección automática de actualizaciones (ahora parte del núcleo WIX).
- InstallShield - Entorno de desarrollo comercial para el embalaje de instalación. Genera binarios MSI. Lenguaje InstallScript tipo C.
- Wise - Entorno de desarrollo comercial para el embalaje de instalación. Genera binarios MSI.
- ClickOnce - Framework compatible con Visual Studio para publicar aplicaciones en un servidor web, con detección automática de actualizaciones. No es compatible con los requisitos de instalación personalizada (archivos INI, registro, etc.). Paquetes configurados como un binario MSI.
- Install Aware - Entorno de desarrollo comercial para la instalación. Genera binarios MSI. Marco de actualización automática (actualización web).
Si me he perdido alguna, házmelo saber.
y encontró algunas discusiones útiles de estas tecnologías en StackOverflow:
He trabajado con algunas de estas soluciones, así como una un puñado de soluciones de instalación internas patentadas. Se preocupan principalmente por las instalaciones de embalaje y proporcionan un marco para que los desarrolladores accedan al entorno de tiempo de ejecución. Con el creciente requerimiento de implementación web y actualizaciones automáticas de software, esperaba encontrar más consenso entre los desarrolladores sobre un marco para la entrega web de software y las actualizaciones posteriores, realmente no he encontrado ese consenso. Ciertamente hay soluciones disponibles (ClickOnce, ClickThrough, InstallShield Update Service), pero cada una tiene limitaciones considerables (corrígeme si represento mal alguno de estos). Me interesaría un marco que proporcionara algunos de los siguientes:
- Alojamiento/administración de terceros de actualizaciones.
- Acceso al entorno del cliente (archivos INI, registro, etc.).
- Registro/activación de usuario.
- Comentarios/reporte de Errores
Esto me está saliendo con la fuerte impresión de que la mejor manera de abordar el problema de distribución web es a través de una solución propietaria hecha a la medida (posiblemente el aprovechamiento de los envases de instalación existente). He visto este tipo de solución funciona bien para una serie de aplicaciones exitosas:
- FileZilla - HTTP solicitud a update.filezilla-project.org para comprobar si hay actualizaciones, descarga un binario NSIS (creo) y luego se apaga abajo para ejecutar la instalación.
- Las actualizaciones automáticas para los juegos Massively Multiplayer son completamente necesarias y se implementan de forma universal utilizando sistemas patentados.
Así que, por fin, a mis preguntas:
- me he perdido un marco de distribución web que proporcionará la funcionalidad que necesito?
- ¿Son mis requisitos demasiado específicos como para esperar razonablemente que se entregue un marco de terceros?
- ¿Debo comprar o construir?
¿Qué hay de Powershell? – Kiquenet