The Windows Runtime library (WinRT) is the principal provider of system services for applications in Windows 8 that will be designed to incorporate the new "Metro" style. Officially it is not a replacement for any part of Windows we have come to know. But it is becoming abundantly clear that use of WinRT in the way it's intended, including with Microsoft's upcoming round of developers' tools, will move Web apps developers away from Silverlight, the company's existing redistributable runtime platform.
Beginning in the middle of Windows XP's product cycle, Microsoft distributed what it called foundations, which collectively form the .NET Framework. These foundations are code bases which provide the fundamentals of applications for .NET developers to build upon. Not long ago at all now, Windows Presentation Foundation replaced the old
WinGL GDI graphics library, enabling richer and more visually resplendent usage models; and Windows Communication Foundation creates a rich, service-oriented data sharing model for enterprise-class applications.
The differences .NET provided to Windows applications were stunning. Office 2007 belonged to a whole new world compared with its GDI-tethered predecessor. Silverlight is one way for a lightweight app deployed over the Web to tap into foundations like WPF and WCF, and still remain secure and reasonably incapable of being exploited.
When Windows Vista adopted the entire set of .NET foundation classes for the first time, the word from Microsoft was that Windows would never abandon the rich investment that developers over the many years had placed in GDI applications. That was the company's polite way of thanking GDI for its service, while at the same time, giving itself a back-door exit when folks noticed many of Windows' system drivers remained rooted in older libraries.
So when Microsoft engineers this week promised that Windows would never abandon the rich legacy of investments developers have made over the years in .NET, its foundation classes, and in Silverlight, folks were right to call out the familiar sound of a certain violin.
WinRT is not a subset of anything. Microsoft officials tell RWW that WinRT is the provider of all Windows system services to interpreted code. Networking, device access, file system access, security protocols, and graphical layout are among these services - the same categories you'd expect from .NET, but not the same functions.
This platform diagram for WinRT, which premiered today, does appear to shove the concept of Desktop applications more than figuratively to one side. Veteran developers will note that the Desktop development model prior to WinRT was not nearly as simplified as the bright blue column on the right suggests.
The examples of WinRT-supporting code we've seen thus far do not indicate specifically why apps that use WinRT must, by definition, have the Metro style (whose name, we were told today, may be temporary and subject to change). But we do know the following for certain:
1. Microsoft is promoting WinRT development as preferable to Silverlight development, mainly because the former does enable the Metro style.
2. There will not be a redistributable subset of WinRT, analogous to Silverlight's role with the .NET Framework.
3. Developers moving to the WinRT model as Microsoft suggests are making the choice to develop Windows apps as opposed to cross-platform apps, even though they may be using standards-based Web apps tools to do so.
4. There do not appear to be plans to deploy WinRT apps "in the cloud" the way .NET applications are deployed "in the cloud" via Windows Azure today. In fact, those I asked about this looked at me like I was from Mars for even asking. WinRT apps are designed to be client-side programs.
Windows engineers are advocating this week a migration path for Silverlight developers that enables them to continue using the same languages, including C++, C#, and Visual Basic, and to continue producing XAML, the XML-based code used to describe the layout of an app. But that migration path would transition developers away from Silverlight, just in a way these engineers say won't be noticed much. The result will be Metro apps that are distributed through the Windows 8 app store (which we hope won't be called "Store" for long), and that follow the company's newest design motif.
CORRECTION: When I originally penned this piece, I inadvertently called an old graphics library by the wrong name: I used the term "WinGL" (which is indeed a Windows library, but not the one I meant) to refer to GDI. It's my fault entirely, and I do apologize.