.NET Compact Framework

Microsofts Gerüst für die mobile Welt

31.05.2002
MÜNCHEN (hi) - Harte Zeiten stehen PDA-Herstellern wie Palm und anderen bevor. Nachdem mobile Endgeräte auf Basis von Microsofts Windows CE anfangs nur milde belächelt wurden, ist der schlafende Riese aus Redmond nun erwacht: Mit seinem .NET Compact Framework, Zertifizierungsprogrammen wie "Mobile the Market" will der Konzern ähnlich wie auf dem Desktop zum dominierenden Player aufsteigen.

In den nun fast über ein Jahrzehnt zurückliegenden Anfangsjahren von Windows formulierte Microsoft-Gründer Bill Gates seine Vision der "Information everywhere at your fingertips". Eine Idee, welche das Unternehmen mit der 1999 erstmals vorgestellten .NET-Initiative nun im großen Stil in der PC-Server-Umgebung umsetzen will. Darüber hinaus, so Michael Wehrs, Director Technology & Standards Mobility Solutions, plant der Konzern intelligente Endgeräte wie Smartphones und Pocket PCs ebenfalls in dieses Szenario einzubinden. Die Bibel, an der sich Entwickler und Hardwareproduzenten dabei orientieren sollen, ist das .NET Compact Framework. Es bildet das technologische Gerüst und spezifiziert, wie Applikationen für diese mobile Welt von morgen zu schreiben sind. Gleichzeitig definiert .NET Compact eine Roadmap in die Zukunft.

Managed Software Code

Aus Programmierersicht beschreibt das Framework laut Wehrs eine Umgebung für einen "Managed Software Code", der drei Arten der Applikationsentwicklung erlaubt: Browser-basierte Anwendungen; Programme, die in einer Runtime-Umgebung laufen und vor der Ausführung kompiliert werden sowie Applikationen, die im nativen Code speziell für eine Plattform geschrieben werden. Allerdings sieht Wehrs für die Browser-basierten Applikationen nur ein begrenztes Einsatzgebiet, da aufgrund der eingeschränkten Funktionalität und Performance hier keine mächtigen Anwendungen realisierbar seien.

Höhere Funktionalität und mehr Leistung verspricht sich der Microsoft-Manager dagegen von dem zweiten Ansatz, bei dem der Programm-Code auf das entsprechende Endgerät geladen und in einer Runtime-Umgebung kompiliert wird. Dieses erinnert sehr an das Java-Prinzip mit seiner Virtual Machine. Gewisse Parallelen gesteht denn auch Wehrs ein, betont aber, dass es Unterschiede gebe. Java habe nämlich seinen Anspruch, "einmal eine Applikation zu schreiben und sie dann überall laufen zu lassen," nicht eingelöst. Um gerätespezifische Vorteile wie Farbdisplays zu nutzen, benötigten Entwickler in Java, so argumentiert Wehrs, Erweiterungen (Libraries) für die Virtual Machine. Werde nun eine Applikation entwickelt, die diese Funktionen nutzt, so laufe sie nur in dieser Umgebung, aber nicht auf Geräten mit einer anderen Implementierung der Virtual Machine.

Diesen Designfehler will Microsoft vermeiden, indem man sich beim .NET Compact Framework an der PC-Architektur orientiert. Ziel ist es, für die mobilen Endgeräte ähnlich wie auf dem PC eine Plattform zu kreieren, bei der Entwickler Anwendungen programmieren, ohne sich um die hardwarespezifischen Details zu kümmern. Analog zum Windows-PC will der Softwarekonzern hierzu einen Satz von APIs (etwa Sound, Grafik etc.) als Subset von .NET definieren, auf den die Programmierer zugreifen. Microsoft stellt jedoch lediglich generische, gerätespezifische Libraries zur Verfügung. Deshalb sieht Wehrs in erster Linie die Hersteller in der Pflicht - wie etwa heute beim Treiber-Support für Windows.

Die eigentliche Applikation schreibt der Programmierer dann als eine Art Metafile für .NET Compact. Diese, erläutert der Manager, wird dann nach dem Herunterladen auf dem mobilen Endgerät nicht interpretiert, sondern kompiliert. Aufgabe der als Compiler fungierenden Runtime-Umgebung ist dabei nicht nur einen schnellen Code zu generieren, sondern in den Libraries die hardwarespezifischen Features herauszusuchen und in den Code einzubinden. Wehrs zufolge ist dieses Verfahren schneller als Java, auch wenn es nicht die Performance von nativem Code erreicht. Ferner habe es den Vorteil, dass etwa bei neuer Hardware nicht die Anwendung an sich geändert werden müsste, sondern nur eine Anpassung der entsprechenden Library erfoderlich sei. Ein Feature, das laut Wehrs besonders die Mobilfunk-Carrier schätzen würden, die sich jedes halbe Jahr mit einer neuen Handy-Generation konfrontiert sehen.

Damit dieses Zusammenspiel funktioniert, ist ein Applikationszertifkiat - ähnlich dem Windows-Logo - für mobile Endgeräte im Gespräch. Entsprechende Vorbereitungen für ein solches Zertifikat laufen derzeit unter dem Arbeitstitel "Mobile the Market". Will der Entwickler aus Performance-Gründen jedoch jedes Hardware-Feature ausreizen, so führt auch in der mobilen Welt kein Weg an der maschinennahen Programmierung vorbei.

Microsofts Zurückhaltung in Sachen hardwarespezifischer Programmteile zeigt sich bei .NET Compact noch in anderer Hinsicht. Zwar engagiert sich der Konzern in Gremien wie der GSM Association, der internationalen Allianz der großen Mobilfunkbetreiber, direkt will das Softwarehaus mit der Problematik der Übertragungsverfahren wenig zu tun haben.

Bandbreite spielt eine Rolle

Der Grund: "Wir setzen bei .NET Compact erst auf der Netzebene 3 des OSI-Modells an", erklärt Wehrs. Primär könnte damit Microsoft die Diskussion um die Mobilfunkstandards der Zukunft, also die Frage, ob sich UMTS oder WLANs in Form von Hotspots etablieren, egal sein. "Allerdings kommen wir in letzter Konsequenz auch nicht darum herum, uns mit diesem Thema zu beschäftigen, denn die zur Verfügung stehende Bandbreite hat Auswirkungen auf den Applikationsaufbau", schränkt der Manager ein. Ziel müsse es dabei sein, Anwendungen zu entwickeln, die ihren Funktionsumfang aufgrund der zur Verfügung stehenden Bandbreite automatisch ändern. Ein Beispiel hierfür könnte ein E-Mail-Client sein, der im Falle einer schmalbandigen, teuren Übertragung - etwa GPRS - nur die Absender sowie die Betreffzeilen der Mails herunterlädt. Ist dagegen ein schneller, günstiger Wireless-LAN-Zugang verfügbar, empfängt der gleiche Client automatisch die komplette elektronische Post.

Am Anwender vorbeientwickelt

Letztlich, so kritisert Wehrs, hat die Industrie diesbezüglich bislang an den Bedürfnissen des Massenmarktes vorbei entwickelt, indem sie die Transportfrage in den Vordergrund stellte: "Der Endbenutzer will aber kommunizieren und sich nicht mit der Frage nach dem adäquaten Netz herumärgern." Deshalb führt für ihn die logische Entwicklung zu einem Art "Plumbing Layer". Dieser ermöglicht es, bei mobilen Anwendungen eine Übertragung zu unterbrechen, falls die Verbindung gestört ist, ohne dass hiervon die laufende Applikation in Mitleidenschaft gezogen wird.