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.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Chips bescheren Samsung deutlichen Gewinnzuwachs

Das operative Ergebnis wächst um fast 6 Billionen Won auf 6,64 Billionen Won. Die Gewinne…

3 Tagen ago

Chrome: Google verschiebt das Aus für Drittanbietercookies

Ab Werk blockiert Chrome Cookies von Dritten nun frühestens ab Anfang 2025. Unter anderem gibt…

3 Tagen ago

BAUMLINK: Wir sind Partner und Aussteller bei der Frankfurt Tech Show 2024

Die Vorfreude steigt, denn BAUMLINK wird als Partner und Aussteller bei der Tech Show 2024…

3 Tagen ago

Business GPT: Generative KI für den Unternehmenseinsatz

Nutzung einer unternehmenseigenen GPT-Umgebung für sicheren und datenschutzkonformen Zugriff.

3 Tagen ago

Alphabet übertrifft die Erwartungen im ersten Quartal

Der Umsatz steigt um 15 Prozent, der Nettogewinn um 57 Prozent. Im nachbörslichen Handel kassiert…

7 Tagen ago

Microsoft steigert Umsatz und Gewinn im dritten Fiskalquartal

Aus 61,9 Milliarden Dollar generiert das Unternehmen einen Nettoprofit von 21,9 Milliarden Dollar. Das größte…

7 Tagen ago