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

Internet-Tempo in Deutschland: Viel Luft nach oben

Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.

19 Stunden ago

Erste Entwickler-Preview von Android 16 verfügbar

Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…

19 Stunden ago

Kaspersky warnt vor Cyberangriff auf PyPI-Lieferkette

Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.

2 Tagen ago

Digitale Produkte „cyberfit“ machen

Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.

2 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…

2 Tagen ago

Apple schließt Zero-Day-Lücken in iOS, iPadOS und macOS

Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…

2 Tagen ago