Update beim Kunden - wie?

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Update beim Kunden - wie?

Beitrag von Wolfgang_B »

Hallo Kollegen,
ich möchte meinen Kunden Updates per Webseite/Dwonload zur Verfügung stellen. Wie könnte ein solches Vorgehen aussehen?

Wie müßte das Update aufgebaut sein?
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Update beim Kunden - wie?

Beitrag von brandelh »

Wenn du deine EXE einfach ersetzen willst, kannst du eine EXE downloaden und entpacken (ZIP), wenn du Installer hast, dann lädst du den.

Ich habe damals für meine Tante so ein System zusammen gestellt, aber da war beides klar und keine Kosten / Lizenzen im Weg.

Auf einer Website habe ich eine Textdatei hinterlegt, die die Version der neuesten EXE und DLL enthielt.
Die Anwendung selbst hat dort (mit LoadFromURL) die Datei abgeholt. Bei Änderungen wurde eine Meldung angezeigt, dass es neue Versionen gibt.
Da ich ja nur EXE und DLL getauscht habe, habe ich auf Wunsch eine andere EXE aufgerufen, die die Datei geladen und entpackt hat.
Dieses "Updateprogramm" muss in einem anderen Verzeichnis mit eigener Runtime sein, sonst kann man die anderen nicht überschreiben.
Entpacken, und Dateien ersetzen, Programm beenden. Beim nächsten Start muss die neue EXE noch prüfen ob DBF Strukturänderungen nötig sind und die erledigen.
Auf der WWW Seite habe ich einfach ein Unterverzeichnis genutzt, auf das man normal nicht kommt.
Gruß
Hubert
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Re: Update beim Kunden - wie?

Beitrag von Wolfgang_B »

Vielen Dank! So ähnlich habe ich mir das schon gedacht, aber keine Erfahrung damit.
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Update beim Kunden - wie?

Beitrag von Rolf Ramacher »

Hallo Wolfgang

ich mache das schon länger. Das Update erstelle ich mit Inno-setup. daraus eintsteht ein exe-file . diese lade ich mit file Zilla auf meine Domain hoch

den entsprechenden Link habe ich in meine Homepage eingebaut.

ist nicht schwer
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Re: Update beim Kunden - wie?

Beitrag von Wolfgang_B »

Rolf, vielen Dank. Schau ich mir an.
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
peternmb
1000 working lines a day
1000 working lines a day
Beiträge: 525
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

Re: Update beim Kunden - wie?

Beitrag von peternmb »

Lässt sich auch relativ einfach automatisieren.

Mein Programm prüft in frei wählbarem Abstand (bei jedem Start/Woche/Monat) ob ein Update verfügbar ist. Dazu wird kurz eine FTP-Verbindung zu meinem Server aufgebaut und geschaut ob ein bestimmtes Verzeichnis oder Datei vorhanden ist. Ich habe dafür ein Verzeichnis genommen, dessen Name meine aktuelle Programmversion (z.B. 487) ist. Wenn das Verzeichnis nicht vorhanden ist wird dem User ein Update angeboten - wenn gewünscht wird das per Inno-Setup erstellte Update per FTP heruntergeladen. Nach einem Hinweis wird das laufenden Programm beendet und die Installation des Updates gestartet - ist alles idiotensicher und läast sich ohne Zusatzprogramme mit wenigen Zeilen Code direkt in Xbase machen.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Update beim Kunden - wie?

Beitrag von Jan »

Ich erstelle bei jeder neuen Programmversion automatisch eine Textdatei, in der jede Datei mit ihrer Versionsnummer drin steht (nicht nur meine Programmdateien, sondern auch Tools und die Xbase++-Runtimes). Die lade ich bei Updatekontrollen per FTP herunter, und vergleiche jeden einzelnen Eintrag mit der Version der entsprechenden Datei beim Kunden. Ist die älter, wird die neue Datei ebenfalls per FTP herunter geladen. Früher hab ich das mit LoadFromUrl() gemacht, heute mit FTPClient()

Damit habe ich die Möglichkeit selektiv nur die geänderten Dateien herunter zu laden. Heute ist das vermutlich nicht mehr ganz so wichtig, aber als ich angefangen hatte waren die Leitungen halt noch nicht im 3stelligen MBit-Bereich, meist noch nicht mal im 2stelligen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Update beim Kunden - wie?

Beitrag von Tom »

Unsere Software prüft (je nach Einstellung) im Hintergrund, ob der Kunde updateberechtigt ist, indem über die API, die unser CRM (Fremdprodukt) zur Verfügung stellt, ein entsprechender Request abgesetzt wird. Der gleiche Request gibt darüber Auskunft, ob der Kunde über Neuerungen oder bekannte Probleme in seiner Version informiert werden will; wenn das der Fall ist, ergänzt sich die Antwort entsprechend (ein vorformatiertes und automatisch generiertes HTML-Dokument wird mitgesendet, das es für alle Versionen, die noch supportet werden, in aktuellen Fassungen gibt). Hat der Kunde Updateberechtigung, also einen bestehenden und bezahlten Pflegevertrag, prüft die Software über einen weiteren Request an eine webbasierte Datenbank, welche Versionen aktuell freigegeben und stabil sind - wir führen immer zwei Updates, aber nur stabile installieren sich automatisch. Nach Abfrage oder auf Wunsch automatisch wird dann ein verschlüsseltes ZIP geladen, ebenfalls im Hintergrund, und heimlich entpackt. Das wandert dann in ein Verzeichnis auf dem Server. Wenn das alles erfolgreich war, bietet die Software an, sich neu zu starten, um das Update zu installieren, indem eine kleine Xbase-EXE einfach die Dateien vom Server ins lokale Verzeichnis holt. Ansonsten würde sie halt beim nächsten Neustart merken, dass es auf dem Server ein Update gibt - und die gleiche kleine Xbase-EXE, die zur Auslieferung gehört und immer vorhanden ist, würde das automatisch ins lokale Installationsverzeichnis holen. Der Prozess ist äußerst komfortabel und sehr verlässlich.

Kunden können sich aber Updates auch selbst holen. Dafür müssen sie sich im Kundenbereich unserer Website einloggen und das Update (Inno-Setup) ziehen, außerdem generieren sie sich dort einen Freigabeschlüssel, den das Update abfragt (eingebettete DLL). Die Installation erfolgt dann in ein Arbeitsplatzverzeichnis, aus dem die jeweilige Installation das dann zum Server schiebt, wenn sie merkt, dass sie selbst aktueller als das ist, was dort liegt. Die anderen Arbeitsplätze kriegen das dann automatisch beim Programmstart.

Weil ganz, ganz viele Leute aber mit alldem immer noch überfordert sind oder darauf keine Lust haben, installiert unser Support auch Updates direkt bei den Kunden, und nicht bei wenigen. :wink:
Herzlich,
Tom
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Update beim Kunden - wie?

Beitrag von Marcus Herz »

Wie fängst du dann ab, dass irgendjemand in einem Programm ist und das zum Drüberkopieren gesperrt ist?
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Update beim Kunden - wie?

Beitrag von Tom »

Die kleine Drüberkopier-EXE prüft, ob ein aktiver Prozess im betroffenen Verzeichnis unterwegs ist.
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Update beim Kunden - wie?

Beitrag von Jan »

Ich kopier die runter geladenen neuen Programmdateien in ein Update-Verzeichnis, bitte den Nutzer das Programm neu zu starten, erkenne beim nächsten Start das es was im Updateverzeichnis gibt, schreibe eine Batch aus dem Programm heraus per FWrite(), beende das Programm direkt wieder, und rufe die Batch auf. Die kopiert die neuen Dateien rüber, und startet dann das Programm mit den aktualisierten Dateien wieder.

Etwas krude, aber es klappt hat ohne viel Aufwand.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Update beim Kunden - wie?

Beitrag von Tom »

Das ist so ähnlich wie bei uns, Jan, nur mit etwas komplexerer Ansteuerung - und mit Batches arbeiten wir nicht mehr.
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Update beim Kunden - wie?

Beitrag von Jan »

Hallo Tom,

ich muß gestehen das ich ziemlich enttäuscht von Dir wäre, wenn Ihr das noch so machen würdet. Das würde nicht mehr wirklich zu Deiner Software passen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Antworten