Developing Apps for Microsoft Surface, Windows 8, Windows RT and Windows Phone 8

POST UPDATE: I updated the details in this post to reflect the new public announcements regarding Windows Phone 8 on 6/20.

Microsoft just raised the bar in the tablet market. Unless you’ve been living under a rock for the past 24 hours, you know that Microsoft finally revealed their own tablet device last Monday evening, dubbed “Microsoft Surface”, built independently from its traditional OEMs. This new Microsoft Surface comes in two flavors, running either Windows 8 Pro or Windows RT. You can find all the known details on the new Microsoft Surface site here.

The Microsoft Surface devices are very new and there are still some hardware features we do not know about yet, but the operating systems powering Microsoft Surface are not new. The details about Windows 8 and Windows RT have been known for months, dating as far back as the Microsoft //Build conference last year in September 2011.

However, the differences between Windows 8 and Windows RT are still creating confusion, both for consumers and developers. Some of the common questions asked include:

  • Is Windows 8 compatible with my current Windows app?
  • Can I build Windows 8 Metro apps in .NET?
  • Are Windows 8 games built in C++ or XNA?
  • Can I build apps for both Windows 8 and Windows Phone?

This post seeks to answer the most common questions and clarify things primarily for developers, with a few consumer tidbits thrown in for form. I’m also addressing Windows Phone development here since many questions arise about the compatibility between the new platform.

What is Windows 8?

Windows 8 is Microsoft’s newest member of the Windows family and is therefore the successor to Windows 7. Nothing changes in the foundation there. Windows 8 has a Desktop and can run any kind of app just like Windows 7 or its predecessor. The new game changer is Metro in Windows 8, which is a separate application environment to run Metro-style apps (see below). Windows 8 is therefore known to have two sides: the traditional desktop side, and the new Metro side, also known as Windows 8 Metro. Windows RT only has the Metro side.

The table below provides a summary of each Windows & Windows Phone device type, its operating system, CPU architecture, what applications & games you can buy, install and run, and how you build those apps & games. I’ve also added a last row to clearly show where Microsoft is positioning these devices in the competitive marketplace.

Devices

Microsoft Surface (Pro)

Microsoft Surface (RT)

Windows Phone 7.5

(e.g. Nokia Lumia)

Windows Phone
8 / vNext

Operating System

Windows 8 Pro

Windows RT

Windows Phone 7.1

Windows Phone 8.0

CPU Architecture

Intel/AMD x32 & x64

ARM

ARM

ARM

Applications you can buy in the official Microsoft Windows App Store

Metro Apps

Metro Games

Metro Apps

Metro Games

Windows Phone Apps

Windows Phone Games

Windows Phone Apps

Windows Phone Games

Applications you can run

Metro Apps, .NET Apps, native apps and

anything that runs on Windows 7 today

Metro Apps

Windows Phone Apps

Windows Phone Games

Anything that runs on Windows Phone 7.5 has been confirmed to run on vNext

Side-load Applications

Desktop-only for consumers. Metro apps can be side-loaded in enterprise

No. Metro apps can be side-loaded in enterprise

No

No. Metro apps can be side-loaded in enterprise via corporate app hubs

Runs Microsoft Office

Yes

Yes

Yes, mobile version

Yes, mobile version

Plays Xbox LIVE Games

Yes

Yes

Yes

Yes

Developer Platform

WinRT, .NET, WPF, Silverlight, XNA, Java, Native, and everything else used to build apps for Windows 7 today

WinRT

 

.NET + Silverlight 4 for Windows Phone apps.

XNA for Windows Phone games

WinRT for Windows Phone apps.

Choice of XNA or  
Native D3D for Windows Phone games

Developer Languages

C#, VB, C/C++, Java, F#, Ruby, Python, JavaScript, PHP, Perl, Haskell and any other language you can use for Windows 7 dev

C#/VB + XAML for Metro Apps.

D3D & C++ for Metro Games

 

C#/VB + XAML for Silverlight apps.

C#/VB.NET + XNA for games

C#/VB + XAML for WP Metro Apps.

C#/VB + XNA or
C++ & D3D for Windows Phone games

Primary Competitors

Apple MacBook Air

X86/x64 Ultrabooks, Netbooks & Tablets

Apple iPad

Android Tablets

Blackberry Playbook

Kindle Fire

Apple iPhone

Android Smartphones

Blackberry devices

Same as WP 7.5

Comments / Notes

  • Windows Phone 8 now shares a common core with Windows 8. This means you can expect to write apps for one and easily port it to the other, with UI retooling of course. Developers targeting both should use C#/VB + XAML for apps, and C++/D3D for games.
  • The term “Metro Apps” denotes apps that can be purchased in the official Windows App Store and that are built on top of the WinRT runtime, using either C# + XAML, or WinJS + HTML5. Even though Windows Phone features a Metro user interface (and the original one at that), the term Metro Apps does NOT apply to Windows Phone 7.5 apps.
  • The term “Metro Games” denotes apps that can be purchased in the official Windows App Store and that are built on top of the WinRT runtime, using Direct3D (D3D) and C++. Windows RT & Windows 8 Metro games cannot be built in XNA.
  • XNA can still be used to create Windows Phone 7.5, 7.8 and 8.0 games, and sold in the marketplace. You will not need to keep Visual Studio 2010 since Visual Studio 2012 and the Windows Phone 8.0 SDK will still support new development in XNA.
  • WinRT is the new native Runtime for Windows RT and the Metro side of Windows 8. It completely replaces .NET and Win32. Let me make this clear: If you look under the covers of WinRT, there is no .NET and no Win32, all you’ll find is the Windows Kernel. Since the only dev platform supported by Windows RT is WinRT, that means you cannot use .NET to build apps for Windows RT (or for the Metro side of Windows 8). Read this post on Paul Thurrott’s Windows Supersite for a more in-depth explanation.
  • WinRT is not based on .NET but you can use a subset of .NET from WinRT. Microsoft provides a subset of managed types called the .NET APIs for Metro style apps which enables .NET Framework developers to create Metro style apps within a familiar programming framework. Note that porting some .NET apps to WinRT could be trivial while others could be hard, based on which namespaces & classes you use. Check this section of the Metro style development documentation for more details.
  • Side-loading implicates installing non-certified applications using external media, thus bypassing the official Microsoft Windows App Store, whether it originates from a CD/DVD, USB key or web download. Note that developers can always side-load their own apps in a developer-unlocked device.
  • Xbox LIVE games are always platform specific. Microsoft Surface and Windows Phone both feature Xbox LIVE enabled games but this does NOT mean it runs the same Xbox LIVE Arcade games as the Xbox 360.
  • 2D game development can also be done using the same platform as apps. For example, on Windows Phone, 2D games can be built in Silverlight and do not require XNA.
  • Confused about version numbers for Windows Phone? Read my blog post that demystifies it all here.
  • Windows 8 can also be installed on any PC running Windows 7 today, and will also come pre-loaded on future generations of OEM (Dell, HP, Lenovo, Toshiba, etc.) computers, laptops, notebooks, Ultrabooks, Netbooks and tablets. The first column applies to all these other Windows 8 computers as well.
  • Windows RT will also be available on third-party tablet devices offered by Microsoft’s OEM partners (Samsung, Toshiba, Lenovo, etc.) Windows RT cannot be installed manually by a consumer, it must be licensed and pre-loaded by the OEM manufacturing the tablet.

Conclusions

We live in exciting times. With the Surface, Microsoft has set a new standard for Windows tablets by designing its own hardware device, taking a page from the Apple playbook. OEMs will now have to kick it up a notch and design even better Windows devices to remain relevant. There is a huge opportunity for Windows developers to switch from .NET to WinRT and build Metro apps they can sell on the Windows App Store. At the same time, all current Windows developer skills are still relevant on the desktop side of Windows 8 where developers, knowledge workers and regular users will still be doing business in the enterprise and at home.

Windows Phone is also growing in popularity, with Windows Phone 8 just around the corner. Thanks to the common Metro UI between Windows Phone, Windows 8 Metro and Windows RT, every Microsoft Surface, Windows 8 computer and Windows RT tablet will be a live ad for Windows Phone. Just last week IDC reiterated it sees Windows Phone securing the no.2 spot in the smartphone world by 2016, and yesterday’s Microsoft Surface announcement proves Microsoft’s mobile strategy is resting on solid ground.

It’s a great time to be a Microsoft developer, and I can also assure you that Infragistics will be right there with you in the years to come to support developers on all the Windows platforms outlined above, from .NET to WinRT.

What do you think of the new Microsoft Surface? What apps will you be building? Leave your comments here or contact me on Twitter at @ActiveNick.


Comments  (15 )

Quora
on Sat, Sep 1 2012 6:24 AM

This would make things clearer, hopefully:

www.infragistics.com/.../developing-apps-for-microsoft-surface-windows-8-windows-rt-and-windows-phone.aspx I was really hoping for an answer by someone much more

ActiveNick's Big Bald Blog
on Wed, Oct 24 2012 2:30 PM

Windows Phone 8 is just around the corner. There are now over 110,000 apps in the Windows Phone Store

ActiveNick's Big Bald Blog
on Fri, Oct 26 2012 5:50 PM

There is a new version of Windows available today: Windows 8 . Every time you hear about Windows 8, you

ActiveNick's Big Bald Blog
on Mon, Oct 29 2012 4:12 PM

I’ve been an avid iPad user since May 2010. I upgraded to an iPad 3, err… sorry, the “New iPad” in June

ActiveNick's Big Bald Blog
on Tue, Oct 30 2012 9:39 PM

I’ve been an avid iPad user for 30 months and counting. I still love and use my Pad a lot, but I also

ActiveNick's Big Bald Blog
on Wed, Oct 31 2012 10:41 PM

I’ve been an avid iPad user for 30 months and counting. I still love and use my Pad a lot, but I also

ActiveNick's Big Bald Blog
on Thu, Nov 1 2012 5:24 PM

I’ve been an avid iPad user for 30 months and counting. I still love and use my Pad a lot, but I also

ActiveNick's Big Bald Blog
on Fri, Nov 2 2012 5:17 PM

I’ve been an avid iPad user for 30 months and counting. I still love and use my Pad a lot, but I also

ActiveNick's Big Bald Blog
on Sat, Nov 3 2012 9:14 PM

I’ve been an avid iPad user for 30 months and counting. I still love and use my Pad a lot, but I also

ActiveNick's Big Bald Blog
on Mon, Nov 5 2012 4:09 PM

I’ve been an avid iPad user for 30 months and counting. I still love and use my Pad a lot, but I also

ActiveNick's Big Bald Blog
on Wed, Nov 7 2012 5:21 PM

I’ve been an avid iPad user for 30 months and counting. I still love and use my Pad a lot, but I also

ActiveNick's Big Bald Blog
on Fri, Nov 9 2012 5:55 PM

I’ve been an avid iPad user for 30 months and counting. I still love and use my Pad a lot, but I also

ActiveNick's Big Bald Blog
on Tue, Nov 13 2012 5:18 PM

I’ve been an avid iPad user for 30 months and counting. I still love and use my Pad a lot, but I also

ActiveNick's Big Bald Blog
on Fri, Nov 16 2012 1:07 PM

I’ve been an avid iPad user for 30 months and counting. I still love and use my Pad a lot, but I also

ActiveNick's Big Bald Blog
on Thu, Nov 29 2012 5:40 PM

I’ve been an avid iPad user for 30 months and counting. I still love and use my Pad a lot, but I also

Add a Comment

Please Login or Register to add a comment.