On Wednesday October 26th, I will be presenting the Windows Azure Session at Tech Days 2010 in Toronto, Canada. As a summary to my presentation, I am providing the links to not only the resources for my talk, but some of the concepts that I elude to in my presentation.
Act 1: The Brownfield
I can’t wait to see the glowing smiles in the audience when I announce that it is possible to Migrate your legacy applications to the Cloud.
However to take advantage of the benefits of Cloud Infrastructure, some code changes may be necessary. Not to worry, here are a few links that will help you along the way:
- Using Windows Azure Table Storage to Replicate Session State.
- Running an Executable File from within a Role.
- Writing to the Scratch Disk in a Windows Azure VM (not recommended, doesn’t scale).
- ASP.NET Membership Tables for SQL Azure (formerly found in aspnet_regsql.exe)
Known issue in Development Fabric
During the initial creating of the Nerd Dinner Demo, I ran into a known issue with Development Fabric, where the DotNetOpenAuth Library would cause the DevFabric Load Balancer to crash. This was due to the actions of an extension method in the ASP.NET MVC Framework, luckily there is a work-around.
Guidance on Migrating Legacy Applications
- August Issue of MSDN Magazine: Tips for Migrating your Applications to the Cloud.
- Microsoft Patterns and Practice Team: Moving Applications to the cloud on the Windows Azure Platform
Act 2: The Greenfield
Whether you’re working on a brand new Application, or retro fitting your existing Application with some new practices there are a few things that you’ll want to be aware of.
Using Storage Services
Making Storage Thread Safe with SyncLock
When using Managed code to access Storage Services, it is a Best Practice to use a Sync Lock to surround the code which is attempting to Create a Blob, Table or Queue. Here’s a small sample from Building your first Windows Azure Application on Channel 9 Windows Azure Platform Training Course.
static bool _isInitialized = false;
static object _gate = new object();
static CloudBlobClient _blobClient;
private void InitializeStorage()
{
if(_isInitialized) return;
lock(_gate)
{
// Initialize Storage
_isInitialized = true;
}
}
Enforcing Access Rights on Blobs
Depending on your application it may be necessary to Set Access Control for Containers.
_blobContainer.SetPermissions(new BlobContainerPermissions()
{
PublicAccess = BlogContainerPublicAccessType.Blob
}); // Set the Blob Container to Allow Public Access to Blobs
Act 3: Deployment
Intellitrace on 32-Bit Operating Systems
If you’re still running a 32-Bit Version of your Operating System, the Intellitrace tools are disabled by Default for the Cloud. In order to be able to benefit from Intellitrace on your machine you will need to download and install Hotfix: KB983301.
Next Steps
![]() |
![]() |
![]() |
![]() |
![]() |
If you’re interested in Getting Started with Windows Azure, These Links can get you going:
- Visual Studio Express
- Windows Azure Tools & SDK
- TCO Calculator
- Sign up for Windows Azure
- Windows Azure Forums
Resources
For Best Practices and other Training review these links:




.png)

