Selbstaktualisierende Anwendung

8

Ich habe eine allgemeine Frage für die Gruppe. Ich bin im Begriff, ein großes Projekt für mein Team zu starten, das wir als Desktop-Anwendung machen werden (ich bin generell ein Web-Typ in meinem Bewerbungsausblick, aber ich bin offen für Veränderungen.)

Mein großes Anliegen ist es, dass die aktuellen Desktop-Anwendungen im Unternehmen bereits eine Nervensache sind, zu pflegen, oder genauer gesagt, zu verteilen, wenn eine Änderung vorgenommen werden muss. Daher möchte ich etwas entwickeln, das den Benutzer (unsere Mitarbeiter) dazu veranlasst hat, die Software zu aktualisieren, wenn sie auf ihrem Computer veraltet ist.

Diejenigen von euch, die das schon einmal gemacht haben, ich würde mich über jeden Tipp freuen, auf welche Fallstricke Sie achten sollten. Außerdem würde ich mich für alle Online-Ressourcen interessieren, die jeder hilfreich fand, um ähnliche Anforderungen zu erfüllen.

Danke.

EDIT: Mir ist klar, dass ich lutsche !! Ich habe vergessen, einige der wichtigsten Details zu erwähnen. Es wird eine Window-Anwendung sein, die mit dem .NET-Framework geschrieben wurde und auf Win XP und höher abzielt.

    
Peter Lange 04.11.2009, 00:43
quelle

5 Antworten

13

Wenn Sie es selbst implementieren möchten, ist es auch ziemlich einfach. Unsere Anwendung fragt einen Webdienst regelmäßig nach Informationen mit ungefähr der folgenden API ab:

%Vor%

Pros: Indem Sie die Logik in Ihre getVersion-Methode codieren, können Sie verschiedene Versionen an verschiedene Kunden weitergeben. Außerdem können Sie Beta-Versionen zuerst an eine begrenzte Anzahl von Kunden weitergeben.

Wenn Sie den Hash-Wert für alle heruntergeladenen Dateien prüfen, stellen Sie sicher, dass Ihre Anwendung die Dateien ordnungsgemäß herunterlädt. Dies kann auch verwendet werden, um beschädigte Anwendungsdateien zu reparieren. Wenn der Hash für die Version mit dem Hash für alle heruntergeladenen Dateien übereinstimmt, ist es an der Zeit, sie zu installieren.

Um zu installieren, lassen Sie Ihr Hauptprogramm eine Update-Anwendung starten und beenden Sie es. Das Update sollte alle geänderten Anwendungsdateien ersetzen. Das Aktualisierungsprogramm kann auch SQL-Änderungsskripts oder Registrierungsänderungen ausführen, die sich auf das Release beziehen.

Am Ende des Aktualisierungsprogramms starten Sie Ihre Hauptanwendung erneut und lassen Sie das Update-Programm bei Bedarf von der Hauptanwendung aktualisieren. Sie aktualisieren sich gegenseitig, sodass Sie Bugfixes sowohl an das Update-Programm als auch an die Hauptanwendung weitergeben können.

Ich empfehle auch, das Downgrade zu testen, bevor Sie eine neue Version an Kunden weitergeben, damit Sie automatisch zu einer alten stabilen Version wechseln können, wenn kritische Fehler gefunden werden.

    
Ztranger 04.11.2009, 01:11
quelle
5

Da Sie .NET und Windows verwenden, sollte ClickOnce für Sie gut funktionieren, wie Daniel sagte.

Eine andere Option ist die Schattenkopie . Im Grunde sagen Sie Ihren Assemblies, dass sie von einem anderen Ort als dem, auf dem sie installiert sind, ausgeführt werden. Dadurch kann Ihre Anwendung ihre eigenen Dateien aktualisieren, obwohl die Assemblys geladen sind. Ich habe das nicht vor mir selbst benutzt, aber ich habe es ein paar Mal gesehen.

ClickOnce wäre eine einfachere Lösung und ich würde mich dafür entscheiden, es sei denn, Sie haben ein Bedürfnis, das es nicht erfüllt. Mit ClickOnce können Sie die Anwendung auf einem Webserver oder in einer Netzwerkfreigabe veröffentlichen und Ihren Benutzern ermöglichen, ihre Kopie automatisch zu aktualisieren, wenn eine neue Version verfügbar ist. Aus dem Speicher wird automatisch geprüft und der Benutzer wird aufgefordert, die Anwendung zu starten.

    
Glenn 04.11.2009 02:05
quelle
3

Was wir machen ist; wenn die Anwendung startet oder jede Stunde oder so, machen wir eine GET-Anfrage an unseren Webserver.

Ссылка

Das Skript überprüft die Datenbank und vergleicht die Versionen. Wenn die Version anders ist, wird "UPGRADE" zurück an das Dienstprogramm gesendet, ansonsten "GOOD"

Wenn das Dienstprogramm "UPGRADE" empfängt, sendet es die Benutzer an eine vorgegebene URL, um die neueste Version des Dienstprogramms herunterzuladen.

Dies funktioniert gut mit kleineren Dienstprogrammen (& lt; 20 MB).

Vorschläge

  • Wenn es keine Internetverbindung gibt, um die Versionen zu überprüfen, machen Sie sich nicht die Mühe, ihnen nur eine kurze Zeit zu erzählen und warten Sie, bis eine verfügbar ist. Wenn + 25 Timeouts dann den Benutzer informieren.
  • KISS, Sie brauchen die Upgrade-URL nicht in der Antwort, senden Sie sie einfach an eine vordefinierte URL.
Steven smethurst 04.11.2009 01:16
quelle
2

Sie haben nicht angegeben, welche Sprache / Plattform / welches Framework Sie verwenden, aber ich würde empfehlen, eine zu verwenden, in der diese Funktionalität integriert ist.

Microsoft hat ClickOnce Bereitstellungen, und ich kenne Adobe Air macht etwas ähnliches . Hier ist eine Frage, die sich auf die Funktion zur automatischen Aktualisierung in Java bezieht.

    
Daniel Schaffer 04.11.2009 00:46
quelle
2

Sie haben das Zielbetriebssystem nicht angegeben, aber unter OS X ist Sparkle .

    
GameFreak 04.11.2009 00:50
quelle

Tags und Links