So after playing around with the blob storage a little bit, I decided to embark on a simple end to end project with the main objective of building some muscle around developing a Windows Azure application across multiple machines (working from the office and home, using source control, etc) over multiple days.

So what did my journal look like?

First, the high level workflow seemed to be this:

image 

Things I learnt along the way:

1. Don't make your containers (or let your app make containers) that have capital letters, for some reason, this makes the create container call fail, make it x.ToLower() and it works fine.

2. Don't be too quick on the trigger with performing actions on your staging and production deployments via the portal otherwise you could lock up your live cloud environment and need to wait until someone in MS resets it (I was offline for around 24 hours until it was reset). I tried to suspend my staging deployment while deleting my production deployment and locked up my environment:

clip_image002

If you get this same problem, email me asap. :)

3. Be careful with the use of Server.Transfer() in your pages, while it worked on the local developer fabric, it would lock up in the live environment (the browser would simply block, waiting for the request to return). When I switched to Response.Redirect(), the lock up went away and everything worked ok. Not sure why this is, however I suspect it may have something to do with the Windows Azure trust policy.

What worked nicely was the different environments for staging and production.

For example, I have my production version of Dave's Photostore:

image

While that's up and running though, I want to upgrade it so I can not only add albums, but delete them to. So I can make the change, deploy and test it in the cloud as a staging application:

image

All while my production version is untouched. Once I've done my live site testing and am happy the live environment is ok, I can then promote from staging to production with one click!

Noice!

The Photostore by Davidlem app is now live, and the code is available here:

You'll need the PhotoStore directory and the Windows.Azure.Storage.Blobs directory to get the sample working. None of the code is supported or production quality, so if you use it, please don't burn effigy's of me at your daily stand-up meeting when co-workers (or your boss) ask where your new crappy Windows Azure code came from!

Happy coding. :)