Sunday, November 4, 2012

Windows 8 Unleashed Hackathon

I spent most of this lovely fall Saturday in the basement of Microsoft's office here in Boulder Colorado. The goal: learn about how to create applications for the new Windows operating system.

First, let's look at the lovely offices.  Though we were in the basement, it was a very nice basement.  There is a locker room with showers, and even a bike repair shop.  And since this office focuses on Bing maps, there were stunning outdoor images on all of the walls.  Not a bad place to spend the day!


Key ideas: developing for win8 is very similar to developing for Windows phone 7 in that your app needs to be able to go into a suspended mode and behave appropriately when it is "tombstoned".

The biggest surprise for me was the Microsoft Windows Simulator.  It is a Win8 runtime that VS2012 launches to run your application.  This allows you to see your app running in a realistic environment.  You can cause it to suspend, and can even simulate touch events using your mouse.  You can change the size of the simulated screen to see how you app looks on various sized tablets.


Note that this is a very realistic Win 8 environment.  There is a Start button.  You can press it and get to the main screen of Windows 8. There you will see the standard apps alongside your own.  You can open these apps and play around like you were on a real device.  Then you can bring your app back up.  This is a great way to test that your app not only starts smoothly, but can smoothly transition as the user jumps from app to app.


The day went by pretty quickly.  Fernando Cardenas first spoke, going over the architecture and design considerations for building these apps.  Then John Brunnings went into more detail over lunch.

The big fun part of the day was the hackathon itself.  We were invited to create an app on the spot, with the reward of gift cards for the top three winners.  I had no idea what I was going to do when I got there, but during the morning I began talking to David Kilmoyer about issue-tracking apps.  He mentioned that Jira has a nice REST API.  And that inspired both of us to attempt to write apps would that talk to Jira and get a simple list of issues.

David took the bold route of creating his using the HTML5/Javascript front end, while I chose to stick with XAML, a technology which I'm no expert in, but am at least more comfortable with.  In the end, neither of us won prizes, but we certainly learned alot about the Jira API, and serialization of JSON.  And later on that evening I was able to get my app to save and restore its state properly.

In all, it was a very fun day.  Good to meet other .NET developers, and to take on the challenge of learning alot of new technology quickly and tearing out all stops to build a new app in that new technology.

Tech setup:  I was hesitant to install windows 8 on my own system.  Instead, I installed VirtualBox, and then created a Win8 VM.  On that VM I installed Visual Studio.  This was all done on a new work laptop, a Samsung QX411.  We got it for an Oracle Primavera workshop a few weeks ago, with the express purpose of running VMs on it.