Windows 8: WinRT setzt auf ein asynchrones API

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.

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.