![]() |
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:
Diese Datei wird nun runtergeladen. Danach gibts nun zwei Möglichkeiten:
<URL zur Datei>;<Dateigröße>;<Dateidatum>;<Ordner in den die Datei kopiert werden soll>
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? |
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. ;) |
Re: Idee für ein LiveUpdate
Ähm,
sorry, ich hab kein bisschen verstanden :oops: Kannst du mir das mal genauer erklären? |
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
![]() Ich hoffe, das war kurz und verständlich erklärt ;) |
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. |
Re: Idee für ein LiveUpdate
Vielleicht hilft die Komponente
![]() |
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. |
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. |
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. |
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 19:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz