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, 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!
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:
- Get your paws on the Windows Azure Training Kit
- Get your machine set up for Azure development:
- The Azure Tools and SDK
- Windows 7, Windows Server 2008 (or if you must, Windows Vista SP1)
- IIS 7.0 with:
- ASP.NET (and optionally ASP.NET MVC)
- WCF HTTP Activation
- CGI (optional)
- One of these Visual Studio IDEs:
- Visual Studio 2008 SP1
- Visual Web Developer 2008 Express Edition with SP1 (which is free-as-in-beer)
- Visual Studio 2010 Beta 2 (free-as-in-beer during the beta)
- Visual Web Developer 2010 Express Edition Beta 2 (also free-as-in-beer)
- SQL Server 2005 Express Edition or SQL Server 2008 Express Edition or higher (The Express Editions are free-as-in-beer)
- These hotfixes, which you may or may not need, depending on your setup:
- Native debugging improvements (not needed for the 2010 IDEs)
- Improve Visual Studio Stability (not needed for Windows 7 RC or later)
- Support for FastCGI on the Development Fabric (not needed for Windows 7 RC or later, or Windows Server 2008 R2 or later)
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:
- 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!
- Package your application for deployment.
- If your app needs a storage project, create one.
- 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:
- Windows Azure Present and Future by Manuvir Das: An overview of Azure’s new features and a peek at what’s coming in future versions. If you watch only one Windows Azure talk from PDC 2009, watch this one!
- Introduction to Building Applications with Windows Azure by David Lemphers: Azure from a developer’s pertspective. This presentation covers the high-level concepts behind Azure and features Azure development demos.
- Developing Advanced Applications with Windows Azure by Steve Marx: Steve Mark – yes, the guy who made the two videos above – covers advanced Azure development techniques using the new features announced at PDC. This is of those build-up-an-app-throughout-the-session talks and worth a look.
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:
- Introducing Windows Azure by Henry Li, Apress
- Windows Azure Platform by Tejaswi Redkar, Apress
- Azure in Action (which is still a work in progress) by Chris Hay and Brian Prince, Manning