Entwickler-Ecke

Freeware Projekte - AutoUpdate-Software


UGrohne - Di 07.01.03 02:01
Titel: AutoUpdate-Software
So, ich hab jetzt mal ein Freeware-Proggy für Entwickler anzubieten. Im Moment frage ich nur, ob Interesse daran besteht, es zu testen, denn der Test ist etwas aufwendiger. Wenn ja, werde ich in den nächsten Tagen eine testfähige Version online stellen.

Es läuft folgendermaßen:

Das Programm schaut in einem Reg.-Schlüssel nach, ob Programme installiert sind. In dem Reg-Schlüssel eines jeden Programms muss ein Parameter path stehen, wo der Programmpfad abgelegt ist. In dem Programmpfad steht eine XML-Datei mit z.B. folgenden Angaben:


Quelltext
1:
2:
3:
4:
5:
- <irgendeinprogramm>
  <mdiapp.exe Version="1.5.2.26" Path="mdiapp.exe" URL="http://irgendeineurl/mdiapp.exe" /> 
  <Rechnung.rav Version="1.1" Path="Rechnung.rav" URL="http://irgendeineurl/Rechnung.rav" /> 
  <Kundenliste.rav Version="1.0" Path="Kundenliste.rav" URL="http://irgendeineurl/Kundenliste.rav" /> 
  </irgendeinprogramm>


Dann holt sich das Proggy XML-Dateien mit dem Programmnamen von einem Server und vergleicht diese. SOllte sich die Version einer Datei von der lokalen unterscheiden, wird das zum Update vermerkt und auf der nächsten Seite zum Ankreuzen angegeben.

Danach werden alle upzudatenden Dateien geholt und anschließend in die entsprechenden Pfade kopiert.

Als Tester muss man halt die Registrierung verwenden und etwas umbauen, XML-Dateien lokal haben und auf einem zentralen Server und die neuen Dateien halt. Eben ein bisschen Aufwand, deswegen frag ich erstmal, bevor ich mir hier nen Hals abprogrammier und nen Text erstelle usw.

Bitte um Rückmeldungen, Vorschläge und wie ihr die Idee findet.

Gruß

P.S.: Eine Verschlüsselung und Zippen der Dateien is geplant, erstmal vor allem der XML-Daten, aber das kommt später. Und später soll auch das hinzufügen von Programm per diesem Update möglich sein, indem die Dateien einfach in die XML aufm Server hinten drangehängt werden


hansa - Di 07.01.03 06:52

Hi,

Idee ist nicht schlecht. Folgendes mußt Du noch einbauen :

1. Rückmeldung der derzeit installierten Version.
2. Installations-Bestätigung.
3. Rest --> muß mal sehen.

Gruß
Hansa


UGrohne - Di 07.01.03 11:06

Ich versteh Deinen ersten Punkt nicht ganz. Also wenn Du meinst, dass das Program wissen soll, welche Version gerade installiert ist, dann is das schon drin. Das steht alles in der lokalen XML-Datei.

Und wie ist das mit der Installationsbestätigung gemeint?

Bin heute morgen vll. noch net so fit *G*

Gruß


bis11 - Di 07.01.03 11:21

Hi,

gute Idee, könnte ich gut gebrauchen. Hätte interesse daran das Prog zu testen.


UGrohne - Di 07.01.03 11:43

OK, also bei meinem derzeitigen Dienstplan *erschreck* wird es hoffentlich spätestens Freitag werden (hab ich frei *juhu*), da kann ich dann eine testfähige Version fertig haben, denn ein paar Kleinigkeiten fehlen noch.

Was wichtig wäre: Es sollten am besten mehrere Programme zum Updaten da sein, damit der Speicherverbrauch getestet werden kann, denn da bin ich mir nicht ganz sicher, ob das so funktioniert, wie ich mir das vorstelle.

Gruß und vielen Dank für die ersten positiven Rückmeldungen *g*, auch wenns noch niemand gesehen hat.


hansa - Di 07.01.03 11:53

Hi,

bin wieder da. Ist das ein Mist bei der Kälte um 6 Uhr aus dem Haus zu müssen.

hansa hat folgendes geschrieben:

1. Rückmeldung der derzeit installierten Version.

Um Doppel- Installationen zu vermeiden ! Oder sogar deshalb, daß keine alte Version über die neue installiert wird.

hansa hat folgendes geschrieben:
2. Installations-Bestätigung.

Um sicherzustellen, daß die Version korrekt installiert wurde. Sonst kommen mit Sicherheit Anrufe, wie: "Hab ich das jetzt wirklich richtig gemacht ? Ich glaube ich habe mich vertan" 8) Selbst, wenn die Versions-Nr. deutlich sichtbar auf dem Bildschirm steht, habe ich schon erlebt, daß es nicht möglich war, diese herauszufinden. Krasser Fall : Ich wollte von jemand wissen, welches Windows auf dem Rechner ist. Klaro, ganz einfach : "Start - Button anclicken und sehen was ganz links senkrecht auf blauem Untergrund steht. Irgendwas mit Windows". Das war nicht zu schaffen. :autsch:

Desweiteren bin ich kein Freund der Registry. Handelt es sich um eigene Programme könnte man die wohl besser außen vor lassen.

Gruß
Hansa


UGrohne - Di 07.01.03 12:12

Hallo hansa,

ich denke das Problem Dopelinstallationen können wir getrost beiseite legen, solange der Entwickler der Software keine Fehler gemacht hat. Ich machs immer so, dass ich für jedes Programm einen bestimmten Reg-Schlüssel erzeugen lasse und da den Wert path mit dem derzeitigen Pfad, da bin ich immer auf der sicheren Seite. Und da muss ja auch die XML-Datei stehen, sonst geht gar nichts.
Das einzige, was man beachten müsste, wäre, dass jemand die XML-Datei lokal verändert, aber das macht auch nichts aus, das einzige, was da noch rausgejolt wird, sind die Versionsnummern, keine Pfade und URLs. Aber deshalb will ich diese Dateien auch noch verschlüsseln, wenn ich was passendes gefunden hab.

Alte Version über Neue? Geht, wenn Du auf Deinen Server eine alte Datei hochlädst, die Datei selber wird nämlich nicht überprüft, es gilt nur das, was in der XML aufm Server steht, das muss halt stimmen. Das habe ich so gemacht, damit man nicht nur die EXEn damit updatet, sondern alle Dateien, die gebraucht werden. Jede Datei bekommt eine eigene Versionsnummer, wie man im obigen Quelltext ja sieht.

zu 2.:
OK, da kommt dann noch ne Meldung. DIe ganzen Dateien von ALLEN Programmen werden ja erst NACH dem DL-VOrgang kopiert, somit kann man währenddessen jederzeit abbrechen, während der Installation allerdings nicht mehr. Und wenn danach jemand unsicher ist, soll er den Update-Vorgang neu starten, dann sieht er nämlich.... genau ..... nichts, denn das Programm wird nicht mehr zum Updaten angeboten *G*

Aber ich denke, ich mach noch eine kleine Anzeige, welche Version up2date sind.

Zum Thema Registry: Es ist die einfachste Möglichkeit, denn wie soll die Software sonst wissen, wo die ganzen Programme sind? Es MUSS eine zentrale Stelle sein, Registry steht also außer Frage für mich. Gut man könnte auch die ProductID da auslesen, aber da müsste es dann eine Liste geben, alle durchzugehen dauert zu lange, ist zu aufwendig.

Gruß


hansa - Di 07.01.03 12:23

Hi,

UGrohne hat folgendes geschrieben:
Zum Thema Registry: Es ist die einfachste Möglichkeit, denn wie soll die Software sonst wissen, wo die ganzen Programme sind? Es MUSS eine zentrale Stelle sein, Registry steht also außer Frage für mich. Gut man könnte auch die ProductID da auslesen, aber da müsste es dann eine Liste geben, alle durchzugehen dauert zu lange, ist zu aufwendig.


Finger weg von der Registry ! Mach doch besser eine "eigene", so im Stile einer INI-Datei. Zumindest etwas, wo ein Fremdprogramm nicht dran "rumfummeln" kann.

Gruß
Hansa


UGrohne - Di 07.01.03 12:29

Aber wo soll die dan hin? Ins Windows-Verzeichnis? Na klasse, das finde ich fast noch schlimmer, da hats dann wieder ne Datei mehr drin, der Virenscanner braucht länger und jeder fragt sich, wo die Datei herkommt und löscht sie und schon is alles futsch. OK, kann in der Reg auch passieren. Ich denke, das ist fast schon Ansichtssache.

Gruß


hansa - Di 07.01.03 12:49

Hi,

also ich kopiere meine Programme immer in ein eigenes klar definiertes Verzeichnis. 99% aller Windows-Installationen befinden sich bei \Windows,\Winnt etc., also im Standard-Verzeichnis. Willst Du das bei Deinem Programm gerne anders haben ? Unterschätze nur nicht den Support-Aufwand im Fehlerfall. Deshalb mein Tip : Mach eine Datei, in der ALLE nötigen Informationen drinstehen. Diese legst Du an eine GENAU DEFINIERTE Stelle. That's it! Willst Du den Blödsinn mitmachen, wie : "Das Programm ist nun installiert, um es zu benutzen müssen Sie den Rechner neu starten !" ja, dann schraub in Gottes Namen an der Registry rum. Gehen tut das auch. Ansichtssache ist es auch. Meine Erfahrung ist wie gesagt, laß Registry Registry sein.

Gruß
Hansa


UGrohne - Di 07.01.03 13:03

Bisher hatte ich noch nie den Fall, dass ich beim Reinschreiben in die Registry neu starten musste, es hat immer alles funktioniert. ABe rich denke, ich biete bei diesem Programm später auch noch ne INI-Datei als Quelle an.

So, aber jetzt isses soweit, ihr dürft drauflos hacken. Hab zwar gesagt bis Freitag, hab jetzt aber mal eine ziemlich frühe Version ins Netz gestellt, also keinerlei Garantien, dass es richtig funktioniert. Es liegt dem Archiv bei:

1. die EXE-Datei selbst
2. Die INI-Datei dafür für Programmeinstellungen
3. Eine XML-Datei als Vorlage
4. Eine Readme in der alles nochmal ein bisschen beschrieben wird

Los, zerreißt die Software *g*. Ne, im Ernst, es ist wirklich noch ne frühe Version, achja, da fällt mir ein, der speichert im Moment die neue Version noch nicht in die lokalen XML-Dateien. Aber das schaff ich jetzt grad nimmer, hab Dienst.

Also hier die URL:

http://aptus.grohne.de/software/files/au2entwickler.zip

MfG


Renegade - Do 09.01.03 22:01

Moin erstmal!

UGrohne hat folgendes geschrieben:
Zum Thema Registry: Es ist die einfachste Möglichkeit, denn wie soll die Software sonst wissen, wo die ganzen Programme sind? Es MUSS eine zentrale Stelle sein, Registry steht also außer Frage für mich. Gut man könnte auch die ProductID da auslesen, aber da müsste es dann eine Liste geben, alle durchzugehen dauert zu lange, ist zu aufwendig.


Warum muß es zentral gespeichert werden wo "alle" Programme sind. Anscheinend gehst du davon aus, daß du mit deinem Prog alle Programme die dein Prog nutzen in einem Atemzug geupdated werden.

Ich stelle mir das eigentlich folgendermaßen vor: Ich Progge ein Prog, von dem ich sehr genau weiß, wo es gespeichert ist und rufe dein Prog auf. Und hier kommt der Punkt. Ich müsste die Möglichkeit haben, deinem Prog mittels Übergabeparameter den Namen und den Ort einer XML-Datei anzugeben. That's it - kein Reg - kein Ini oder sonst ein Workaround.

Gruß Renegade


hansa - Do 09.01.03 22:12

Hi, :wave:

Zitat:
That's it - kein Reg - kein Ini oder sonst ein Workaround.


So hab ich das auch gemeint. Bei meinen Programmen brauche ich kein Regedit oder sonst ein Firlefanz ! Da habe ich alles in der Hand und kein Bill Gates. 8) Die ganzen sinnlosen Änderungen in Windows dienen doch nur dem Zweck, ein Update zu verkaufen. Aber ohne mich! Mach mal einem klar, dem Du Dein Programm verkaufen willst, daß er im Sommer 200 EUR für Win2003 berappen muß, wenn er nicht mal weiß, was das ist!

Gruß
Hansa


UGrohne - Do 09.01.03 22:42

OK, das wäre natürlich auch noch eine Idee, das könnte ich als zusätzliche Möglichkeit anbieten. Hab auch schon daran gedacht, dass wenn Software mehrerer unabhängiger Programmierer dieses Tool nutzen, eine Doppelinstallation zuzulassen, indem einfach eindeutige Dateien mit Programm-Informationen des upzudatenden Programms im Ordner selbst gespeichert werden, damit könnte ich die Registry auch umgehen.

Der Sinn des kompletten Updates ist ja eigentlich auch nützlich, da man für alle unterstützten Programme auf einen Rutsch alle Updates holen kann, ohne jedes Programm einzeln aufzurufen und Update zu klicken. Also ein einheitliches Interface.

Trotzdem danke für die Anregungen. Hat es denn jetzt schon jmd getestet? Ich denke, morgen vormittag werd ich noch ne neue Version hochstellen, die dann mal ordentlich funktionieren sollte, also einsetzbar ist.

Gruß


UGrohne - Fr 10.01.03 08:05

Also, es gibt ne neue Version. Entweder man holt sich die ZIP-Datei (URL oben ; 420kB) oder für alle Modem-User (;-)) hab ich noch ein Patch-File (192 kB) zur Verfügung gestellt:

http://aptus.grohne.de/software/files/AU2_100_101.exe Einfach ausführen und Programmpfad wählen.

Viel Spaß *g*


UGrohne - Sa 11.01.03 17:38

So, es gibt jetzt die Version 1.02: Der Link ganz oben funktioniert (au2entwickler.zip), einen Patch gibt es aber diesmal nicht.

Folgende Änderungen gibt es:


Hats eigentlich schon irgendjemandd getestet?

Gruß


UGrohne - Fr 17.01.03 02:22

Es gibt mal wieder eine neue Version. Diesmal eine wichtige Neuerung:
Man kann zu einem Update ganz einfach Dateien hinzufügen, indem man einfach einen eneun SubNode mit dem Dateinamen erstellt, wie schon in der Beispieldatei bestehen. Ist auch nochmal in der Readme beschrieben.

Achja, noch ne ganz allgemeine Frage: Hats eigentlich schon irgendjemand getestet, ich krieg hier irgendwie überhaupt kein Feedback, obwohl ein paar Leute Interesse bekundet haben :-(

Gruß´

Achja, der Link oben is immer noch geblieben.


UGrohne - Mo 27.01.03 15:09

Also aus mangelndem Interesse werde ich die Ankündigungen in diesem Forum für diese Software jetzt einstellen. Interessierte können weiterhin auf http://aptus.grohne.de/software.phtml?produkt=auentwickler nachschauen, oder mich direkt fragen.

Schade eigentlich..... :(

Gruß


Delete - Mo 27.01.03 15:18

Ich will dir nicht zu nahe treten, aber vielleicht liegt´s daran, dass a) dein System mit den Registry-Keys ein bisschen umständlich ist, und b) dass im Off-Topic (und schon im letzten Jahr) über Updates/Patches geschrieben wurde. Dabei ist u.a. der Link zu einer Delphi-Freeware zu haben, die einwandfrei und relativ einfach Patches erstellen kann.

Du selbst benutzt für dein Update vom 10. Januar einen Patch (von ClickMaker, glaube ich?). Und das o.g. Delphitool macht nichts anderes; nur, es kostet nichts (in Bezug auf ClickMaker), und der Quellcode ist auch noch dabei.


UGrohne - Mo 27.01.03 16:09

MathiasSimmack hat folgendes geschrieben:
Ich will dir nicht zu nahe treten, aber vielleicht liegt´s daran, dass a) dein System mit den Registry-Keys ein bisschen umständlich ist, und b) dass im Off-Topic (und schon im letzten Jahr) über Updates/Patches geschrieben wurde. Dabei ist u.a. der Link zu einer Delphi-Freeware zu haben, die einwandfrei und relativ einfach Patches erstellen kann.

Du selbst benutzt für dein Update vom 10. Januar einen Patch (von ClickMaker, glaube ich?). Und das o.g. Delphitool macht nichts anderes; nur, es kostet nichts (in Bezug auf ClickMaker), und der Quellcode ist auch noch dabei.


Aber darum geht es ja gar nicht. Die Software schaut im Internet nach, ob eine neue Version verfügbar ist und holt sie dann, das macht ja der Patchmaker nicht. Ich wollte auch in Zukunft noch ermöglichen, solche Patches einbauen zu können. Und zu der Saceh mit der Registry hab ich inzwischen ja auchs chon die Alternative mit dem direkten Aufruf, die Reg. wird also gar nicht mehr benötigt. Hab auch schon Pläne für andere Update-Pfade. Anfangs war hier irgendwo reges Interesse und da dachte ich (trotz meiner Zweifel, obs überhaupt jmd braucht), dass es doch ganz gut ankommen könnte. Aber da hab ich mich wohl getäuscht und bin deswegen vll. auch etwas enttäuscht....

Aber is ja jetzt auch egal, wer will kanns benutzen, wer Vorschläge hat, kann sie mir mailen. So....

Gruß


Delete - Mo 27.01.03 17:07

UGrohne hat folgendes geschrieben:
(...)

Na ja, wie gesagt: ich hab mir dein Programm mal kurz angeschaut, fand´s dann aber zu umständlich.

Wobei ich dazu sagen muss: mich hat bei dieser schon erwähnten Delphi-Freeware das VCL-Setup gestört; und auch, dass man jede selbst jede Datei raussuchen musste. Also habe ich dieses Teil ein bisschen umgebaut ... :wink: ... so dass er gleich zwei Ordner scannt und mir die Unterschiede präsentiert.
Na ja, das Setup (zum Einspielen der Patches) fiel auch meinen "Künsten" zum Opfer und ist kleiner.
Und wenn ich vor der Aufgabe stünde, einen Web-Patch zu machen, würde ich wohl "UrlDownloadToFile" benutzen und mich dabei vom MSI-Setup-Quellcode aus dem MSI-SDK inspirieren lassen.

Zitat:
... und bin deswegen vll. auch etwas enttäuscht....

Das ist in Ordnung. Ging mir kürzlich auch so. Ich habe mich geärgert, mit einem anderen Programm meine Zeit zu vergeuden. Der Programmierer wollte Anregungen und Kritik, hat meine aber nicht zur Kenntnis genommen. - Nun ja, jetzt habe ich mir das betreffende Programm selbst geschrieben. :)