Zum Hauptinhalt Zur Navigation

Windows 8: WinRT setzt auf ein asynchrones API

Build Windows
Die Windows Runtime (WinRT) ist der zentrale Baustein des neuen Metro-UI von Windows 8. Damit das Interface dabei schnell und flüssig (fast and fluid) läuft, müssen sich Entwickler bei WinRT auf ein weitgehend asynchrones API einstellen.
/ Jens Ihlenfeld
22 Kommentare News folgen (öffnet im neuen Fenster)
Neues Metro-UI von Windows 8 (Bild: Microsoft)
Neues Metro-UI von Windows 8 Bild: Microsoft

WinRT(öffnet im neuen Fenster) ist eine solide, effiziente Basis, um Metro-Apps zu bauen, so Martyn Lovell, der als Development Manager für die Windows Runtime verantwortlich ist. Entwickler sollen dabei die freie Wahl haben, in welcher Sprache sie ihre Applikationen schreiben, müssen aber weitgehend mit asynchronen APIs vorlieb nehmen. Jedes API, das voraussichtlich länger als 50 Millisekunden läuft, ist asynchron.

Windows 8 User Experience (Build 2011)
Windows 8 User Experience (Build 2011) (18:36)

Microsoft hat sich bewusst entschieden, auf synchrone APIs zu verzichten, da Entwickler sich zu oft für ein einfaches synchrones API entscheiden, wenn sie die Wahl haben. So will Microsoft sicherstellen, dass das User Interface nicht blockiert, wie es bei synchronen API-Aufrufen der Fall sein kann, und dass das User Interface jederzeit schnell und flüssig bleibt. Fast in jedem Vortrag auf der Build zum Metro fielen die Schlüsselworte "fast and fluid" .

Metro-Apps können in Javascript, C++, C# und Visualbasic geschrieben werden, wobei die Sprachen über Projektionen genannte Bindings unterstützt werden. Dabei realisiert Microsoft das asynchrone API in C# und Visualbasic mit dem Schlüsselwort "await" , während Javascript mit Promises und "then" arbeitet. C++ verwendet den Operator "IAsyncOperationᐳTResultᐸ" .

Aus dem C++-, C#- oder Visualbasic-Code werden automatisch Metadaten erzeugt und in .winmd-Dateien abgelegt, ein Format, das dem von CLI-Metadaten entspricht.

Zudem hat Microsoft WinRT mit Unterstützung für Versionierung versehen, was sicherstellen soll, dass Applikationen für Windows 8 auch auf künftigen Windows-Versionen laufen, wenn die APIs dort erweitert werden. Sämtliche Runtime-Objekte leben im gemeinsamen Namensraum Windows.*. Entwickler können den Katalog an Objekten in C++ und C# erweitern, wobei sämtliche Objekte von Javascript aus erreichbar sind.

Nutzerdaten oder Systemressourcen werden besonders geschützt, so dass die Apps die Privatsphäre der Nutzer oder die Stabilität des Systems nicht gefährden können.


Relevante Themen