AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Update-Vorgang in einen Thread auslagern

Ein Thema von mm1256 · begonnen am 18. Dez 2014 · letzter Beitrag vom 22. Dez 2014
Antwort Antwort
Dejan Vu
(Gast)

n/a Beiträge
 
#1

AW: Update-Vorgang in einen Thread auslagern

  Alt 20. Dez 2014, 14:35
Mir ist es ein Rätsel, wieso man den Download nicht einfach in einen kleinen Thread packt und mit einer der vier vorgestellten Methoden im Formular rummalt. Das kann doch nun jeder. Oder hab ich etwas verpasst?
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: Update-Vorgang in einen Thread auslagern

  Alt 20. Dez 2014, 19:22
Hallo zusammen,

so, ich war den halben Tag beschäftigt meinen Code umzubauen und die andere Hälfte mit Einkaufen (mit Frau... ) und jetzt komme ich auch mal dazu, hier nachzuschauen was es neues gibt. Und war erst mal positiv überrascht von den vielen Antworten.

Also, Stand der Dinge: Zuerst war es von der Aufgabenverteilung so: Update-Form für das UI, eine Unit mit der Logik (Connect, Download, Disconnect, Installation der neuen programmdateien usw.) und das Datenmodul.

Das Datenmodul blieb bis auf ein paar kleine Änderungen wie es ist. Die Unit mit der Logik entfällt, die habe ich heute neu programmiert. Sie beinhaltet jetzt meinen Thread, der den Download durchführt.

Die Beispiele im WEB (nicht die von euch hier...die habe ich ja jetzt erst gelesen) hatten hinsichtlich der Synchronisierung eines gemeinsam: Der Thread muss mit dem aufrufenden Objekt kommunizieren, damit er z.B. die Fortschrittanzeige aktualisieren kann. So eine Vorgehensweise geht mir gegen den Strich. Der Thread soll sich um den Download kümmern müssen, und sonst nichts! Das war der Ansatz. Und, aktueller Stand, es funktioniert.

Das Installationsprogramm fordert irgendwann am Anfang die Eingabe der Lizenznummer. Dann wird die Lizenz vom WEB_Server heruntergeladen. Die Verbindung steht also zu dem Zeitpunkt schon. Normalerweise wird sie getrennt, und das Installationsprogramm fortgesetzt. Jetzt setze ich die Installation genauso fort, und starte den Thread.

Während der weiteren Installation (das Setup kopiert die Dateien usw.) lädt der Thread eventuell vorhandene aktuellere Dateien herunter.

Ist die Installation abgeschlossen, kann es im Großen und Ganzen nur zwei Zustände geben: Der Download-Thead arbeitet noch, oder ist schon fertig. Wenn er schon fertig ist, gibt (bzw. gab) es überhaupt keine Anforderung etwas zu synchronisieren, und wenn das Setup schon fertig ist und dann quasi auf den Thread warten muss...hat das Setup ja nichts mehr zu tun. Mit einem Timer frage ich dann die property "Progress" des Threads ab, aktualisiere den Progressbar in der MainForm, und warte bis der Thread fertig ist.

Exakt so verwendet dann später mein Update-Programm den Thread. Es sind darin nur noch ein paar Zeilen Code zu ändern. UI, Logik und Daten voneinander zu trennen hat sich wieder mal bewährt.

Das ist so einfach, dass ich mich im Nachhinein wundere, es nicht schon vorher so gemacht zu haben. Und die "Angst" vor Threads ist jetzt auch weg. Im Gegenteil, ich habe jetzt Lust auf mehr.

Zitat:
Die eigentliche Frage lauten: An welcher Stelle kommst Du nicht weiter?
Danke Mavarik, die Motivation es einfach noch mal zu versuchen, kam von dir.

Vielen Dank auch an alle die sich Mühe und Gedanken gemacht haben. Wie gesagt, es funzt momentan schon, aber ein paar kosmetische Kleinigkeiten sind noch zu erledigen. Und dann kommen ja noch ein paar neue Anforderungen auf mich zu.

Das Setup ist nämlich nicht nur für Installation und Deinstallation zuständig, auch für Datensicherung, Datenrücksicherung, PC-Umzug(Migration), Datenbankprüfung usw. Also noch genügend Potential für Threads, um zum Beispiel gleichzeitig mehrere Mandanten(-Datenbanken) zu sichern. BTW wenn es "nur" ein popeliges Installationsprogramm wäre, hätte ich es ja nicht selber geschrieben, sondern mit Inno gemacht.
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#3

AW: Update-Vorgang in einen Thread auslagern

  Alt 20. Dez 2014, 20:00
Ich habe den Updatevorgang in meiner Software auch in einen Thread ausgelagert.

Ganz klarer Vorteil:
- man kann ungestört weiterarbeiten und braucht die Software nicht erst zu beenden um einen "Update-Checker" zu starten.
Nach erfolgreichem Download der Updates muss man logischerweise die Software neu starten und ein kleiner "Client", wenn man denn so programmiert hat, muss die Updates installieren.
Aber immer noch, für mich, die beste Lösung.
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

AW: Update-Vorgang in einen Thread auslagern

  Alt 20. Dez 2014, 20:06
...Nach erfolgreichem Download der Updates muss man logischerweise die Software neu starten und ein kleiner "Client", wenn man denn so programmiert hat, muss die Updates installieren.
Aber immer noch, für mich, die beste Lösung.
Nicht nur für dich Ich mache den Check wenn der User meine SW beendet: "Es steht eine neuere Version zur Verfügung. Die neuen Programmdateien wurden bereits im Hintergrund heruntergeladen und werden nun aktiviert...". Das Updaten dauert dann nur noch Sekunden.
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#5

AW: Update-Vorgang in einen Thread auslagern

  Alt 20. Dez 2014, 20:08
Sehr schön Solche Software mag ich. Für mich ist Usability das fast Wichtigste einer Software.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#6

AW: Update-Vorgang in einen Thread auslagern

  Alt 21. Dez 2014, 13:29
Da wird ein Update installiert, ohne mich zu fragen ??? Das ist aber benutzerfreundlich.
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

AW: Update-Vorgang in einen Thread auslagern

  Alt 21. Dez 2014, 15:41
Dich fragt ja auch keiner, oder hat keiner gefragt. Es ist vollkommend ausreichend, wenn ich meine Kunden um Erlaubnis frage.
Angehängte Grafiken
Dateityp: jpg Screenshot.jpg (32,1 KB, 31x aufgerufen)
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
Pfaffe

Registriert seit: 29. Jan 2009
297 Beiträge
 
Delphi 12 Athens
 
#8

AW: Update-Vorgang in einen Thread auslagern

  Alt 21. Dez 2014, 16:07
Vielleicht so für den Anwender auswählbar:
a. Updates automatisch suchen, herunterladen und installieren
b. Updates automatisch suchen herunterladen und manuell installieren
c. Updates automatisch suchen, manuell herunterladen und manuell installieren
d. Update manuell suchen. -> [Jetzt suchen]

Und in einem Firmennetz muss es möglich sein, dass der Domänen-Admin bestimmen kann, wie geupdatet wird. Das kann ein Auskriterium bei Firmen sein.
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#9

AW: Update-Vorgang in einen Thread auslagern

  Alt 21. Dez 2014, 16:28
Da wird ein Update installiert, ohne mich zu fragen ??? Das ist aber benutzerfreundlich.
Meine Software bietet eine Auswahlmöglichkeit, um alle n-Tage automatisch nach Updates zu suchen. Die Updatesuche kann man auch komplett ausschalten und manuell suchen.
Es gibt auch eine Option, um Updates mit Bestätigung oder ohne, also Silent, zu installieren.

Usability Damals wurde mir beigebracht, selbst die dümmsten Szenarien zu beachten. Denn es gibt nichts, vorsicht, "Dümmeres" als den Endbenutzer.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 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