Einfachere Software-Aktualisierungen mit dem Updater Application Block

Wie die meisten Application Blocks bietet der UAB einen serienmäßigen Funktionsumfang und verschiedene Oberflächen zum Erstellen eigener Tools. Die Standardtools reichen für viele Aktualisierungsaufgaben vollkommen aus.

Die Konfiguration auf Serverebene ist in ein Manifest gekapselt, eine XML-Datei, die den Benutzer darüber informiert, wo er die aktualisierten Dateien zum Download finden kann. Der UAB wird mit einer Anwendung geliefert, die bei der Erstellung eines Manifests sowohl im Format einer Windows-Form als auch als einer Befehlszeile behilflich ist. Diese Anwendung erstellt eine XML-Datei, die von der Steuerungsanwendung des Clients verwendet wird.

Erstellung der Manifest-Datei

Die Konfiguration aus Benutzerperspektive ist in der Datei „app.config“ enthalten. Mehrere Abschnitte in der Datei müssen im Updater-Konfigurationsknoten hinzugefügt werden, u.a. der Ort der Downloader- und Validierungskomponente, die zu aktualisierenden Anwendungen, Abfragezeiten und der Speicherort der Protokolldatei.

Von der Konfiguration des UAB abgesehen, ist die asynchrone Abarbeitung des Blocks überraschend einfach. Soll die betreffende Anwendung aktualisiert werden, dann beginnt die Methode StartUpdater() den Vorgang. Soll der Vorgang beendet werden – nach einer bestimmten Zeit, beim Schließen oder aus welchem Grund auch immer –, wird StopUpdater() verwendet.

Wenn es um die Aktualisierung einer selbstaktualisierenden Anwendung über Nacht geht, z.B. von Konfigdateien, dann reicht ein Windowsdienst mit einer UAB-Implementierung völlig aus. Für betriebssystemähnliche Anwendungen wird ein gutes Beispiel mit dem Download mitgeliefert, das einen separaten Thread zur Steuerung der Anwendung verwendet.

Erweiterter Funktionsumfang

Kundenspezifische Controller, Downloader, Validierer und Postprozessoren erweitern den Funktionsumfang des UAB. Die Komplexität erhöht sich erheblich, wenn man vom serienmäßigen Funktionsumfang zu den kundenspezifischen Komponenten weitergeht.

Die Controller-Komponente verwendet den bereitgestellten Updatemanager für Anwendungen und zeigt die Methoden StartUpdater und StopUpdater auf. Da der Controller zur Pfadbestimmung eine Konfig-Datei liest, erfordert eine maßgeschneiderte Aktualisierungslösung nicht unbedingt einen maßgeschneiderten Controller. Der Anwendungs-Updatemanager API ist beim Integrieren des Controllers in der Anwendung an sich nützlich.

Kundenspezifische Downloader sind dann erforderlich, wenn der bei der ersten Installation bereitgestellte Übermittlungsmechanismus nicht funktioniert. Die Downloader-Komponente stammt von der mitgelieferten IDownloader-Schnittstelle, die synchrone und asynchrone Downloadfunktionen bereitstellt. FTP, SOAP, UNC-Pfadnamen und andere Protokolle für den Dateidownload können in neuen Downloadern codiert werden.

Wie Controller müssen auch Validierer höchstwahrscheinlich nicht angepasst werden. Die im Paket enthaltene RSA- bzw. Schlüsselvalidierung ist für die meisten Anwendungen hinreichend. Dennoch wird die IValidator-Schnittstelle für den Fall bereitgestellt, dass man eine anwendereigene Validierungsmethode einsetzen muss.

Letztendlich stellt der Postprozessor die meisten Möglichkeiten bereit. Dieses Steuerelement legt fest, was mit der heruntergeladenen Datei nach dem Download geschieht, und wird die Erstellung von selbstaktualisierenden Dateien ermöglichen. Die Komponenten des Postprozessors stammen von der IPostProcessor-Schnittstelle, benutzen diese jedoch hauptsächlich, um bei Bedarf auf das Manifest zuzugreifen. Der Postprozessor-Code ist nicht direkt mit dem Updater selbst verbunden, stattdessen konzentriert sich dieser auf die Ausführung des Aktualisierers, auf Einträge in die Registrierung oder auf die Protokollierung der Ergebnisse.

Ein weiteres leistungsfähiges Tool

Der UAB stellt hervorragende und einfach einzusetzende Standardfunktionen zur Verfügung und ist obendrein noch extrem anpassungsfähig. Für Windows-Form-Anwendungen ist dies der beste Weg, Aktualisierungen zu bewegen.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Einfachere Software-Aktualisierungen mit dem Updater Application Block

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *