Esta es una pregunta filosófica.
Dada una aplicación de escritorio hipotética y el deseo de proporcionar actualizaciones automáticas (en lugar de obligar a las personas a ir a un sitio web, buscar una actualización, descargar una actualización, instalar), ¿cuál de los dos es más un enfoque de "mejor práctica"?
Me gusta iTunes , verifica si hay una nueva versión y solicita al usuario que descargue la nueva versión. Si es así, descarga un ejecutable de instalación completa (en este caso, un archivo de Windows Installer (.msi)) que instala la versión completa (no solo una actualización de la versión anterior, demasiado para administrar si hay varias versiones disponibles) . Entonces, digamos, es la versión 10.1.1, ya sea que esté instalando nueva o actualizando, use el mismo archivo. Después de descargar, le indica al usuario que cierre la aplicación y ejecute el archivo de instalación.
Similar al otro, busca una nueva versión y solicita al usuario que la descargue, pero en lugar de simplemente descargar un ejecutable y pedirle al usuario que lo ejecute, en realidad lo ejecuta para ellos, cerrando el programa que han abierto, adquiriendo La seguridad necesaria para instalar archivos.
Problemas con el n. ° 2: muchos problemas relacionados con el cierre del programa, ya que el programa puede abrir otros programas ( Outlook y Excel ), o qué sucede si el usuario estaba en medio de algo. También en materia de seguridad, necesita acceso de administrador local para instalar, ¿qué pasa si no lo tiene? En versiones posteriores de Windows, no puede simplemente anular la seguridad de la persona.
Problemas con el n. ° 1: algunas personas creen que esto será demasiado difícil, demasiado esfuerzo para el usuario final.
Preferiría ir con el # 1 porque ahorrará 80-120 horas en mi proyecto y es más sencillo de implementar y mantener. Sin embargo, tenemos personas que se sienten fuertemente por todos lados.
¿Cuál es una mejor práctica para este tipo de cosas?
fuente
Respuestas:
Personalmente, prefiero el enfoque de Google Chrome. Un directorio base con un iniciador y subdirectorios para cada versión instalada del software. El iniciador solo busca el número de versión más alto y lo usa y elimina las versiones anteriores según sea necesario. De vez en cuando se ejecuta una tarea de actualización para descargar y crear nuevos directorios. Cuando se instalan nuevas versiones, la aplicación en ejecución solicita un reinicio para usar la nueva versión.
fuente
No debe crear entradas de inicio innecesarias para buscar actualizaciones como Adobe Flash Player (es difícil rastrearlas todas, y no puedo encontrar una manera de desactivar las comprobaciones ...) o iTunes. Molesta al usuario (geeks, de todos modos). Una mejor opción sería buscar actualizaciones al inicio de la aplicación como lo hace Firefox .
Un simple y discreto "¿Instalar actualizaciones?" La ventana no molestará a los usuarios. Permita que se actualice en segundo plano mientras el usuario hace otras cosas, y luego inicie automáticamente su aplicación.
Solo asegúrese de incluir una opción:
O algo similar.
Si vale la pena el esfuerzo, diría que lo haga. Esa es tu decisión.
fuente
Creo que quieres una configuración "ClickOnce".
http://msdn.microsoft.com/en-us/library/142dbbz4(v=vs.90).aspx
ClickOnce es una tecnología de implementación que le permite crear aplicaciones basadas en Windows de actualización automática que se pueden instalar y ejecutar con una mínima interacción del usuario. La implementación de ClickOnce supera tres problemas principales en la implementación:
Dificultades en la actualización de aplicaciones. Con la implementación de Microsoft Windows Installer, cada vez que se actualiza una aplicación, el usuario debe reinstalar toda la aplicación; Con la implementación ClickOnce, puede proporcionar actualizaciones automáticamente. Solo se descargan las partes de la aplicación que han cambiado, y luego la aplicación completa y actualizada se reinstala desde una nueva carpeta de lado a lado.
Impacto en la computadora del usuario. Con la implementación de Windows Installer, las aplicaciones a menudo dependen de componentes compartidos, con el potencial de conflictos de versiones; Con la implementación ClickOnce, cada aplicación es autónoma y no puede interferir con otras aplicaciones.
Permisos de seguridad. La implementación de Windows Installer requiere permisos administrativos y solo permite la instalación limitada del usuario; La implementación de ClickOnce permite a los usuarios no administrativos instalar y otorga solo los permisos de seguridad de acceso al código necesarios para la aplicación.
fuente
Personalmente, llegué a apreciar las aplicaciones que hacen algo similar al marco de Sparkle . Supongo que es solo una cosa de Mac, pero esencialmente hace lo siguiente (fuera de mi cabeza, supongo que el comportamiento se puede ajustar).
Teniendo en cuenta que está hablando de .msi, este marco en particular no es realmente aplicable, pero en este caso preferiría optar por alguna solución existente que reinventar la rueda.
fuente
Yo diría que realmente tienes que conocer a tu usuario. Si son inteligentes y tienen un intenso interés en mantenerse al día, # 1 funcionará.
Nunca subestimes la holgazanería de un usuario porque cuando su programa ya no funciona porque ya no es compatible, más tarde recibirás llamadas de ayuda.
El tiempo vendrá del desarrollo (# 2) o del soporte (# 1).
fuente
¿Qué hay de esto?
No necesita molestar al usuario, no necesita cerrar nada ...
fuente
¿Por qué no algo en el medio?
Solicitar la descarga (o hacer la opción "descargar automáticamente"), después de finalizar, solicitar la instalación de la actualización descargada (ejecute el .msi). De esta forma, usted niega la desventaja del n. ° 2 (cierre en medio del trabajo del usuario) y, al mismo tiempo, mantiene la comodidad con el costo de 1 clic más.
El cuadro de diálogo " ¿Cerrar e instalar actualización? " Debe ser fácilmente accesible (pero no molesto) cuando el usuario rechaza al principio. Con tener "Iniciar <nombre del programa>?" la casilla de verificación al final de .msi será casi como la n. ° 2 sin realmente más trabajo
@ Los
programas de seguridad en Windows moderno pueden solicitar permiso para realizar acciones que requieren derechos de administrador (se muestra al usuario un mensaje donde escribe la contraseña del administrador y luego selecciona "sí / no" para otorgar permiso)
fuente
Tengo 124 casas de empeño que utilizan mi aplicación de escritorio Pawnshop Management. Cada vez que tengo una nueva actualización, les envío un correo electrónico para informarles sobre la actualización y los detalles de la misma. Luego tienen la opción de enviarlo por FTP iniciando sesión en mi sitio web. También tienen la opción de deshacer la actualización. Mi sitio web también realiza un seguimiento de cada versión instalada de casas de empeño.
fuente