Da quello che ho visto, WinRT è in realtà un "non gestito" "livello software basato su oggetti COM nativi, quindi NON aspetterei di vedere un grande impatto sulle prestazioni durante il richiamo delle API. In effetti, è molto probabile che funzionino meglio delle app .NET sul CLR, poiché sono probabilmente "più vicini al metal" rispetto alle app .NET.
NotaanchechepuoiimplementareinvocareAPIWinRTdaapp.NET(o,comevoglionoilbuzzperraccogliereeattrarrewebhipsters,inlucidoHTML5+JavaScript),masonoliberidiimplementarelatuaapplicazioneinteramenteinC++sepreferiscieseipreoccupatoperilivelliaggiuntivi.
WinRTisessentiallyaCOM-basedAPI,althoughrelyingonanenhancedCOM.[...]WinRTallowsrelativelyeasyinterfacingfrommultiplelanguages,[...]it'sessentiallyanunmanaged,nativeAPI.Thiscommon[.NET-basedECMA335]metadataformatallowsforsignificantlylessoverheadwheninvokingWinRTfrom.NETapplicationscomparedtoaP/Invoke,andmuchsimplersyntax.
-FromWikipedia'sWinRT (emphasis mine)
Inoltre, considera la lingua per le estensioni dei componenti C ++ / CX :
The new C++/CX (Component Extensions) language,
which borrows some C++/CLI syntax, allows the authoring and consumption of
WinRT components with less glue visible to the programmer compared to
classic COM programming in C++ [...]. Regular C++ [...]
can also be used to program with WinRT components, with [a] library called
Windows Runtime C++ Template Library (WRL), which is
similar in purpose to what Active Template Library provides for COM.
The MSDN Library, however, recommends using C++/CX instead of WRL.
- From Wikipedia's WinRT (emphasis mine)
Il Guardian fornisce anche un interessante articolo sul apparente rebuff di .NET in favore di C ++ per sviluppare app basate su WinRT .
Lo stesso articolo indica una grande spiegazione di WinRT a confronto a Silverlight e WPF su StackOverflow.com .
Per quanto riguarda gli altri tuoi punti, WinRT di per sé non ti limita o ti impedisce di interfacciarti a un database o AD. Semplicemente non lo rende facile, e la domanda è più come vuoi farlo.