Aplicación de actualización automática - filosofía

13

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 una "práctica recomendada". "¿enfoque?

  1. Al igual que iTunes , comprueba si hay una nueva versión y solicita al usuario que descargue el nueva versión. Si es así, descarga un archivo ejecutable de instalación completa (en este caso, un archivo Windows Installer (.msi)) que instala el versión completa (no solo una actualización a la versión anterior, demasiado para administrar si hay varias versiones). Entonces, digamos, es la versión 10.1.1: si está instalando una versión nueva o una actualización, usa el mismo archivo. Una vez que se descarga, le indica al usuario que cierre la aplicación y ejecute el archivo de instalación.

  2. Similar a la otra, busca una nueva versión y le pide al usuario que la descargue, pero en lugar de solo descargar un archivo ejecutable y pedirle al usuario que lo ejecute, realmente lo ejecuta para ellos, apagando el programa que tienen abierto, adquiriendo la seguridad necesaria para instalar archivos.

Problemas con el # 2: muchos problemas relacionados con el cierre del programa, ya que el programa puede abrir otros programas ( Outlook y < a href="http://en.wikipedia.org/wiki/Microsoft_Excel"> Excel ), o qué pasa si el usuario estaba en medio de algo. También en materia de seguridad, necesita acceso de administrador local para instalar, ¿qué sucede si no lo tiene? En versiones posteriores de Windows, no puede simplemente anular la seguridad de la persona.

Problemas con el número 1: algunas personas creen que esto será demasiado difícil, demasiado esfuerzo para el usuario final.

Prefiero ir con el número 1 porque ahorrará de 80 a 120 horas en mi proyecto y es más sencillo de implementar y mantener. Sin embargo, tenemos personas que se sienten fuertemente en todos los lados.

¿Cuál es la mejor práctica para este tipo de cosas?

    
pregunta Shannon Davis 15.04.2011 - 21:50

8 respuestas

19

Personalmente, me gusta más el enfoque de Google Chrome. Un directorio base con un iniciador y subdirectorios para cada versión instalada del software. El lanzador solo busca el número de versión más alto y lo usa, y elimina las versiones anteriores según sea necesario. Una tarea de actualización se ejecuta cada cierto tiempo 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.

    
respondido por el Bacon Bits 16.04.2011 - 08:11
3

No deberías crear entradas de inicio innecesarias para buscar actualizaciones como Adobe Flash Player (es difícil rastrearlas todas y no puedo encontrar una manera de deshabilitar los cheques ...) o iTunes. Molesta al usuario (geeks, de todos modos). Una opción mejor sería buscar actualizaciones en el inicio de la aplicación como Firefox .

Un simple y no intrusivo "¿Instalar actualizaciones?" La ventana no molestará a los usuarios. Deje que se actualice en segundo plano mientras el usuario hace otras cosas, y luego inicie automáticamente su aplicación.

Solo asegúrate de incluir una opción:

  

Compruebe si hay actualizaciones en:

     
  • Inicia sesión (si quieres molestar a los geeks)
  •   
  • Inicio de la aplicación ( en de forma predeterminada)
  •   
  • Cada pocas semanas ( desactivado de forma predeterminada)
  •   

O algo similar.

Si vale la pena el esfuerzo, diría que adelante. Esa es tu decisión.

    
respondido por el Mateen Ulhaq 16.04.2011 - 08:37
2

Creo que quieres una configuración de "ClickOnce".

enlace

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 la 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 de ClickOnce, puede proporcionar actualizaciones automáticamente. Solo se descargan aquellas partes de la aplicación que han cambiado, y luego se vuelve a instalar la aplicación completa y actualizada desde una nueva carpeta en paralelo.

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 de ClickOnce, cada aplicación es independiente 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 de usuarios; La implementación de ClickOnce permite a los usuarios no administrativos instalar y otorga solo los permisos de seguridad de acceso a código necesarios para la aplicación.

    
respondido por el John Batdorf 15.04.2011 - 21:52
2

Personalmente llegué a apreciar aplicaciones que hacen algo similar al Sparkle framework . Supongo que es solo una cosa de Mac, pero esencialmente hace lo siguiente (desde la parte superior de mi cabeza - asumo que el comportamiento puede ser ajustado).

  1. Buscar actualizaciones (generalmente al inicio de la aplicación)
  2. Si hay uno, se muestra una ventana separada con un registro de cambios bien formateado
  3. El usuario puede omitir esa versión, instalarla o elegir que se le recuerde más tarde
  4. Si decide instalar la aplicación, se muestra una barra de progreso debajo del registro de cambios
  5. Después de la descarga, el usuario puede decidir abandonar la aplicación e instalarla inmediatamente o instalarla después de que la abandone

Teniendo en cuenta que está hablando de .msi, este marco en particular no es realmente aplicable, pero en este caso prefiero ir con alguna solución existente que reinventar la rueda.

    
respondido por el sebastiangeiger 16.04.2011 - 15:18
1

Yo diría que realmente tienes que conocer a tu usuario. Si son expertos o tienen un intenso interés en mantenerse al día, el número 1 funcionará.

Nunca subestimes la pereza de un usuario porque cuando su programa ya no funciona porque ya no son compatibles, te inundarán las llamadas de la mesa de ayuda más adelante.

El tiempo vendrá desde el desarrollo (# 2) o el soporte (# 1).

    
respondido por el maple_shaft 15.04.2011 - 21:59
1

¿Qué pasa con esto?

  • Al iniciar la aplicación, verifique si hay una nueva versión y (opcionalmente después de preguntar al usuario) descárguela.
  • Cuando finalice la descarga, proporcione un botón para el usuario que permita reinstalar y reiniciar la aplicación (no use el cuadro de diálogo a menos que la actualización sea crítica).
  • En el cierre de la aplicación, (opcionalmente después de preguntar al usuario) inicie el instalador. En caso de que el usuario se niegue a realizar la instalación en este momento (quizás estén apurados), hágalo la próxima vez antes de que se inicie la aplicación.

No necesita molestar al usuario, no necesita cerrar nada ...

    
respondido por el maaartinus 16.04.2011 - 07:26
1

¿Por qué no algo en el medio?

Solicite descargar (o haga que la opción "descargar automáticamente"), después de finalizar el mensaje para instalar la actualización descargada (ejecute .msi). De esta manera, se niegan los inconvenientes del # 2 (se cierran en medio del trabajo del usuario) y se 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 se niega al principio. Con la opción "Iniciar < nombre del programa & gt ;?" casilla de verificación al final de .msi será casi como # 2 sin realmente más trabajo

@ seguridad
Los programas 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 de administrador y luego selecciona "sí / no" para otorgar el permiso)

    
respondido por el NoxArt 16.04.2011 - 14:53
1

Tengo 124 Pawnshops que usan mi aplicación de escritorio de Pawnshop Management. Cada vez que tengo una nueva actualización, les transmito 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 revertir la actualización. Mi sitio web también realiza un seguimiento de cada versión instalada de las casas de empeño.

    
respondido por el Frank R. 22.05.2011 - 06:17

Lea otras preguntas en las etiquetas