Windows Runtime , eller WinRT , er en programmeringsmodel fra Microsoft , der er grundlaget for udvikling af applikationer i Metro -stil på Windows 8 -operativsystemet [1] [2] . WinRT understøtter udvikling i C++ (typisk ved hjælp af sprogudvidelsen Component Extensions, C++/CX ), administrerede sprog C# og VB.NET , Rust [3] og JavaScript .
WinRT er i bund og grund en API baseret på COM -teknologi . På grund af sin COM-lignende natur gør WinRT det relativt nemt at få adgang til det fra forskellige programmeringssprog, som det gør i COM, men det er i bund og grund en uadministreret, indbygget API. API-definitioner gemmes i ".winmd"-filer, der er kodet i ECMA 335 -metadataformatet, der bruges af .NET med nogle ændringer. [4] Dette almindelige metadataformat kan reducere omkostningerne ved at kalde WinRT fra .NET - applikationer betydeligt sammenlignet med P/Invoke, samtidig med at det har en meget enklere syntaks . [5] Det nye C++/CX (Component Extensions) sprog, som låner nogle syntakselementer fra C++/CLI, giver dig mulighed for at oprette og bruge WinRT-komponenter med mindre kodning, der er synlig for programmøren sammenlignet med klassisk COM-programmering i C++, og på Samtidig pålægger tiden færre begrænsninger sammenlignet med C++/ CLI på typeblanding. Almindelig C++ (med COM-specifikke krav) kan også bruges til at programmere med WinRT-komponenter. [6] Dette er muligt med det nye Windows Runtime C++ Template Library (WRL), som i formål ligner det, ATL giver til COM. [7] MSDN - dokumentationen anbefaler dog at bruge C++/CX i stedet for WRL. [otte]