Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Idee für ein LiveUpdate (https://www.delphipraxis.net/38596-idee-fuer-ein-liveupdate.html)

Die Muhkuh 21. Jan 2005 15:10


Idee für ein LiveUpdate
 
Hi,

ich plane für mein Programm ein LiveUpdate zu machen. Meine Idee sieht wie folgt aus:

Es gibt ein extra Programm. Sobald man in diesem Programm auf "Nach Updates suchen" klickt, lädt das Programm eine Dateiliste herunter die nach folgendem Schema aufgebaut ist:

Code:
<URL zur Datei>;<Dateigröße>;<Dateidatum>;<Ordner in den die Datei kopiert werden soll>
Diese Datei wird nun runtergeladen. Danach gibts nun zwei Möglichkeiten:

1. Möglichkeit
Das Programm erstellt von eine Lokale FileList und ich prüfe per Pos() ob ein Eintrag vorhanden ist. Wenn nein -> Auf die Update list und dann runtergeladen.

2. Möglichkeit
Der String wird geparst, und es wird auf dem Rechner nach der Datei gesucht. Wenn die Datei gefunden wird und Datum und Größe stimmen nicht überein, kommt der String in die Updatelist. Wenn die Datei nicht gefunden wird, kommt der String auch in die Updatelist.

Wenn nun alle Dateien überprüft wurden, wird das ganze Zeugs runtergeladen.

Was haltet ihr von dem Konzept? Oder habt ihr was besseres?

Robert_G 21. Jan 2005 15:22

Re: Idee für ein LiveUpdate
 
Möglichkeit 3:
Du nimmst RunTime Packages und sorgst dafür, dass deine Echse nur einen leeren "Rumpf" darstellt. Sämtliche Klassen für UI und Logik hast du in den Packages.
Diese kannst du dann bei Bedarf entladen, ersetzen und neu laden. ;)

Die Muhkuh 21. Jan 2005 15:24

Re: Idee für ein LiveUpdate
 
Ähm,

sorry, ich hab kein bisschen verstanden :oops: Kannst du mir das mal genauer erklären?

Dax 21. Jan 2005 15:42

Re: Idee für ein LiveUpdate
 
Kurz: Dein "Programm" ist eine (odere mehrere) DLL(s), die von einem Miniprogramm geladen werden und deren Windowfunktionen ausgeführt wird (such mal nach Hier im Forum suchenrundll, könnte helfen ;)). Wenn du jetzt ein Update startest, kickt dein Programm die DLLs aus dem Speicher und nimmt stattdessen die neuen.

Ich hoffe, das war kurz und verständlich erklärt ;)

Robert_G 21. Jan 2005 15:42

Re: Idee für ein LiveUpdate
 
Na wenn du dich noch nie mit dynamisch geladenen Packages auseinandergesetzt hast, würde es jetzt zu lange dauern.
Da musst du also ( wie Tyler auch) warten, bis ich Zeit habe. ;)

p.s.: Was ich mich immer wieder frage: Warum zum Geier interessiert sich kaum ein Delphianer für die Möglichkeiten von Delphi?
Ich will dir jetzt nicht vorwerfen, dass du nur stupide mit dem Form designer arbeitest. Aber hat dich das Thema Packages noch nie interessiert? :shock:
Schließlich besteht die Delphi IDE selbst nur aus einer kleinen Anwendung, der Rest sind Packages, die statisch und dynamisch geladen werden.

Jelly 21. Jan 2005 15:44

Re: Idee für ein LiveUpdate
 
Vielleicht hilft die Komponente Internetupdate von meiner HP dir weiter.

kalmi01 21. Jan 2005 16:04

Re: Idee für ein LiveUpdate
 
Hallo Spider,

ich hab ein ähnliches Prob so gelöst:

1. auf Server liegt eine Liste.SRV mit allen zu installierenden
und zu de-installierenden Dateinamen.
Aufbau: Pfad inkl. Dateiname | Datum_Uhrzeit

Im Header steht nur: Datum_Uhrzeit wann die Liste erstellt wurde.

2. auf dem lokalen Rechnern liegt eine Liste.LOC, mit gleichem Aufbau wie Liste.SRV

Bei der Installation der Software wird Liste.SRV zu Liste.LOC kopiert.

Ein kleines Prg. ließt erste Zeile mit Datum_Uhrzeit aus Liste.SRV und Liste.LOC
Sind beide Strings nicht identisch, wird nun das "richtige" Update-Prg. aufgerufen.

Update-Prg. vergleicht beide Stringlisten von Liste.SRV und Liste.LOC miteinander.
Ist der Datum_Uhrzeit-String = 0, wird die entsprechende Datei gelöscht.
Sind die Datum_Uhrzeit-Strings von Liste.SRV und Liste.LOC nicht gleich und nicht 0,
so wird kopiert.

Am Ende wird noch Liste.SRV zu Liste.LOC kopiert.

shmia 21. Jan 2005 16:05

Re: Idee für ein LiveUpdate
 
Anstelle von Dateigrösse und Dateidatum wäre eine MD5 oder SHA1 Prüfsumme sinnvoll.
Das Dateidatum könnte sich durch versch. Zeitzonen oder durch die Sommer-/Winterzeit Problematik unterscheiden.
Die Dateigrösse ist kein sinnvolles Entscheidungskriterium.

Die Muhkuh 21. Jan 2005 16:11

Re: Idee für ein LiveUpdate
 
Hi,

@Robert, Dax

das ist mir doch ein bisschen zu aufwenig :stupid:

@Jelly

thx, ich gucke mir die mal an. Achso, ich kann mit FireFox die Datei nicht downloaden. Ging nur mit dem IE.

@kalmi

Das ist mir auch klar. Sowas hatte ich auch vor :stupid:

@shima

MD5 bzw. SHA1 ist auch keine schlechte idee.

Die Muhkuh 21. Jan 2005 16:18

Re: Idee für ein LiveUpdate
 
Hi Jelly,

ich hab mir deine Komponente angesehen, aber da es leider keine Dokumentation bzw. kleines Beispiel Programm gibt, versteh ich nicht ganz wie ich diese Komponente einsetzen soll. Wärst du so nett und schreibst mir ein kleines Beispiel, damit ich mal ein Grundgerüst habe?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:42 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz