Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WinRT and .NET clarification(s)

I would like to clarify some points about WinRT and where .NET fits in relation to it. The following is a set of statements I believe to be true... correct me where I am wrong:

  1. WinRT is a seperate COM exposed native Object-Orientated API written in C++ that IS NOT itself built on top of the old C based Win32: it is totally seperate.
  2. WinRT at least now can ONLY be used for the Metro part of Windows 8 and that Win32 CANNOT be used for Metro apps. An application in Win8 will either be desktop or Metro and an application cannot draw on both APIs. It's one or the other.
  3. Traditional desktop/server .NET (built on Win32) will continue on as per normal, but there is a NEW cut down .NET Framework (like the Compact Framework/client profile or Silverlight) built on WinRT for use in the Metro world. This is how C# and VB.NET will run in the WinRT world: it is NOT the same .NET framework installed for the desktop/server. UI is done using a XAML derivative.
  4. Metro apps can also be built using native C++, again using XAML for UI. What about C++/CLI? What about other less popular .NET languages out there?
  5. Metro apps can also be built using HTML5/CSS3/Javascript. I take it the Metro system has a new rendering and execution engine built to run these apps: my understanding is that these cannot be executed in a browser like IE so they are apps, not web pages.
  6. The Metro IE will not run plugins, so there is no Silverlight in the Metro world.
  7. ARM based devices will ONLY run Win8 in Metro mode.
like image 443
MrLane Avatar asked Mar 01 '12 02:03

MrLane


People also ask

What is WinRT used for?

C++/WinRT is an entirely standard modern C++17 language projection for Windows Runtime (WinRT) APIs, implemented as a header-file-based library, and designed to provide you with first-class access to the modern Windows API.

Is WinRT based on Win32?

Technology. WinRT is implemented in the programming language C++ and is object-oriented by design. Its underlying technology, the Windows API (Win32 API), is written mostly in the language C.

What is C# WinRT?

C#/WinRT is a NuGet-packaged toolkit that provides Windows Runtime (WinRT) projection support for the C# language. A projection assembly is an interop assembly, which enables programming WinRT APIs in a natural and familiar way for the target language.

What is Microsoft .NET desktop runtime?

The .NET Desktop Runtime enables you to run existing Windows desktop applications. This release includes the .NET Runtime; you don't need to install it separately.


1 Answers

  1. Almost right, internally WinRT still does use some Win32 calls but some API calls are new and written from ground up.

  2. WinRT can be only used in Metro but subset of Win32 calls are still available in metro.

  3. True. The XAML part now uses the WinRT implementation.

  4. C++/CLI is not supported on Metro. For now it is just C#/VB.Net on Metro.

  5. True.

  6. Correct.

  7. No, although ARM will have a desktop it is limited to MS Office, IE and Explorer.

EDIT

Updating based on the comments below.

  1. A subset of WinRT APIs that can be used from the desktop.

  2. The rendering and the Javscript engine are the same as the one used in IE 10. But the app itself won't be separately runnable within Internet Explorer

like image 171
sarvesh Avatar answered Oct 23 '22 03:10

sarvesh