Cloudy (with a Chance of Mobile)

Photo of an airplane soaring against a blue sky with clouds: "Cloudy (with a chance of mobile)"

If you had to give a name to the sort of programming I’m going to be concentrating on in 2010, I’d suggest Cloudy with a Chance of Mobile. I’m using this phrase as a catch-all that comprises the following:

  • Windows Azure as a platform for web applications
  • ASP.NET MVC as my web framework
  • Silverlight as my rich internet application platform
  • jQuery as my JavaScript framework
  • A number of programming languages: C#, JavaScript, PHP, IronRuby, IronPython, F#
  • Mobile computing, which means means phones, tablets and other ways to access processing power while on the go
  • And while it’s yet another thing to put on my plate, I can’t resist XNA , the game development platform for Windows, Xbox 360 and Zune.

Remember: these are just the technologies I’ll that I will be using my in own software development and will be writing about. My job remains helping Canadian developers be the best that they can be, primarily with any Microsoft tools and technologies. If you’ve got questions about tools and tech that aren’t listed above, I (along with my fellow Developer Evangelists, Christian Beauclair and John Bristowe) am still your resource within Microsoft!

I sometimes like to refer to this selection of technologies as “The Undesktop”. The desktop, its operating system and applications have been Microsoft’s bread and butter since the company was a handful of scruffy nerds in New Mexico building a BASIC interpreter for the Altair 8800 (the “old man” of the 8-bit machines). While the desktop has been very good to the company – I’d go so far as to call it Microsoft’s first love – it’s not the only place where the software magic happens.

Sometimes I worry that the company is a little too in love with the desktop:

Bill Gates posing sexily on a desk with an old IBM PC running MS-DOS

(Bill Gates, DOS and a game called DONKEY.BAS actually played a surprisingly influential role in my first kiss, but that’s another story. Buy me a beer and I’ll tell you in person.)

Since the company already lavishes plenty of attention, documentation, demo code and love on the desktop, I thought that I’d do well to take a different tack and help developers build on platforms other than the desktop (and its svelte fraternal twin, the notebook).

What is Windows Azure?

In this article, I’m going to give you a quick overview of Microsoft’s cloud computing platform, Windows Azure. I figured that a good place to start would be by answering the question “What is Windows Azure?”, and doing so with a video whose title is, oddly enough, What is Windows Azure?

Steve Marx of the Azure team made this video, and it’s a quick one, running at a mere 4 minutes, 16 seconds and explains what Azure is and how and why you might want to use it:

Steve also made a video on The CIA Pickup , which features an app that says he built to impress people (okay, he wants to impress potential dates) by convincing them he’s a CIA agent. It runs on Azure and makes use of a couple of services too: Twilio for telephony, Live ID for authentication and Live Mail for… well, mail. It’s easier to show you than tell you what it is and how it works:

Azure is Live!

Picture of the Death Star II: "Now witness the power of this fully-armed and operational battle station"

As of this Monday, Windows Azure has gone live. That means it’s out of beta, commercially available and ready to host websites, web apps and data. Azure will remain free-as-in-beer for you to evaluate through January 2010, after which you’ll start getting charged for Azure compute time. Take it out for a spin!

Getting Started with Azure

I’ll cover Azure in greater detail in future posts. In the meantime, here are some links to resources to help you get started developing for the cloud:

An overview of Azure

Check out this quick introduction to Azure and its pillars:

  • Windows Azure, where your apps, data storage live and where you can manage them.
  • SQL Azure, the cloud-based relational database, with lots of SQL Server goodness.
  • AppFabric, which makes it easier to connect cloud apps with “on-premises” (that is, non-cloud) apps through features like identity management, firewall-friendly messaging and more.

Building Azure Apps

Before you can put an app in the cloud, you need to build it on your local machine:

Deploying Azure Apps

Once you’ve got a web app running on your local machine, it’s time to deploy it to the cloud. Here’s how you do it:

  1. Purchase the Windows Azure platform package that works for you. And yes, there’s a free-as-in-beer one. Remember that if you have an MSDN subscription, you already have a monhtly allotment of Azure compute hours – check your subscription!
  2. Package your application for deployment.
  3. If your app needs a storage project, create one.
  4. Create a hosted service for your app, then deploy the your package to that service.

If this seems a bit vague and hand-wavy for you, that’s because it is. I’m working on a step-by-step, from-the-ground-up tutorial that will cover the process in greater detail. I hope to post it in the next couple of weeks.

If have an Azure account set up, I strongly recommend checking out Colin Melia’s article, titled Deploy this Silverlight Application on Windows Azure in 10 Minutes – No Tools Required! We had 150 people at TechDays Ottawa and TechDays Winnipeg follow the steps in this article successfully.

Azure in a Little More Detail

Azure@PDC

There were a number of Azure presentations at the Professional Developer Conference (PDC) , which took place in November. If you want an introduction to Azure that goes into a little more detail, watch these:

Canadian Developers Blogging About Azure

Be sure to check out Colin Melia’s and Cory Fowler’s blogs – they write about Azure quite often! (And if you’re a Canadian developer blogging about Azure, let me know.)

Books on Azure

I’m currently working my way through these books:

Cover of "Introducing Windows Azure"    Cover of "Windows Azure Platform"    Cover of "Azure in Action"

[This article also appears in Global Nerdy.]