Get Free training With Great WP7, Silverlight & Azure Sessions at Microsoft Mix11


300x250_Mix11_011011_US_b (2)

This year’s Microsoft Mix 11 conference is taking place from April 12th to 14th in Las Vegas.

I have 4 sessions proposals that have been selected for voting by the Mix panel, and with your help, I can present them at the conference for you to see in person or for free on-demand shortly afterwards.

As well as from commercial projects and published articles/shows, these sessions are based on my expertise as a Microsoft MVP for Silveright, a workshop trainer for Microsoft on the Windows Azure Platform & the developer of the first WP7 training bootcamp delivered across North America.

To vote for sessions by Feb 4th…

For each of the web links below, click on each one and then vote by first clicking on all of the animal pictures of the indicated type (usually cats awww) and then clicking “vote for this session”.  Repeat for each of the 4 links.  The picture clicking thing is to make sure you are human and not a cheating robot of course.  If you select the wrong animation by mistake, you can click it again to unselect it.

Thank you for your interest and support!


0 to Phone App in 60 Minutes (based on a popular TechDays session)

Windows Phone 7 devices are out there. Will you have an application in the marketplace this year? The tools are free to download but it helps to get a jump-start to get moving. Do you understand the MVVM design pattern and how it applies to Windows Phone? Would you like to see how it’s done from scratch? Come along and see Microsoft MVP for Silverlight and leading WP7 trainer, Colin Melia, show you how to build an application step-by-step and answer questions along the way.


Getting to grips with MVVM on Windows Phone

You’ve downloaded the phone tools and created your first project. Now you’re venturing into the other project templates and have found all kinds of extra xaml files, bindings and classes. You’re in the world of MVVM architecture and you feel like you’ve fallen down the rabbit whole. The MVVM patterns in the templates are there to leveraged, but you need to know how to work with it. In this session Microsoft MVP for Silverlight and leading WP7 trainer, Colin Melia, will cover the MVVM concepts, the templates and go beyond viewing data to using commands and explaining key choices.


Windows Azure Platform as the backend for Windows Phone experiences

The launch of Windows Phone has been a source of much interest and developer enthusiam. There are 1,000s of appplications in the Windows Phone Marketplace. However, not many of those applications interact with a service created by the same developer. In this session, Microsoft MVP for Silverlight and leading WP7 trainer, Colin Melia, will show you how the Windows Azure Platform is a natural backend for Windows Phone experiences and how to use the various components.


On-Premise Data to Cloud to Phone – Connecting with Odata

You have corporate data to disseminate into the field, or service records that need to be updated in the field. How can you quickly make that data accessible from your on-premise system to Windows Phone users? Come take a look at OData with Microsoft MVP for Silverlight and leading WP7 trainer, Colin Melia, and see how you can expose data and services into the cloud and quickly connect to it from the phone, from scratch


These are 4 of just 14 sessions by Canadian-based developers highlighted by Microsoft Canada.  You can vote for all to 10 in total.


Live Meeting Presentation Today on Windows Phone 7 + OData + Silverlight + Azure


I’m doing a 1.5 hour Live Meeting presentation today at 16:00 ET on these hot topics for the Windows Azure User Group

The audience objectives include:

  • Learn key features of Silverlight, OData & the Windows Azure Platform
  • Learn about preparing an application for use with Windows Azure & SQL Azure
  • Learn stages and ways to deploy a full application to the Windows Azure Platform
  • Learn how Silverlight can interact with Windows Azure Platform technologies.

Register for this hot-topic event and participate remotely.

If you are looking for in-depth rapid training on developing for Windows Phone 7 development AND hands-on time with a device, then you should consider registering for the this major 2-day boot camp running across Canada.

Windows Phone 7 Boot Camp

Windows Azure Loves Open Source at Make Web Not War Conference

Microsoft held it’s Make Web Not War conference in Montreal on May 27th 2010.


I was asked to present on the Windows Azure Platform for a CodeFest audience consistly largely of open source developers.

Here’s the Windows stack using Azure across from the LAMP stack.

20100606 cross-plat

I discussed how to mix and match a these things, so here’s a summary of some of the interoperability points and resources mentioned at the event.

Windows Azure Storage accessible from .NET and PHP

Windows Azure storage is a hugely scalable storage system with a REST-based interface accessible to systems that can talk XML over TCP.

As well as client libraries for .NET applications, there’s also the Windows Azure SDK for PHP (CTP on CodePlex – BSD License).

Windows Azure Hosting & Tools for ASP.NET apps built with Visual Studio and PHP apps bulit with either Eclipse or the Command Line

Windows Azure provides for scalable hosted applications running within the IIS platform (including FastCGI-enabled interpreters like PHP) as well as native Win32 applications (which could include your open server application listening on TCP ports).

Of course there’s a set of Visual Studio tools for developing ASP.NET applications on IIS.  There’s also Windows Azure Tools for Eclipse ( for developing your PHP application in Eclipse to run under IIS FastCGI on Windows Azure.

And if you don’t want to use an IDE there’s also Windows Azure Command-line Tools for PHP (CTP on CodePlex – BSD License).

SQL Azure accessible from .NET and PHP applications

SQL Azure (talking just minutes – seriously like 3 minutes -  to set up a database in the cloud) provides reliable database storage in the cloud.

You can access this from ADO.NET and ODBC clients using the TDS+SSL protocol.  You can also use the SQL Server Driver for PHP 1.1 (or the 2.0 CTP) to access your cloud database from a PHP application.

MySQL hosted on Windows Azure

Yep, there’s a solution for that too – see the Solution Accelerator for MySQL & PHP on Azure

Quick Tip to Retain ASP.NET dynamic Recompile Changes During Azure Debugging

One of the major benefits of the Windows Azure SDK and Windows Azure Tools for Microsoft Visual Studio is the ability to operate an Azure Development Fabric and Azure Development Storage emulation on your local machine.  Pressing F5 in a Visual Studio Azure project deploys and runs your application in an environment emulating the real Windows Azure.  This is somewhat similar to the ASP.NET Development Server that starts up and somewhat emulates IIS (or other ASP.NET hosting environment) when you debug an ASP.NET application.

This is great, but can also create an efficiency bottleneck during development.

If you are debugging a regular ASP.NET application and you need to make changes, in many cases you can stay in debug mode;  you can edit an ASPX page or other assets (including CSS) and simply refresh the already running web browser instance to see you changes.  In the case of the ASPX page having changed, it is dynamically recompiled when you next access it.  This works because the ASP.NET Development Server is pointing at your development files.  This efficient cycle is lost when you start debugging with the Windows Development Fabric…

When you debug (or run) an Azure project in Visual Studio, your application is built into a package that is ‘deployed’ to the local Azure emulation.  The emulation therefore uses its own copy of the files.  Making changes to the file in Visual Studio while debugging, only updates the copies under Visual Studio’s control – they are neither repackaged nor redeployed.  The Azure Development Fabric has no idea that they’ve changed.  So, you have to stop debugging, re-launch, wait for the new package to build and deploy, and then get back to the same place in the application.

Here’s what likely amount to a satisfactory workaround before you are ready for the emulation stage:  create a mock for the Data Access Layer that deals with Windows Azure Storage and debug your project outside of the Azure Development emulation.  You lose role instance configuration, but you can go back to using the ASP.NET Development Server.  You may also lose the Azure diagnostic logging – but you can mock that too.

Note:  If you are using SQL Azure, for the most part you can use a regular local SQL Server in place.

I’m not suggesting you mock the interfaces to the Azure APIs directly.  Your application may well have a Data Access Layer which (when following best practices), will likely have an interface.  I suggest you create an object to mock this using the same interface or perhaps use one of the available mocking frameworks.

To facilitate the selection of the polymorphic DAL objects (real or mock) in one code-base you’ll likely want to make your application smart enough to know if it’s running in the Azure environment (Microsoft or local emulation) or not.  My previous post on the topic explains this idea.

You’ll need an interface that suits the operations of your DAL such as this example (where WallMessage is defined elsewhere)…


a mock object (such as the example shown below) and a real object (not shown) that both implement the interface…


and then calling code that first selects the mock or real object to use based on environment detection……


after which you go on to use properties and methods on the selected interface oblivious to the implementation being used.

This is just a basic example and as mentioned, there are some very good Mocking frameworks as well as Dependency Injection frameworks available that ease this kind of setup in large or complex solutions.

The code shown is from the sample Silverlight application I provide (including source code) in my Azure Deployment Guide, already used by 100s of people to successfully deploy their first Azure application.

I hope you found this tip useful 🙂 If so, and you’re reading this on January 15th 2010 then please vote for my Mix 2010 conference submissions today! :)  Thank you.

Looking to learn more about the Windows Azure Platform, Silverlight, Windows Touch or Windows Identify Foundation?

If you’d like to see these sessions in person at Microsoft’s Mix 2010 conference or the recordings that will likely be made available for free later on, please vote for the sessions before January 15th 2010, by going to the site, adding the 3 sessions to you ballot and submitting it

Quick Tip for Detecting Azure Environment During Your Development Cycle

Given the Azure tools and portal for Visual Studio 2008, there are 4 likely modes of execution during your development cycle:

  1. Testing in Visual Studio (with no Azure environment)
  2. Testing in Visual Studio using the local Azure Development Fabric/Storage
  3. Staged on the Azure portal
  4. Deployed on the Azure portal

#1 mostly applies when you have an application that you are porting, or you are development components that may become part of the application.

At times you may find it useful to know if you are running inside or outside of the Azure environment (i.e. 1 vs. 2/3/4).


Providing you have included the appropriate assembly reference, you can use this API to detect your environment and take appropriate action while developing and testing your components at the stages above.

Looking to learn more about the Windows Azure Platform, Silverlight, Windows Touch or Windows Identify Foundation?

If you’d like to see these sessions in person at Microsoft’s Mix 2010 conference or the recordings that will likely be made available for free later on, please vote for the sessions before January 15th 2010, by going to the site, adding the 3 sessions to you ballot and submitting it

Azure Platform Billing On-Ramp

Here’s the timeline for the ramp-up of Azure Platform Services billing:

  • Jan 4 2010 – CTP accounts can be upgraded to commercial accounts in the countries listed below.
  • Feb 1 2010 – Billing starts for upgraded accounts and non-upgraded accounts are disabled with Windows Azure Storage going read-only and no new database creation in SQL Azure. 
  • Mar 1 2010 – non-upgraded SQL Azure databases will be deleted
  • Apr 1 2010 – non-upgraded Windows Azure Storage will be deleted

Available Azure Platform Services billing locations from Jan 2010

  • Austria
  • Belgium
  • Canada
  • Denmark
  • Finland
  • France
  • Germany
  • Ireland
  • India
  • Italy
  • Japan
  • Netherlands
  • New Zealand
  • Norway
  • Portugal
  • Singapore
  • Spain
  • Sweden
  • Switzerland
  • United Kingdom
  • United States