installer - sale - presupuesto para construir una casa
¿Comprar o construir para la implementación web? (4)
He estado evaluando la amplia gama de soluciones de instalación y despliegue web disponibles para las aplicaciones de Windows. Solo aclararé aquí (sin demasiados detalles, estas herramientas se han cubierto en otras preguntas) mi comprensión de las opciones:
- NSIS : herramienta gratuita que genera archivos ejecutables de instalació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.
- Instalar 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 sobre estas tecnologías en StackOverflow:
- El mejor sistema de instalación simple
- La mejor opción para instaladores de Windows
- Alternativas a ClickOnce
He trabajado con algunas de estas soluciones, así como con 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 / informes de errores
Esto me deja la fuerte impresión de que la mejor forma de abordar el problema de la implementación web es a través de una solución patentada especialmente diseñada (posiblemente aprovechando el paquete de instalador existente). He visto que este tipo de solución funciona bien para varias aplicaciones exitosas:
- FileZilla: solicitud de HTTP a update.filezilla-project.org para buscar actualizaciones, descarga un binario de NSIS (creo) y luego se apaga para ejecutar la instalación.
- Las actualizaciones automáticas para los juegos Massively Multiplayer son completamente necesarias y se implementan universalmente usando sistemas propietarios.
Entonces, al fin, a mis preguntas:
- ¿Me he perdido un marco de implementació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?
Absolutamente de acuerdo con el afiche que dijo que se mantenga alejado de InstallAware. Han tenido una larga historia de problemas éticos realmente absurdos y tratan a sus propios clientes de manera horrible. Pueden ser francamente abusivos e insultantes.
¡Cuidado con InstallAware!
Estoy completamente de acuerdo con InstallAware.
Después de usar WiX, NSIS e InstallAware, tengo que admitir humildemente que todos fueron demasiado para lo que realmente necesito como desarrollador de software. No hay proyectos que haya hecho hasta ahora que no se hayan podido implementar utilizando el proyecto de implementación de Visual Studio.
¿Es limitado? Sí.
También es muy simple aprender un uso. Además, en realidad puedes hacer cosas realmente útiles, como crear automáticamente parches (archivos .MSP) utilizando las técnicas que se describen aquí.
Entiendo completamente que no puedes hacer todo dentro de un proyecto de instalación de Visual Studio, pero es sorprendente lo que puedes lograr. Es gratis, es fácil y, francamente, para uso general es una mejor opción que pasar horas interminables aprendiendo el alucinante XML de WiX (impresionante como lo es), o los scripts detallados de InstallAware ...
Con VS Setup, es drag''n''drop y build''n''deploy. Todas las demás soluciones que he probado tuvieron retrocesos ... no pueden detectar automáticamente la salida de su proyecto ... o necesitan filtros especiales para no incluir salidas no deseadas de la compilación.
Mi sugerencia es: si deseas desplegar tu proyecto, aprende:
- Cómo crear una clase de instalador personalizada, y
- Cómo crear sus propios paquetes de requisitos previos
Estas son habilidades razonablemente fáciles de dominar y satisfacen las necesidades de la mayoría de los desarrolladores.
Instaría a tener cuidado con el Installaware. Recientemente tuvimos una experiencia impactante con su atención al cliente.
Seguimos uno de sus proyectos de muestra al pie de la letra que falló miserablemente. Planteó un ticket de soporte con soporte al cliente y se les dijo que nos costaría $ 199 para que ellos consideren arreglar su propio código.
Luego planteamos el mismo problema en los foros de usuarios y fueron prohibidos de inmediato debido a que esto constituyó una publicación cruzada y no fue permitido. Aunque esto no se menciona en sus términos y condiciones. De hecho, prohibieron nuestra IP para que nadie en nuestra empresa pueda publicar en los foros.
Una experiencia muy pobre y que no repetiremos. Ahora estamos buscando reemplazar el Installaware lo antes posible.
Compre Installaware bajo su propio riesgo.
- Si sus requisitos específicos son centrales para su negocio; es decir, parte de su negocio consiste en proporcionar una instalación / instalación sencilla y fácil de usar, y siente que ninguna de las bibliotecas de implementación disponibles puede permitirle lograr esto, entonces, ciertamente, continúe y cree la suya propia.
- Si sus requisitos específicos serían agradables pero no constituyen una parte importante de su negocio; es decir, el usuario final normalmente no espera o necesita un procedimiento de instalación sin problemas, o nunca tendrá que hacerlo por sí mismo (es decir, pasa ese paso a su departamento de TI), entonces la necesidad de crear la suya propia para sus propios requisitos específicos es probable que sea superado por el esfuerzo extra que implicaría.
Creo que su impresión de que necesitará una solución personalizada es sensata; Parece que sus requisitos serán la clave de la experiencia de su producto, especialmente si necesita realmente actualizaciones automáticas y retroalimentación.