Applicazione auto aggiornamento - filosofia

13

Questa è una domanda filosofica.

Considerata un'ipotetica applicazione desktop e il desiderio di fornire aggiornamenti automatici (piuttosto che forzare le persone a visitare un sito Web, verificare un aggiornamento, scaricare un aggiornamento, installare), quale dei due è più di una "migliore pratica" "approccio?

  1. Come iTunes , controlla se c'è una nuova versione e richiede all'utente di scaricare il nuova versione. In tal caso, scarica un eseguibile di installazione completo (in questo caso, un Windows Installer file (.msi)) che installa il file versione completa (non solo un aggiornamento alla versione precedente - troppo da gestire se ci sono più versioni là fuori). Quindi, diciamo, è la versione 10.1.1: se si sta installando nuovo o aggiornato, si utilizza lo stesso file. Dopo il download, istruisce l'utente a chiudere l'applicazione ed eseguire il file di installazione.

  2. Simile all'altro, controlla una nuova versione e richiede all'utente di scaricarlo, ma invece di scaricare un file eseguibile e chiedere all'utente di eseguirlo, lo esegue effettivamente per loro - chiudendo il programma che hanno aperto, acquisendo la sicurezza necessaria per installare i file.

Problemi con # 2: molti problemi relativi alla chiusura del programma, poiché il programma può aprire altri programmi ( Outlook e < a href="http://en.wikipedia.org/wiki/Microsoft_Excel"> Excel ), o cosa succede se l'utente si trovava nel mezzo di qualcosa. Inoltre, per quanto riguarda la sicurezza, è necessario l'accesso da amministratore locale per l'installazione, cosa succede se non si dispone? Nelle versioni successive di Windows, non puoi semplicemente ignorare la sicurezza della persona.

Problemi con il n. 1: alcune persone ritengono che ciò sia troppo difficile, troppo sforzo per l'utente finale.

Preferirei decisamente andare con # 1 perché salverebbe 80-120 ore sul mio progetto, ed è più semplice da implementare e mantenere. Tuttavia, abbiamo persone che si sentono strongmente su tutti i lati.

Che cosa è una buona pratica per questo genere di cose?

    
posta Shannon Davis 15.04.2011 - 21:50
fonte

8 risposte

19

Personalmente, preferisco l'approccio di Google Chrome. Una directory di base con un programma di avvio e sottodirectory per ciascuna versione installata del software. Il programma di avvio cerca solo il numero di versione più alto e lo utilizza, eliminando le versioni precedenti in base alle esigenze. Un'attività di aggiornamento viene eseguita ogni tanto per scaricare e creare nuove directory. Quando vengono installate nuove versioni, l'applicazione in esecuzione richiede un riavvio per utilizzare la nuova versione.

    
risposta data 16.04.2011 - 08:11
fonte
3

Non dovresti creare voci di avvio non necessarie per verificare la presenza di aggiornamenti come Adobe Flash Player (è difficile rintracciarli tutti e non riesco a trovare un modo per disabilitare i controlli ...) o iTunes. Infastidisce l'utente (smanettoni, comunque). Un'opzione migliore sarebbe quella di verificare gli aggiornamenti all'avvio dell'applicazione come Firefox .

Un semplice "aggiornamenti di installazione" non invadenti? la finestra non disturberà gli utenti. Lascia che si aggiorni in background mentre l'utente fa altre cose e poi avvia automaticamente la tua applicazione.

Assicurati di includere un'opzione:

Check for updates at:

  • Log-on (if you want to annoy geeks)
  • Application Startup (on by default)
  • Every few weeks (off by default)

O qualcosa di simile.

Se vale la pena, direi di provarci. Questa è la tua decisione.

    
risposta data 16.04.2011 - 08:37
fonte
2

Penso che tu voglia una configurazione "ClickOnce".

link

ClickOnce è una tecnologia di implementazione che consente di creare applicazioni auto-aggiornanti basate su Windows che possono essere installate ed eseguite con un'interazione minima da parte dell'utente. La distribuzione ClickOnce supera tre problemi principali nella distribuzione:

Difficoltà nell'aggiornamento delle applicazioni. Con la distribuzione di Microsoft Windows Installer, ogni volta che un'applicazione viene aggiornata, l'utente deve reinstallare l'intera applicazione; con la distribuzione ClickOnce, è possibile fornire aggiornamenti automaticamente. Vengono scaricate solo le parti dell'applicazione che sono state modificate e quindi l'applicazione completa e aggiornata viene reinstallata da una nuova cartella side-by-side.

Impatto sul computer dell'utente. Con la distribuzione di Windows Installer, le applicazioni spesso si basano su componenti condivisi, con potenziali conflitti di controllo delle versioni; con la distribuzione ClickOnce, ogni applicazione è autonoma e non può interferire con altre applicazioni.

Autorizzazioni di sicurezza. La distribuzione di Windows Installer richiede autorizzazioni amministrative e consente solo l'installazione limitata dell'utente; La distribuzione ClickOnce consente agli utenti non amministrativi di installare e concede solo le autorizzazioni di sicurezza di accesso al codice necessarie per l'applicazione.

    
risposta data 15.04.2011 - 21:52
fonte
2

Personalmente ho apprezzato le applicazioni che fanno qualcosa di simile al quadro Sparkle . Immagino che sia solo una cosa del Mac, ma essenzialmente fa quanto segue (in cima alla mia testa - presumo che il comportamento possa essere regolato).

  1. Controlla aggiornamenti (di solito all'avvio dell'applicazione)
  2. Se ce n'è uno, viene mostrata una finestra separata con un changelog ben formattato
  3. L'utente può quindi saltare quella versione, installarla o scegliere di essere ricordata in seguito
  4. Se decide di installare l'applicazione, viene visualizzata una barra di avanzamento sotto il registro delle modifiche
  5. Dopo il download l'utente può decidere di uscire dall'applicazione e installarlo immediatamente o installare dopo aver chiuso l'applicazione

Considerando che stai parlando di .msi, questo particolare framework non è realmente applicabile, ma in questo caso preferirei utilizzare una soluzione esistente piuttosto che reinventare la ruota.

    
risposta data 16.04.2011 - 15:18
fonte
1

Direi che devi conoscere davvero il tuo utente. Se sono esperti e hanno un intenso interesse a rimanere aggiornati, il # 1 funzionerà.

Non sottovalutare mai la pigrizia di un utente perché quando il suo programma non funziona più perché non sono più supportati, sarai inondato dalle chiamate all'help desk più tardi.

Il tempo arriverà dallo sviluppo (n. 2) o dal supporto (n. 1).

    
risposta data 15.04.2011 - 21:59
fonte
1

Che mi dici di questo?

  • All'avvio dell'applicazione, controlla la nuova versione e (facoltativamente dopo aver chiesto all'utente) scaricala.
  • Al termine del download, fornire un pulsante per l'utente che consente di reinstallare e riavviare l'applicazione (non utilizzare alcuna finestra di dialogo a meno che l'aggiornamento non sia fondamentale).
  • All'arresto dell'applicazione, (facoltativamente dopo aver chiesto all'utente) avviare l'installazione. Nel caso in cui l'utente si rifiuti di eseguire l'installazione a questo punto (forse hanno fretta), fallo la volta successiva prima che l'applicazione abbia inizio.

Non è necessario disturbare l'utente, non è necessario chiudere nulla ...

    
risposta data 16.04.2011 - 07:26
fonte
1

Perché non qualcosa nel mezzo?

Chiedi di scaricare (o fai "download automatico"), dopo aver terminato prompt per installare l'aggiornamento scaricato (esegui il .msi). In questo modo si nega il lato negativo del n. 2 (chiusura nel mezzo del lavoro dell'utente) e mantenendo il comfort con il costo di 1 altro clic.

La finestra di dialogo " Chiudi e installa aggiornamento? " dovrebbe essere facilmente accessibile (ma non fastidiosa) quando l'utente rifiuta all'inizio. Con "Avvia < nome del programma & gt ;?" la casella di controllo alla fine di .msi sarà quasi come il n. 2 con un lavoro non più efficace

@ sicurezza
I programmi in Windows moderno possono richiedere l'autorizzazione per eseguire azioni che richiedono diritti di amministratore (l'utente viene visualizzato prompt dove (s) digita la password dell'amministratore e quindi seleziona "sì / no" se concedere l'autorizzazione)

    
risposta data 16.04.2011 - 14:53
fonte
1

Ho 124 banchi di pegno che usano la mia app desktop di Pawnshop Management. Ogni volta che ho un nuovo aggiornamento, trasmetto un'email a loro informandoli dell'aggiornamento e dei dettagli. Quindi hanno la possibilità di FTP accedendo al mio sito web. Hanno anche la possibilità di ripristinare l'aggiornamento. Il mio sito web tiene anche traccia di ogni versione installata di banchi di pelo.

    
risposta data 22.05.2011 - 06:17
fonte

Leggi altre domande sui tag