With Windows RT tablets and devices starting to finally make their first tentative steps into the world at TechEd 2012 this week, Microsoft has responded to mounting questions about the platform and has provided the first detailed information for developers.
Windows RT, of course, is the ARM-based version of Windows 8.
“ARM testing devices are currently available to a small partner program,” Microsoft corporate vice president Jason Zander writes in a comprehensive post to his blog. “However all developers can start preparing their Metro style apps for ARM PCs today.”
Zander’s post walks through the process that developers will undergo when developing Metro-style apps for Windows RT. (Remember that Microsoft is not allowing desktop application development on this new platform.) Put simply, it’s exactly the same as with x86/x64 software development: You use Visual Studio 2012 and the same project can be used to create an app in both versions, ARM (Windows RT) and x86/64 (Windows 8).
Note that Visual Studio, as a desktop application, will not run on ARM-based Windows RT devices. You will need to use Windows 8 to develop Metro-style apps, regardless of the target platform(s).
Zander describes how an app is created, debugged (in the case of Windows RT, remotely), tested, profiled, and packaged. That last bit is particularly important for apps that will target Windows RT, since you can specify x86, x64, or ARM, or some combination of those, when you create your app. To create an app for all three, you use what’s called a “Neutral,” package, which I assume means architecture neutral.
Zander also provides some behind-the-scenes information about how Microsoft targeted multiple processor architectures with Windows 8/RT, a process that was central to the original NT design but had fallen a bit by the wayside as Windows focused almost exclusively on Intel-type chipsets in recent years.
“We established some design principles for targeting multiple chip architectures,” he writes. “For one, we wanted to abstract most chip differences from developers, with the goal that you can write apps that run on multiple chips without needing to do anything special. Second, we wanted to limit the places within the product that deeply know about chip architectures, with the goal that porting our product to new chip architectures is narrowly defined and straightforward. This enables our team to add new features and scenarios efficiently in the future.”
Anyway, it’s a fascinating post, not just for developers but for anyone who gets geeky about OSes and software. Good stuff.