GET STARTED DEVELOPING FOR WINDOWS 8 WINDOWS PHONE AZURE WITH APP BUILDER
Windows Phone 8 SDK has some new requirements you might not be aware of.
Firstly, it requires Windows 8 64-bit version. I’ve already run into a few folks who had the 32-bit version of Windows 8 installed and were unable to run the phone tools. Make sure you have Windows 8 64-bit edition.
The emulator is pretty spectacular in WP8 SDK, but there are a few more requirements for you. The emulator runs in Hyper-V. Hyper-V is only available in Windows 8 Pro Edition. So to be able to run the WP8 SDK emulator you must have Windows 8 Professional 64 bit edition. Making sure you read that, it must be the – Professional --- edition.
The emulator’s Hyper-V requirement requires a processor that supports Second Level Address Translation ( SLAT ) enabled hardware. SLAT support was introduced to Hyper-V circa Windows Server 2008 as a mechanism to reduce overhead during address mapping for virtual machines. Since Hyper-V R2 on Windows 8 requires SLAT hardware, so does the WP8 SDK Emulator.
There are two methods to check if you have SLAT hardware. The best route is download the SLATStatusCheck tool from CodePlex ( http://slatstatuscheck.codeplex.com/ ). This tool runs is a WPF 4.5 app which very simply indicates if you have SLAT compatible hardware or not. The tool is open source if you want to see how to do the checks yourself in code.
The other route is CoreInfo.exe, a tool available from SysInternals ( http://technet.microsoft.com/en-us/sysinternals/cc835722.aspx ). When you run CoreInfo.exe with a “-v” parameter, you will have a “*” next to the “EPT Supports Intel extended page tables (SLAT)” entry. Note coreinfo must be run in an admin level command prompt.
CoreInfo can sometimes lie! If you’ve already got Hyper-V running, it may erroneously return a “false negative” on the slat capabilities. CoreInfo even tells you this in a screen entry (which I overlooked) – “Note: CoreInfo must be executed on a system without a hypervisor running for accurate results”. Note that SLATStatusCheck returns the correct results regardless of whether Hyper-V is running or not. The screen show below shows a false SLAT result off my Samsung Series 9 .
Hopefully this gives you an idea of some of the system requirements its going to take to get the WP8 SDK up and going, and help you avoid some frustrations. Can’t wait to see some of the great apps you folks are working on!
I think this requirement was a big E..
@tadanderson - yeah, I feel the same way about apple requiring a mac to do iphone dev, and by license not allowing hackathon scenarios. tough run.
@jhealy - I feel that mac pain too. Sitting here with a new MacBook Pro by my side. One thing the Mac has going for it though, is it is my best windows 8 environment. Although I got the ThinkPad Twist last week so I can test the touch features. Lugging 3 computers to work everyday blows!!!
It was good of you to put this post together. It will help some of those still struggling to get the Windows Phone 8 SDK emulator working.
@tadanderson - definitely seen some nice win8 on mbp but its all bootcamp/on the metal. one thing you'll miss is the touch experience. hard to really see what your app is going to do w touch without a nice touch device. find a buddy w slate or something and ask to borrow for debug. carpe developer.
This is all very well, but how do I know the machine that I am buying is going to be SLAT compatible when I cannot run the tools you mention?
@jim - I've either posted online to see if its supported on the hw vendors forum, or gone to best buy with the tools on a usb and run them. doesn't make the sales clerks happy. not a great solution, but its what I've got.
Hey, what's wrong with old good SystemInfo.exe?
Just in the bottom of its output:
Hyper-V Requirements: VM Monitor Mode Extensions: Yes
Virtualization Enabled In Firmware: Yes
Second Level Address Translation: Yes
Data Execution Prevention Available: Yes
@Pronichkin - never knew that existed. kudos for the tip. I'll mod the article and put that in, giving you credit.