Archive for March, 2012

Doing Azure development on Windows 8

March 25, 2012

I received one of those Samsung tablets that Microsoft gave away at the BUILD conference last September, and it is running the Windows 8 Developers Preview and VS11 Developers Preview. To be honest, I haven’t messed around with it much, because I can’t do my work on the tablet, and I’m just too busy to play with it.

When the Windows 8 Consumer Preview and new beta of VS11 came out at the end of March, they provided them to the MVP’s at the MVP Summit. Unfortunately, VS11 does not support Azure projects yet (dang it) and most of my work is in Windows Azure these days. I wanted to try out the tablet for development work – it’s is so darn portable – and see how the new version of Windows 8 worked. So I decided to install the Consumer Preview and install VS10 instead of VS11 so I can do my work on the tablet.

I have the ISO file for the Windows 8 Consumer Preview. I created a USB-bootable drive with it using this tool from Codeplex. Then I rebooted the tablet, holding down the Windows key. I went to Troubleshooting, Advanced Options, Command line, and then  ran the setup: D:\Setup.exe. I’m not sure it even mattered if it was bootable, because I ran the setup, but I ran across these instructions by Brian Noyes, and they worked great for me. (Yes, the codeplex article says Windows 7, but it works for Windows 8 too.)

So now I have a tablet running Windows 8 CP with no software on it. That’s not terribly useful. So I started installing my development software on it:

  • Visual Studio 2010
  • Team Foundation Server Explorer 2010
  • SP-1 for VS2010/TFS2010
  • SQLServer Express 2008 R2 SP-1 with Tools (I’m including the link to save you some trouble if you’re looking for it. Look for SQLEXPRWT_*_ENU.exe).

At this point, I needed to install the Azure Tools. They always seem to want you to use the Web Platform Installer, but I have control issues, so I like to manually install what I need. Check out this link for the official article.

  • Enable IIS 7. This was harder than expected – I couldn’t figure out how to get to the Windows features on the tablet. (I mentioned I’m not a Windows 8 expert, right?). I finally went to the Metro UI and tried just typing in “add windows features”. That was a total bust! So I tried “Control Panel”, which brought up the original control panel that we all know and love. So I clicked on “Programs” and selected “Turn Windows features on or off”. I enabled all of the IIS features I knew were required.
  • Install the IIS URL Rewrite Module.
  • Install the Windows Azure Authoring Tools November 2011 (Windows Azure SDK x64 or x86).
  • Install the Windows Azure Emulator November 2011 (x64 or x86).
  • Install the ASP.NET MVC 3 Tools Update.
  • Install the Windows Azure Libraries for .NET 1.6  — November 2011 (x64 or x86).
  • Install the Windows Azure Tools for VS 2010.

I didn’t need the hotfixes for WCF – I’m targeting .NET 4 with my WCF services.

The next thing I did was run DSINIT to initialize my storage environment, because I never use the default SQLEXPRESS instance. 

C:\Program Files\Windows Azure Emulator\emulator\devstore\DSInit.exe /sqlinstance:MySQLServerName

After installing everything, I rebooted for good measure. Then I opened Visual Studio and opened one of my Azure projects that has a web role with a WCF service in it, and ran it in the development fabric. As usual, it started up a browser window for the localhost, and I put in the service name. This usually brings up the service information, but instead I got a 404 error. Uh-oh.

I tried it on my Windows 7 machine – it worked fine. So it must be a Windows 8 issue. To be honest, it never crossed my mind that it wouldn’t work. After all, Microsoft said that anything that worked on Windows 7 should work on Windows 8, right?

After asking around, Paul Yuknewicz at Microsoft sent me some info. Turns out there’s an article specifically about installing the Azure SDK on Windows 8. I was a bit afraid to ask for fear Microsoft’s response would be “you should use the Web Platform Installer kit”, but it turns out that the Web Platform Installer doesn’t work on Windows 8!

Paul told me there are additional Windows features in Windows 8 that need to be enabled, and specifically recommended that I go back in and check out the .NET Framework features and enable HTTP Activation for WCF services. (This is outlined in the ‘Azure SDK on Windows 8’ article linked above). So I checked it out, and at the top of my Windows features, I see these, which do not show up in Windows 7:

I enabled ASP.NET 4.5 and HTTP Activation for WCF for both .NET 3.5 and .NET 4.5, then tried running my service again, and voila! It worked! Thank you Paul! So my tablet is up and running. I’ve now been using it for a couple of weeks for my Azure development.

I actually think the concept of Windows 8 is brilliant in the way it provides both the Metro UI and the desktop mode. This gives people the ability to use the new apps with the Metro interface, but still run traditional Windows applications when/if they need to.

My parents mostly use their computers to surf the web and do e-mail. They could use a Windows 8 machine just to do that, and never look at the desktop mode. But someone like me who needs the full version of Microsoft Office and some traditional desktop applications (like Visual Studio) can run those as well.  I don’t believe everything should be rewritten with the MetroUI.

So for me, I have the best of both worlds. I have an iPad which I use primarily for reading (news, books, etc) and games, and some e-mail, but I can’t use it to do my job. I can use a Windows 8 tablet for both functions and still have portability, and I think that’s cool.

The thing I miss the most in Windows 8 is the Start menu in the desktop mode. I use [Recent Items] a lot, and I like to pin things to my start menu. I’ve had to start pinning things to my Taskbar, but I miss the jump lists. I also find it a little jarring to have to go back to the Metro UI side and type “microsoft word” (or some other desktop application) and have it flip back to desktop mode. Why can’t I do that on the desktop side? There’s been a lot of grousing about the lack of a Start menu, so it will be interesting to see how Microsoft responds to that.

So that’s my quest to get Windows 8 up and running and being able to do Azure development on my Windows 8 machine. I’m getting used to doing development on the tablet. I didn’t think I would like the touch screen, but I’m actually getting used to it. I even find myself trying to touch the screen when I switch back over to my regular laptop!