Windows Runtime

Windows Runtime
Basisdaten

Hauptentwickler Microsoft Corporation
Entwickler Microsoft Corporation
Aktuelle Version Siehe Windows und Microsoft Windows Phone
Betriebssystem Windows 8
Windows 10
Windows 11
Windows RT
Windows Phone ab 8.1
Windows 10 Mobile
Programmier­sprache C++
Kategorie Laufzeitumgebung
Lizenz EULA / proprietär
deutschsprachig ja
msdn.microsoft.com/windows/apps

Die Windows Runtime (Abkürzung: „WinRT“) ist die Laufzeitumgebung für Windows-App in Windows 8, Windows 10, Windows 11 und Windows RT. Seit Windows Phone 8.1 kann sie auch zur Programmierung von Windows Phone Apps eingesetzt werden, was es ermöglicht, Applikationen zu programmieren, die auf dem PC, Tablet und Smartphone funktionieren. Sie basiert auf einer verbesserten Version des Component Object Model[1] und ermöglicht es Softwareentwicklern, auf der Kombination aus HTML, CSS und JavaScript oder XAML und einer der Programmiersprachen Visual Basic .NET, C# oder C++, und bei erweiterter Funktionalität auch jeder beliebigen Technologie auf einem Server als Backend Apps, Programme zu erstellen, die nur über den Windows Store von Microsoft lizenziert und vertrieben werden können.[2]

Integration in Windows

[Bearbeiten | Quelltext bearbeiten]

Technisch gesehen stellt die Windows Runtime kein neues Subsystem von Windows dar, sondern ist eine alternative API innerhalb des Win32-Subsystems.[3][4]

WinRT und Win32 APIs in Windows 10/Windows 11/Windows 8 und Windows RT
"Modern UI" Application Desktop Application Web Application, Webservice
HTML5, CSS, SVG, JavaScript (mit WinJS) XAML, DirectX HTML5, CSS, SVG, JavaScript XAML XAML, Windows Forms, DirectX, GDI+ ASP.NET, ADO.NET
Chakra-Engine .NET (WinRT/CLI), C++/CX Runtime Chakra-Engine Silverlight .NET (CLR/CLI), C++ Runtime (CRT) Internet Information Server (IIS), Microsoft SQL Server (MSSQL)
WinRT API
Windows Metadata & Namespace User Interface
Tiles, Input, Controls, Accessibility, Data Binding, Printing, …
Media
Playback, Capture, Visual Effects, PlayTo, …
Devices
Geolocation, Portable APIs, Sensors, NFC, …
Communication and Data
Networking, Web, Contracts, Notifications, XML, Streams, Background Transfer, SMS, Local and Cloud-Storage, …
Windows RT Core
Applications Services/Application Model, Authentication, Memory Management, Globalisation, Threading and Timers, Cryptography, …
Win32 API
Component Object Model (COM) Graphics Device Interface+ (GDI+) Devices and Printing
Distributed Component Object Model (DCOM) DirectX File System
Windows Kernel
Win32-Subsystem, WOW64 (nur x64)

Integration in Windows Phone

[Bearbeiten | Quelltext bearbeiten]

Über den genauen Aufbau in Windows Phone ist derzeit nichts bekannt, da Microsoft die detaillierte Architektur des Betriebssystems nicht dokumentiert hat.

Für die Entwicklung auf Basis der Windows Runtime existieren verschiedene Projektionen (moderne Typisierungen) der Runtime:

  1. C++/CX (nativ ausgeführtes C++ mit Spracherweiterungen)
  2. C++/WinRT (nativ ausgeführtes Standard-C++ ohne Spracherweiterungen, mit einem Generator für die benötigten Header-Dateien)
  3. C#, Visual Basic .NET (mit der Common Language Runtime ausgeführt, stellt Wrapper-Klassen zur Verfügung)
  4. JavaScript, wobei die Windows Runtime über den WinJS-Namespace angesteuert wird.

Benutzeroberflächen werden deklarativ ausgezeichnet. Bei JavaScript basiert diese Auszeichnung auf HTML5, während die anderen Projektionen auf XAML setzen, welches von der Windows Runtime direkt ohne Einsatz von WPF oder Silverlight gerendert wird. Zusätzlich stehen Technologien wie DirectX zur Verfügung.

Die Windows Runtime stellt mit 1.600 Klassen lediglich eine Teilmenge der schon in .Net-Framework vorhandenen 12.000 Klassen zur Verfügung. Werden die nicht zur Verfügung stehenden Klassen aus dem Framework benötigt, muss die App zwischen einem Client und einem Server aufgeteilt werden, wobei die Geschäftslogik der App auf einem Windows Server ausgeführt wird. Ein Server mit dem Backend der App kann auch auf dem lokalen PC installiert und ausgeführt werden. Methodenaufrufe erfolgen vermehrt asynchron.[3] Für die Programmiersprache C# stehen hierfür neue Sprachelemente zur Verfügung,[5] für andere Projektionen integriert die Windows Runtime entsprechende Entwurfsmuster und Templates.[6]

Zudem wird durch die Windows Runtime ein neues Sicherheitskonzept eingeführt: Bisherige Windows-Anwendungen werden in der Regel mit den Rechten des jeweiligen Benutzers ausgeführt; man spricht in diesem Fall von Full-Trust. Hingegen erfolgt die Ausführung von Windows Runtime-Apps mit minimalen Zugriffsrechten, dem sogenannten Base-Trust. Dies soll durch logisch getrennte Container für jede Anwendung erreicht werden, der Zugriff auf sicherheitsrelevante Teile des Windows-API ist somit nur indirekt durch Stellvertreter (sog. Broker) möglich.[7][8]

Kompatibilität

[Bearbeiten | Quelltext bearbeiten]

Betriebssysteme

[Bearbeiten | Quelltext bearbeiten]

Die Windows Runtime wird derzeit von Windows ab Version 8 und Windows RT sowie Windows Phone ab Version 8.1 unterstützt. Microsoft sieht diese als integralen Bestandteil des Betriebssystems, der mit jedem Build neu erstellt wird. Während die meisten Anwendungen für Windows Vista und Windows 7 auch auf Windows 8 lauffähig sind, wird es die Windows Runtime laut Microsoft nicht für diese Betriebssysteme geben.[9]

  • Jeffrey Richter, Maarten van de Bospoort: Windows Runtime via C#, Microsoft Press 2013, ISBN 978-0-7356-7927-6

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. heise online: Build: Mit Windows Runtime kehrt Microsoft zu COM zurück. 15. September 2011, abgerufen am 10. Mai 2024.
  2. Mahir Kulalic: Windows 8: Metro-Apps nur über Windows Store. 20. September 2011, abgerufen am 10. Mai 2024.
  3. a b WinRT demystified - Miguel de Icaza. Abgerufen am 10. Mai 2024.
  4. Here's the one Microsoft Windows 8 slide that everyone wants to redo. Abgerufen am 10. Mai 2024 (englisch).
  5. Archiveddocs: Part 5: Create a blog reader (Windows Store apps using C#/VB and XAML) - Windows app development. 5. Januar 2016, abgerufen am 10. Mai 2024 (amerikanisches Englisch).
  6. ? Archiviert vom Original (nicht mehr online verfügbar) am 25. September 2023; abgerufen am 10. Mai 2024.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/devblogs.microsoft.com
  7. Dr. Holger Schwichtenberg: Windows 8 Apps benötigen neue Windows Runtime. In: heise.de. 15. September 2011, abgerufen am 3. Februar 2024.
  8. apex-production: Windows previous versions documentation. Abgerufen am 10. Mai 2024 (amerikanisches Englisch).
  9. saldana: Microsoft supported products on Q&A. Abgerufen am 10. Mai 2024 (amerikanisches Englisch).