31.07.2006, 08:58 Uhr

Mini-Anwendungen für beliebige Aufgaben

Mit dem Windows Live Software Developer Kit lassen sich Gadgets fürs Web oder für die Windows Vista Sidebar entwickeln.
Windows Live ist eine relativ neue Internet-Plattform, auf der Microsoft in den kommenden Monaten eine Vielzahl unterschiedlicher Dienste anbieten will. Damit die Plattform ein Erfolg wird, ist Microsoft nicht nur auf hohe Besucherzahlen, sondern auch auf die Mitwirkung möglichst vieler Entwickler angewiesen. Die klassische Formel, nach der eine neue Plattform sich dann erfolgreich behaupten kann, wenn es genügend attraktive Anwendungen gibt, soll bei Windows Live erneut zum Erfolg führen. Bei Windows Live stellt Microsoft nicht nur die komplette Infrastruktur, sondern auch die Dienste zur Verfügung. Genau wie Amazon, E-Bay, Google oder Salesforce.com APIs (Application Programming Interfaces) in Gestalt von Webservices anbieten, mit deren Hilfe Entwickler die Grundfunktionalität der Plattform für Erweiterungen benutzen können, plant auch Microsoft derartige APIs - etwa für die Windows Live Expo-Marktplatz-Plattform. Den Anfang macht das Windows Live SDK, mit dessen Hilfe sich so genannte Gadgets entwickeln lassen.

Funktionalität mit Gadgets

Ein Gadget - auch «Mashup» genannt - ist ein Baustein, der die Daten eines RSS-Feeds kapselt und diese um eine grafische Repräsentation erweitert, damit ihn ein Anwender auf seiner Windows Live-Startseite platzieren kann, um sich auf diese Weise sein persönliches Informationsportal einzurichten. Gadgets sind keine kompletten Anwendungen, sondern lediglich «Informationsfeeds» und stellen einen kleinen, oft interaktiven Bereich einer Seite dar. Mit ASP.NET oder der neuen Atlas-Technik haben Gadgets aber nichts zu tun. Gadgets werden mit Hilfe des im Juni freigegebenen Windows Live-SDKs entwickelt (Download unter http://msdn.microsoft.com/live). Das SDK besteht lediglich aus einer in Javascript entwickelten Client-Library (der API), die eine Reihe von Objekten zur Verfügung stellt, einer Dokumentation, sowie einem Satz einfacher Beispiele. Die Entwicklung eines Gadgets geschieht mit Visual Studio 2005, dem kostenlosen Visual Web Developer (VWD) oder einem simplen Texteditor. Unter http://microsoftgadgets.com/livesdk/docs/projtemplate.htm gibt es eine Vorlage in Gestalt der Datei Gadgets.zip, die lediglich in das zuständige Visual Studio-Vorlagenverzeichnis (z.B. %userprofile%igene Dateien\Visual Studio 2005\Templates\ProjectTemplates\Visual Web Developer\VisualBasic für VWD) kopiert werden muss.
Es gibt drei «Orte», an denen ein Gadget in Aktion treten kann: Auf der Windows-Live-Startseite, auf dem Windows Vista-Desktop im Rahmen der Sidebar, und, das dürfte am Anfang noch eine exotische Ausnahme sein, auf dem externen Display, von Microsoft Sideshow genannt, der nächsten Notebook-Generation. In der Gadget Gallery unter http://microsoftgadgets.com stehen bereits Hunderte von Live-Gadgets zur Verfügung. Die Auswahl reicht vom typischen Nachrichtenticker, über interaktive Karten, Wettermelder bis hin zu mehr oder weniger ausgefallenen Spielen. Der Phantasie der Entwickler sind praktisch keine Grenzen gesetzt. Erlaubt ist, was in Javascript und XHTML möglich ist.

Anatomie eines Gadgets

Ein Gadget-Projekt besteht am Anfang aus lediglich drei Dateien: Der XML-Datei im RSS 2.0-Format, die das Gadget beschreibt und unter anderem einen Verweis auf die Javascript-Datei enthält, der Javascript-Datei, in der die Funktionalität des Gadgets definiert wird und einer (optionalen) CSS-Datei, die am Anfang noch leer ist, und die später die Formatvorlagen für die optische Repräsentation des Gadget enthält. Das Windows Live Gadget FAQ gibt einen guten Überblick, der durch die kleinen Beispiele des SDKs ergänzt wird. Zwar können Gadgets lokal gehalten werden (in diesem Fall wird http://localhost/ als Server-Adresse angegeben), in der Regel werden die Dateien in ein beliebiges Webverzeichnis kopiert. Getestet werden können sie auf der Webseite http://www.live.com. Das Hochladen eines Gadgets geschieht auf der Windows Live-Seite über erweiterte Optionen und der Eingabe der kompletten URL der XML-Datei in die dafür vorgesehene Textbox («Fügen Sie ein Gadget per URL hinzu»). Ein Klick auf Abonnieren lädt den Feed. Nachdem der Anwender auf Gadget installieren geklickt hat, wird es Teil der Seite und kann per Drag&Drop hin- und hergeschoben werden. Gadgets laufen in einem IFrame, so dass sie auf diese Weise vom Rest der Seite isoliert werden.
Wie bei einer Webseite mit Javascript ist das Debuggen eines Gadgets nicht ganz so komfortabel, aber möglich. Dazu wird in Visual Studio oder VWD in der Javascript-Datei ein Haltepunkt gesetzt und der Debugger an jenen Internet-Explorer-Prozess gehängt, der die Windows Live-Seite mit dem Gadget anzeigt. Ausserdem muss im Internet Explorer das Script-Debugging aktiviert werden - eine Anleitung findet man unter http://microsoftgadgets.com/livesdk/docs/default.htm#Testingdebugging.

Welt für Gadgets

Entwickler lernen die neue Welt der Gadget-Programmierung am besten an einem typischen Hallo-Welt-Programm. Wie wäre es mit einem Gadget, das bei jedem Aufruf einen «Tipp» aus der Welt der .NET-Programmierung liefert? Der erste Schritt besteht aus dem Start von Visual Studio oder VWD und der Auswahl der bereits vorhandenen Projektvorlage (alternativ lässt sich aber auch das Hello-World-Gadget aus dem SDK anpassen). Das Ergebnis ist ein Projekt mit dem Namen Gadget1, das aus den Dateien Gadget1.js, Gadget1.xml und Gadget1.css, sowie einer (überflüssigen) HTML-Datei besteht, die die ersten Schritte erklärt. In der JS-Datei muss lediglich der Konstruktor erweitert werden, so dass dieser eine Funktion aufruft, die mit der Installation des Gadget ausgeführt werden soll. In diesem Fall wäre es die Funktion getTipp(), welche per Zufallszahl gesteuert einen String aus einem Array zurückgibt. Die Ausgabe geschieht, in dem der auszugebende Text der Eigenschaft InnerText der Ausgabefläche des Gadget zugewiesen wird. Über das DOM besteht die Möglichkeit, einen kompletten HTML-Inhalt aufzubauen, Grafiken einzubinden und Javascript hinzuzufügen, das als Reaktion auf die Auswahl einzelner HTML-Elemente ausgeführt wird.
In der XML-Datei (auch Manifest-Datei genannt) muss im «binding:type»-Tag lediglich auf die Javascript-Datei verwiesen werden und das Objekt (in diesem Fall Microsoft.Live.GadgetSDK.HelloWorldGadget) angegeben werden, dessen Methoden aufgerufen werden. Abgesehen von diesem stets gleich aufgebauten Grundgerüst, besteht der Rest des Gadgets aus purem Javascript. Auch wenn viele Gadgets lediglich Informationen liefern und diese gegebenenfalls optisch aufbereiten, ist ein Gadget keine Einbahnstrasse. Es kann Eingaben vom Anwender entgegennehmen und diese auch an den Server zurückschicken. Auch wenn manche Entwickler die Gadget-Entwicklung eher als Rückschritt empfinden werden, da Javascript als relativ typenlose Sprache nicht mit C# oder Visual Basic konkurrieren kann, keine .NET-Klassenbibliothek zur Verfügung steht und Testen von Gadgets ein wenig aufwändiger ist, werden sich viele .NET-Entwickler in Zukunft ausgiebig mit Javascript beschäftigen müssen, das damit endgültig zur Universalsprache des Webs wird.
Peter Monadjemi


Das könnte Sie auch interessieren