Nächste Frage:
Scyks hat geschrieben:... Ähm, dann zu der nächsten Frage, wie ist denn im Web der beste weg zu prüfen ob ein Update vorhanden ist? ...
... tjoa, nehmen wir einmal an, das Update-Szenario sieht wie folgt aus ...
Ausgangslage:
Du hast lediglich WebSpace und eine dazugehörige URL, die dir zur Verfügung stehen.
(kein eigenständiger Server mit programmierbarer WebServerSoftware, der eine RemoteFunktionalität zur Versionsabfrage oder sogar integriertem FileTransfer bietet)
Zum WebSpace hast du via FTP Zugriff und kannst Unterverzeichnisse anlegen.
URL-Update-Path:
Definiere ein (Unter)Verzeichnis, welches du für Updates deiner Anwendung(en) nutzen möchtest.
- z.B.: http://...<meine Url>.../ <anwendungsname>/download/
Hier drunter lädst du dann deine Anwendungspakete hoch ... wobei der Grundstamm des Paketes (Executable, Archive, etc.) immer gleich bleibt, lediglich ein Versions-Suffix (Buildnummer, Datum, was du möchtest) sich ändert:
- z.B.: http://...<meine URL>.../<anwendungsname>/download/myapplication_1.0.zip
Update-Polling:
Nun ist der Zeitpunkt der Clientanwendung gekommen, immer wieder diesen Pfad pollen zu "können". Wie, wann und wodurch dies geschieht, das ist deiner Fantasie überlassen. Ob bei jedem Programmstart, per manuellem User-Anstrubs, etc.
Jedenfalls könntest du z.B: relativ einfach mit der bei Python mitgelieferten
urllib2 Bibliothek diesen URL-Pfad prüfen, die Dateinamen aus der HTTP-Response ausparsen und dann die aktuellste Version ermitteln lassen.
Hast du festgestellt, dass eine Datei im URL-Download-Pfad aktueller von der Dateiversion her als deine Software ist, dann kannst du diese auf ähnlichem Wege downloaden und wie bereits erwähnt einen eigenen Updater als seperaten Prozess starten und den eigenen Prozess beenden. Dann hoffst du, dass dieses Tool die Hauptanwendung mit der gedownloadeten neuen Version (oder Patches, etc.) aktualisiert *g*.
Ist die Aktualisierung erfolgreich durchlaufen, könnte der Updater z.B. wiederrum (nach z.B. PopUp Anfrage und Bestätigung seitens des Benutzers) die Hauptanwendung starten und sich final beenden.
Noch vielleicht zwei Tipps:
- 1. Lass alle Schritte, Fehler und auch erfolgreichen Stati von deinem Updater in Dateilogs schreiben !!!
2. Backup immer vor dem Update den aktuellen Stand (niemand ist erfreut, wenn einem ein Update die Anwendung oder gar schlimmer die Daten dahinter auf nimmer wiedersehen zerschiesst) !!!
>>Masaru<<