Newsgroup: it.comp.lang.delphi
Titolo: AutoUpdate

Qualcuno ha esperienza in "autoaggiornamento" di applicazioni?
Sto cercando di raccogliere informazioni in merito ai vari metodi di upgrade via internet. Sarebbe decente non doversi appoggiare ad una seconda applicazione.
Qualche idea?
Saluti a tutti!

 Sto cercando di raccogliere informazioni in merito ai vari metodi di upgrade
via internet. Sarebbe decente non doversi appoggiare ad una seconda
applicazione.
"Decente" in base a quale criterio ? 
Io uso normalmente un metodo di autoaggiornamento basato su un "loader"
che verifica la disponibilità di nuovi aggiornamenti ed eventualmente li
scarica, aggiorna l'applicazione e lancia il nuovo eseguibile (tutto
trasparente per l'utente).  Il sistema si basa, essenzialmente, su una
tabella centrale in cui viene memorizzato, in un campo blob binario, il
nuovo eseguibile da aggiornare, e in altri campi la versione e la data di
aggiornamento.
Il loader su ogni singola macchina verifica che esista una versione più
recente, se c'è scarica e installa il file (ovviamente il file .exe
memorizzato sul server può essere un setup di aggiornamento, di modo che
il loader possa aggiornare anche se stesso).
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
Per decente indendo che non debba riavviare la macchina (se non strettamente necessario), che un eventuale "loader" si possa aggiornare da se, ecc... 
Il "setup di aggiornamento" come aggiorna un applicazione già in esecuzione? Intendo, dal lato loader lanci una shell sull'exe e ti chiudi? Poi come ti rilanci?
ciao

 Il "setup di aggiornamento" come aggiorna un applicazione già in esecuzione?
Intendo, dal lato loader lanci una shell sull'exe e ti chiudi? Poi come ti
rilanci?
Sì, il loader lancia il setup e muore (il setup richiede la conferma
dell'utente).  Il setup è impostabile perché rilanci l'eseguibile.


 
Sarebbe utile sapere se esiste un modo per delegare il sistema ad eseguire copie, rinomine, cancellazione, ecc... Una sorta di operazione pianificata. Ho fatto alcune prove ed ho scoperto che su XP (e forse su tutti gli NT based) è possibile rinominare un file in esecuzione, quindi anche "se stessi" (l'handle rimane il medesimo) il problema è che sui 98 ciò non funziona. Detto questo, l'unico problema che rimane è il rilanciarsi, per questo, un evento pianificato potrebbe essere una soluzione.

 problema è che sui 98 ciò non funziona.
98 è un sistema di 10 anni fa. Continui ancora a fare programmi che girino 
su 98? Con Vista alle porte non sarebbe il caso di obbligare i clienti di 
passare almeno a XP?
Avalon 

 Sarebbe utile sapere se esiste un modo per delegare il sistema ad eseguire
copie, rinomine, cancellazione, ecc... Una sorta di operazione pianificata. Ho
fatto alcune prove ed ho scoperto che su XP (e forse su tutti gli NT based) è
possibile rinominare un file in esecuzione, quindi anche "se stessi" (l'handle
rimane il medesimo) il problema è che sui 98 ciò non funziona. Detto questo,
l'unico problema che rimane è il rilanciarsi, per questo, un evento
pianificato potrebbe essere una soluzione.
Non serve "delegare al sistema" (perché mai ?) e non serve neanche
"rinominare sé stessi" (non inventare ruote quadrate quando ne esistono
già di rotonde). 
Basta scrivere un setup (esistono N sistemi per farlo) che faccia tutte le
operazioni del caso e alla fine rilanci l'eseguibile dell'applicazione.
Io lo faccio regolarmente.


 passare almeno a XP?
Potrebbe non essere il caso e per diversi motivi. Primo perché non si puň
"obbligare" nessuno, ma bisognerebbe, quanto piů, adeguarsi alle sue
esigenze. Secondo perché potrebbe non essere praticamente possibile, oltre
che economicamente non conveniente, utilizzare un nuovo sistema operativo
(il mio attuale cliente ha migliaia di postazioni in giro per l'Italia su
cui č ancora installato Windows '95; il software funziona e sarebbe un
bagno di sangue cambiare tutto il parco macchine).


 Detto questo, l'unico problema che rimane è il rilanciarsi, per questo, un evento pianificato potrebbe essere una soluzione.
C'è anche qualcuno che si è ingegnato nello scrivere un codice che
sovrascrive l'exe mentre e' in esecuzione: cosi' chiudi il programma, lo
rilanci, ed e' aggiornato. 
Prova a verificarne la fattibilità :-)
http://www.delphipages.com/threads/thread.cfm?ID=73020&G=73001
Ciao
-- 
Morde

Avalon ha scritto:

Non è così semplice, si cerca di indurre all'aggiornamento ma alcuni clienti sono recidivi al cambiamento. Alla fine non supporterò più vecchi sistemi (sarà un percorso obbligato) ma almeno tento la ricerca :)

 
Tu quale sistema usi?

Morde ha scritto:

grazie 1000 gli do un occhiata! Potrebbe essere utile anche per altro.

Tu quale sistema usi?
Perdonami, ma mi sembra d'averlo già scritto...

Andrea Laforgia ha scritto:

A si scusami, intendevi quello del loader.
Una soluzione simile alla tua (tranne per il blog field) la utilizzo anche io.
Per ora grazie per le dritte. Se mi viene in mente altro, vi aggiorno...

 ha scritto nel messaggio 
news:nkmyh.1568$h_1....@twister1.libero.it...

prova a dare un'ochhiata ai software di  installazione in versione pro come 
ad esempio InstallShield se prevedono simili capacita'.
Giorgio 

 ad esempio InstallShield se prevedono simili capacita'.
La versione standard, che usavo personalmente, non offre il webupdate..
devi pertanto andare su quella superiore. 
Ciao
-- 
Morde