WinRT for dummies

Description of the platform that is the backend of Metro applications on Windows 8.

For the Metro/Modern UI Interface, Microsoft retains in its own way the lessons given by Apple and wants to completely change its model of operating system. First applications to install will be uploaded from the Microsoft's online store (AppStore) and on the other hand their programming will be on a completely new platform, the WinRT (Windows Run Time) and a touch interface.

WinRT programming model, schema

The AppStore will allow Microsoft to collect a percentage of the software that is not a good news for developers. In addition there will be more difficult to broadcast his programs.

The following discussion will show that WindRT is the end of some freedom for developers, based on a model initiated by Apple, while providing new opportunities for those willing to enter the game.

WinRT replaces .NET and Silverlight

Silverlight is a framework that includes a subset of. NET, and is portable. WinRT is designed to work only on Windows 8. It is a platform designed from scratch, without any concern for compatibility which allows to make it faster. But it puts Windows 8 in competition with other OS without the benefit of applications, at least on tablets.

In fact the .NET API, or more precisely, a subset will always be present in WinRT. But that will not work the same way because of the asynchronous mode and sandbox.

WinRT is client-side only

Contrary to .NET that can be installed on a server, WinRT is a consumer of web services, but not a supplier. Microsoft will continue to develop conventional systems for servers.

Several types of interfaces are supported

Modern UI is a touch interface, but you can also use mouse and keyboard. It is to WinRT the burden of supporting these devices and connect them to the functions of applications.

HTML 5 becomes native on Modern UI

The browser is an application to Modern UI, so a HTML 5 application can run on this interface as on other OS too. However Microsoft tends to use the term "native HTML 5", which means that the use of HTML 5 in Modern UI is related to Windows 8, applications arel not portable. Files are distributed by Microsoft to help achieve these HTML applications for Modern UI, and as they are interfaced with the API of WinRT, although if designed in the HTML 5 standard they will not work on other systems

Applications are all asynchronous

This problem is not addressed in the classical environment because the local speed of execution does not make it crucial, but may appear in some cases: the user will never waith a task to be completed to start another. In the case of certain graphics programs, it is useful.

The asynchronous mode is not even optional as is with Ajax (simply activate a flag to go synchrone). It is automatic and depends on a delay, from a time set by the system to respond, the action becomes asynchronous and release the focus to user's hand. It's the end of blockages. Programmers need to get used to asynchronous programming and you can watch how F# works for a preview.

Applications run in sandbox

In other words each application has its own execution environment with its memory and can not interfere with others. If a program is blocked by a bug in the code, this does not affect the system or other programs.

Projections allow to use universal components

A projection in the language of Microsoft is the way the API is used. It can be a compiled language, interpreted, or both at once which is the case of C #. It is also an interface (binding) for a particular language. The system itself defines the appropriate projection, and this will provide a unique platform for the various types of applications: XAML applications with different languages, HTML and JavaScript applications.

One advantage of these projections is that components built in a language (eg C #, C++) can be used directly by other languages ​​(C#, C++, JavaScript and HTML 5). The creation of components has also been simplified.

See also