How can we improve the Windows platform?

Ability to run and use an emulator image in as a remote VM

A developer should be able to run an emulator instance outside of the developer's environment, and be able to connect/deploy/debug into that remote VM.

Potential scenarios:
- Developer doesn't have SLAT on their machine and wants to run the VM on a SLAT capable machine/server
- Developer is running their dev environment in a virtual environment (e.g., local Hyper-V, remote Hyper-V, Parallels) and wants to run the emulator in another child VM on the same physical host they are running on (since she can't run a VM inside of a VM)
- The ability to run a dev environment fully remote

240 votes
Vote
Sign in
Check!
(thinking…)
Reset
or sign in with
  • facebook
  • google
    Password icon
    I agree to the terms of service
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    Cliff SimpkinsAdminCliff Simpkins (Sr Product Manager, Windows Phone Developer) shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →
    Gerhard StephanGerhard Stephan shared a merged idea: Enable the Emulator to run in VM's (Virtual Machines)  ·   · 

    19 comments

    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      Submitting...
      • Martin RaMartin Ra commented  ·   ·  Flag as inappropriate

        There is an article by Nokia on how to use the Emulator inside a VM. So it IS already possible somehow.

      • RogerRoger commented  ·   ·  Flag as inappropriate

        Just when I thought I had a way of maintaining a clean environment using a VM, I find I can't use it for WP8 dev. Please MS, update this.

      • AnonymousAnonymous commented  ·   ·  Flag as inappropriate

        Alternatively, if we could migrate the emulator to the Hypervisor level and run it parallel to the development VM. Visual Studio would need to support remote Emulators then but I think this would be a better solution

      • Hermit DaveHermit Dave commented  ·   ·  Flag as inappropriate

        Agreed.. I wish I didn't need hyper-v.. don't see how the WP8 emulator does anything better than WP7 emulator.. just give us good old VM without hyper-v and SLAT requirements

      • BrandonBrandon commented  ·   ·  Flag as inappropriate

        The fact that I can use the Windows 8 emulator w/o needing Hyper V, but require the whole Hyper V stack to do PHONE development is just mind boggling. I realize those decisions were probably all made in the Sinofsky era but come on.

        Get us back to an emulator that doesn't require an entire virtualization stack (like wp7 did and iOs and Android do) so that we have more flexibility in our development options. Being able to develop w/in a VM, or on a machine that doesn't have a Pro install of Windows 8. It only expands your developer audience when you stop requiring a Professional OS of people that just want to test the waters of your platform

      • StevieBallzStevieBallz commented  ·   ·  Flag as inappropriate

        I actually think that Google's play store submission policy is lazy at best but to each their own. Unlocking your own device for free is now available, so that part shouldn't be too much of an issue. As for development on Windows 7 you might want to take a look here: http://forum.xda-developers.com/showthread.php?t=2422751 You still won't have access to the Emulator as that requires Hyper-V but it should work for developing on an actual device.

      • Kyle ReddochKyle Reddoch commented  ·   ·  Flag as inappropriate

        3 votes for me too! This will be very helpful to me and others that I help when I run workshops.

      • Zack WilliamsonZack Williamson commented  ·   ·  Flag as inappropriate

        I'll take it a step further - pre-configured Azure VM image for the WP8 emulator. Having a test environment that's instantly deployable and available everywhere, as long as you have an internet connection. THAT would be all kinds of awesome.

      • Lance McCarthyLance McCarthy commented  ·   ·  Flag as inappropriate

        3 votes from me. I frequently hold hackathons and events where developer just don't have the machines necessary for WP8Dev. This idea would even be more useful to help present apps at large shows, events, media, etc if anyone could just deploy to a single machine on stage (which is connected to the projection system)

      • Cliff SimpkinsAdminCliff Simpkins (Sr Product Manager, Windows Phone Developer) commented  ·   ·  Flag as inappropriate

        Hi guys,

        I appreciate the frustration here, and we're working to improve this on several fronts. In the meantime, please feel free to distribute your votes/concern on a few actionable items:

        - WP8 development on Windows 7 (http://wpdev.uservoice.com/suggestions/3551757) - This one is very unlikely to see change - the work effort would be huge. When we adopted the same kernel and tooling for WP8 that Windows 8 uses, we required items from the Win8 OS for development, as well as for testing (the Hyper-V chief among them)

        - Dev Unlock not tied to publisher registration (http://wpdev.uservoice.com/suggestions/1935045) - We've tried a couple routes of enabling this without opening up the door to wide-spread piracy - for example, working with the Chevron WP Labs folks a couple years ago. Enabling homebrew + true hobbyist developers is a critical item for me personally, but it's hard to do in a targeted fashion. It's still an active item that we're chasing down, though. I absolutely agree that separating the publication state from development/testing state in the workflow needs to happen.

        - Able to run the emulator in a virtual environment (I don't know of a thread on this) - I also don't see this one as possible to happen in a VMware type of setup. The Hyper-V system that the tools team took a requirement on requires access to SLAT, and therefore physical access to the hardware. While it was technically possible to run the old WP7 XDE in a virtual environment (it was based on the Virtual PC architecture), it didn't run XNA or anything that needed the GPU. What I am trying to work on here is finding a way to allow the emulator to run remotely (so that you could run it in another VM on the same host, or on another server, or in the cloud...imagine that ;-) )...it would likely solve much of the issues folk have, but in a better way because the emulator could still have access to the SLAT/physical hardware. The issues standing in the way of making this happen is mostly how the debugger connects to the emulator, and getting things set up to do this over TCP/IP and potentially taking a hit on communication performance. I don't think it's a short-term thing as there are other things the team needs to tackle first, but it would be a lovely suggestion that you could create here.

        I know this comment doesn't address your pain head-on, but please know that there we are trying to make life easier for the dev - it's a complicated workflow that crosses a number of streams. To give credit where it's due, it has gotten better over the last few years...but, as you point out, we still have a distance to go until morning.

      • David SmithDavid Smith commented  ·   ·  Flag as inappropriate

        Michael, you are not alone in this and I agree with nearly all of your sentiments because I've had a similar experience. I'm a professional software developer who just wants to write little applications for myself that I never plan on putting in the App Store. I've already parted with several hundred dollars between VMWare licenses and a physical Windows Phone 8 device and I am still unable to develop software for Windows Phone 8 because Microsoft wants money to push apps to a device that will never go into the App Store. It is a faulty assumption that every developer will publish an app in the App Store. As I go along this complete and total disaster of an adventure into Windows Phone 8, I'm sharing my story with my fellow developers who are effectively evaluating Windows Phone 8 development prospects based solely on my experience! I can already guarantee that they aren't going to bother porting their own apps to Windows Phone 8 and that they will share my experience with their developer friends, eventually creating a wonderful PR disaster for Microsoft.

        I'm not exactly sure where you got the $70 fee from - it is possible I didn't get that far because the fee I saw here was a $99 annual fee and I balked at that point. Other than that, your experience is very similar to mine. Developer Mode should be unlockable from within the Settings menu in the Windows Phone 8 OS itself without requiring connecting it to a Microsoft Live account in the first place. However, since that isn't possible because the OS was already released, payment should be restricted to those publishing to the Microsoft App Store. In addition, I ran into the same emulator issues with VMWare Workstation 9 on my own Win7 install - I also don't want Win8 on my primary development hardware, which wouldn't run the emulator anyway for lack of Hyper-V support! I'm not buying a whole new computer just for a little, tiny CPU feature when my current computer can run everything I've ever thrown at it and likely will continue to do so for the next 3 to 4 years except for this one little thing that's not worth the cost to upgrade. This isn't the 1980's - we don't buy new computers for a single CPU feature any more - welcome to 2013 Microsoft! The emulator should work on any hardware that can run Windows 8. Period. In addition, assuming the emulator even worked, I've read enough on the topic as a result of my experience to know that the emulator is buggy as hell. Whoever developed the emulator is an idiot/are idiots and should be fired and then drop-kicked on their way out the door as a bonus. And, if they worked for me, I'd be tempted to shoot them. I've never seen such shoddy work from Microsoft - this isn't anywhere close to the level of professional competence that us developers have come to expect from Microsoft. I suppose my first clue of how much shoddiness I was in for should have been the MSDN Library article with a screenshot of the world's ugliest .NET app that detected SLAT/Hyper-V support as one of the two official detection mechanisms.

        iOS and Android have roughly the same market share (about 47% each of the total pie) while Windows Phone 7/8 holds roughly 5% of the market share. Microsoft needs serious developer mindshare and it is moronic issues like this that will kill this platform. These issues are unacceptable and need to be prioritized above everything else. Microsoft finds itself in the unique position of being the underdog in a major area for the first time in a long time and don't know how badly they are screwing themselves with the inability to quickly get developing for these devices on existing setups. They need to take a few pages from the Android book and make development possible on Windows 7, remove the Hyper-V emulator requirement, bury the unlock option in the Settings menu in their next OS revision without requiring a Live account to do so, and, in the immediate/right-now/present, remove the lunatic requirement to pay money to unlock physical devices that we rightfully already own a license of the OS for. Developers! Developers! Developers! Developers!

      • MichaelMichael commented  ·   ·  Flag as inappropriate

        Just to add this: I didn't sign up because this is ridiculous and therfore wasn't able to build my app. After this nightmare I somehow lost interest in supporting this platform.

      • Oskar KnobelOskar Knobel commented  ·   ·  Flag as inappropriate

        The problem is not the Windows Phone Emulator but rather the emulation environment itself. As the requirements for the SDK clearly specify, the emulator requires a DirectX 10 or above capable graphics card with a WDDM 1.1 driver. Not a single virtualization solution out there fully supports that.

        While technically it would be possible to lower the SDK's requirements, it would require unreasonable efforts put into it. The discussion is virtually the same as a few years back when people wanted Windows XP to support DirectX 10. It won't happen.

        I suppose we just have to wait a little longer for better virtualization solutions. I am able to run the emulator using Parallels Desktop 7 (it would crash without the latest updates), but performance isn't yet good enough for serious development. Just give it some more time.

      • BrianBrian commented  ·   ·  Flag as inappropriate

        I second this; I'm able to use the Android emulator using Eclipse with no problem. This is a must have...

      • StevieBallzStevieBallz commented  ·   ·  Flag as inappropriate

        The underlying problem is that the Emulator needs Hardware Accelerated Graphics to work. Therefore the VMs need to be improved to allow for the Emulator to run at a usable speed. The Android Emulator for instance is nearly unusable on my Notebook even without a VM.

      Feedback and Knowledge Base