Windows Live: Mini-Anwendungen für beliebige Aufgaben

12.08.2006 von Peter Monadjemi
Mit dem Windows Live Software Developer Kit lassen sich Gadgets fürs Web oder für die Windows Vista Sidebar entwickeln. Microsoft stellt nicht nur die Infrastruktur, sondern auch die Dienste zur Verfügung.

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 2006 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 (zum Beispiel %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:

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:

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. Außerdem 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 Gadgets 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.

Der Rest ist Java

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. (mec)

Dieser Beitrag basiert auf einem Artikel unserer Schwesterpublikation Computerworld-Schweiz.