Developing For Metro – WinRT: The Metro API

So far we’ve talked about Metro from the end-user perspective where indeed it is a style and a UI. But Metro isn’t a way to display existing Windows application, it’s what results from a new development model for writing applications. Metro, as the user sees it, is the result of the APIs and design guidelines developers follow in creating Metro applications.

With Windows 8 Microsoft will be introducing a new API: Windows RunTime (WinRT). Over the years much has been said about replacing Microsoft’s long-lived Win32 API, with some success. The .Net Framework supersedes Win32 to some extent, but at the end of the day Win32 is still significantly used in one way or another by many developers. WinRT is the API that will replace Win32 for application developers, and is the API developers will need to use to develop for Metro.

WinRT in a nutshell is a combination of the elements needed to make Metro work, along with subsets of features from Win32, COM, .Net, and HTML5/CSS3. As with pure .Net applications, WinRT applications are meant to be architecture agnostic, and ideally Microsoft would like developers writing applications in runtime or interpreted languages such as C#, VB, HTML5/CSS/JavaScript, and even Silverlight. C and C++ will be able to access Metro too, although there’s still some ambiguity about under which conditions those will be architecture agnostic. In any case WinRT – and thereby Metro – will be accessible from virtually every language Microsoft supports today in their Visual Studio IDE. And regardless of the underlying language, all Metro applications will behave like first-class applications.

With all of this talk about WinRT, Microsoft went through great lengths to reiterate that developers will continue to have access to older APIs for new applications and that Windows 8 will run everything that Windows 7 can run. This is both because traditional/desktop styled applications will not be going away any time soon, and because WinRT as it stands is for user-facing applications, not device drivers, services, or other backend code. In fact desktop applications will be supported indefinitely (look at how long support for 16bit Windows applications has continued to last), but Microsoft clearly wants developers developing for Metro whenever possible, and not for the desktop. For a great many applications this makes sense, but I’m not sure anyone really understands what this means for specialty applications like 3dsMax, Adobe Photoshop, and other workhorses that not only have large legacy codebases, but whose usage model doesn’t easily flow with Metro.

 To entice application developers to use WinRT and Metro, Microsoft will be using a carrot and a stick. The carrot will be the Windows Store, the stick is that non-Metro APIs will not be available for ARM. ARM is Metro-only from day one, and the Windows Store will be the enforcer (more on that later). So if developers wish to target both ARM and x86/x64 users, they will need to develop Metro applications.

Developers working with Metro will be using Microsoft Visual Studio 2011, which like Windows 8 is in development and will be the first version of Visual Studio to support Metro. We won’t spend too much time on Visual Studio, but it will provide development facilities for all of the languages Metro supports, including HTML/CSS/JavaScript. For UI programming Microsoft’s Expression Blend 5 will play a big part, as XAML will be the UI markup language for most of the languages excluding HTML5/CSS.

The hard sell for Microsoft will begin tomorrow when the developers arrive. It’s clear that Microsoft has attempted to structure WinRT to be familiar to existing Windows programmers, but developers are just as sheepish (if not more) than end-users when it comes to change. It will also be the beginning of the process where the development community figures out where desktop applications fit in amongst the new Metro order. Even if Microsoft can sell developers on Metro from day one, there’s still a massive army of legacy machines – everything currently running Windows – that need to be factored in.

Mobile Experience, IE10, Live Cloud, Samsung Developer Preview PC The Windows Store
Comments Locked

235 Comments

View All Comments

  • dagamer34 - Tuesday, September 13, 2011 - link

    If you don't like the Metro UI, no one is forcing you to use it.
  • jeremyshaw - Tuesday, September 13, 2011 - link

    yeah, seriously. MS isn't making Metro UI for desktops, just tablets and users who want it...
  • futurepastnow - Tuesday, September 13, 2011 - link

    Yes, they are. The Explorer shell is gone and Metro has replaced it completely. In these early builds, at least, Metro cannot be turned off and you cannot boot to the desktop.
  • dragonsqrrl - Tuesday, September 13, 2011 - link

    Yes, in these early builds that may be the case, but Microsoft has stated publicly on multiple occasions that the metro UI will be optional on desktops. You can use it in combo with the traditional explorer interface (similar to the demo), or disable it entirely.
  • UMADBRO - Tuesday, September 13, 2011 - link

    He just wants to go around crying because he might have to learn something new. I think a complete redesign like this is needed. Windows was getting rather boring, even with some of the new stuff added in 7. Give it a chance at least. Im sure for all the old fogeys that have an aneurysm at the thought of anything changing, there will be some classic options. And also on note, ITS A PRE-BETA DEVELOPER RELEASE. NOTHING IS FINAL YET! SO CALM THE F&*$ DOWN!
  • loll123 - Wednesday, September 14, 2011 - link

    And you seriously think that Windows is made primarily for people like you? The corporate customers (the ones that are Microsoft's bread and butter) who resisted upgrading from Windows XP up until this day aren't going to accept change like this just because Microsoft says it's the way forward. They are going to have backtrack and redesign just like they did with Vista -> 7, unless the board of directors decide to clean up this mess and rein the design in before final release (as seems to be business as usual at Microsoft).
  • BioTurboNick - Thursday, September 15, 2011 - link

    You seem to be suggesting that 7 was a backtrack on Vista. That is far from the case.
  • mlambert890 - Thursday, September 15, 2011 - link

    +1... in addition, corporations are refreshing more and more slowly and are more and more out of sync with consumers. This is to the extreme detriment of IT as consumerization is a real trend. IT is reaching an "adapt or die" point in time and it is almost certain the latter will happen. Eventually businesses will simply allow the 'bring your own' model and contract services to provide capability.

    These are well known and understood industry trends and are real to anyone who *actually* works in the industry. The only folks who don't 'get it' are IT cube workers in denial or kids posting on blogs who think they understand the industry by reading comment threads.

    This is actually a big problem for Microsoft because consumers are becoming a bigger force, but they are failing against Apple to capture enthusiasm with new consumers because legacy IT people, and out dated Windows users, want to keep the product stagnating.

    Lost interest on the consumer side coupled with absolute inertia on the IT side is a killer for MSFT. They have to try to do something. Maybe Metro isnt it, but the nay-sayers on this thread have zero clue and are irrelevant.

    The massive success of Apple has been absolute proof that consumers want a commoditized experience and the increasing presence of macbooks and ipads (guerilla style) in even *large* enterprises is proof that business is more than happy to pass the end user technology burden *onto* users.

    If someone is willing to BUY and SUPPORT their OWN MacBook and ipad, why NOT let them if you are the CFO? All you need to do is ensure that your corporate apps are all presented via browser and/or managed service and enterprises are fast moving to make that happen.

    It is do or die time for MSFT. if they listen to the eternal bitching and moaning of forum malcontents, they'll end up dying.
  • loll123 - Friday, September 16, 2011 - link

    People like you say all this while Microsoft are enjoying record sales with Windows 7 (and record profits as a company as a result), and while no one can show any numbers that tablets other than those made by Apple are actually selling. In the end, although it might take the intervention of shareholders or the BoD, I think Microsoft will know better than to throw out their existing (and extremely profitable) business for what is increasingly looking like a new IT bubble.
  • loll123 - Friday, September 16, 2011 - link

    I understand your point, but a backtrack is exactly what it was. Windows 7 took all the good stuff from Vista like UAC, aggressive disk caching and the re-designed audio kernel and put them in a system with more mature drivers, important tweaks and with a smoothness and a UI that users actually liked rather than reviled. They responded to the criticisms of Vista and the result was an excellent operating system. It's no coincidence that Windows Vista failed miserably whereas Windows 7 was a huge success, but the difference was definitely in the finer details and in the user experience. Eventually Microsoft are going to have to bow to customer pressures in the case of Windows 8 as well.

Log in

Don't have an account? Sign up now