Archive for October, 2009

Migrating Web Applications to Windows Azure

With the release of Windows Azure only a few weeks away, it is likely that more and more developers are going to want to move their existing Web applications into the cloud. Fortunately, Microsoft has made it very easy to do so and a big part of that is the decision to make Azure Web Roles look (and behave) so much like ASP.NET Web Applications.

Really, a Web Role project and a Web Application project are identical, with one very minor exception: by default, Web Role projects contain a reference to the Microsoft.ServiceHosting.ServiceRuntime assembly and Web Application projects do not:

The ONLY difference between a Web Role project and a Web Application project

The ONLY difference between a Web Role project and a Web Application project

Because Web Roles and Web Applications are architecturally identical, you can easily add an existing Web application to a Windows Azure application… It’s a two step process; first, add the Web Application project to your cloud solution:

Adding a new Web Application project to an existing Cloud Service

Adding a new Web Application project to an existing Cloud Service

Second, add the project as a Web Role by right-clicking “Roles” in Solution Explorer and selecting Add > Web Role Project in solution…

Adding an existing Web Role project in solutions

Adding an existing Web Role project in solutions

Your original Web Application project is now part of your Windows Azure application! To make it identical to a Web Role created “from scratch,” simply add a reference to Microsoft.ServiceHosting.ServiceRuntime, which you can find in the Windows Azure SDK (the default location in most cases will be C:\Program Files\Windows Azure SDK\v1.0\ref\Microsoft.ServiceHosting.ServiceRuntime.dll.)

One more thing – when you add an existing application to a Visual Studio solution, it just creates a pointer to the original .csproj/.vbproj file from your solution – in other words, make sure you create a backup copy of your original Web Application before you move it into the cloud!

That’s the easy part of migration – however, it can get more complicated and more challenging if your application relies on data storage, services, client-side code or 3rd party libraries. I’ll be posting some short articles on how to deal with these various scenarios in the coming days and weeks.

, ,

7 Comments

Visual Studio 2010 “Add Reference” dialog

Scott Guthrie has been publishing a great series of blog posts on the new features in Visual Studio 2010 and .NET 4.0. Today’s post is about the “Add Reference” dialog in VS2010; to me, this is a “minor tweak” with a “major impact.”

In previous versions of Visual Studio the “Add Reference” dialog was always very slow to appear the first time you accessed it each session. Turns out this was because the dialog defaults to the “.NET” tab and results in a synchronous scan of the global assembly cache (blocking the UI thread). Simply by changing the scan to an asynchronous operation and having the dialog default to the “Projects” tab, the dialog will load much faster. More details in Scott’s post.

Anyway, this is the type of “feature” that is likely to get buried amongst more “exciting”, new features but it shows the type of thinking going into Visual Studio that has me exciting about this upcoming release. Sure, waiting for the “Add Reference” dialog to load may only take a few seconds but multiply that by the number of .NET developers out there and this one little tweak will save countless hours every day.

Minor tweak == Major impact

,

No Comments

New seminar on Azure Worker roles and queue storage

It’s Monday, and these days that means we posted another Web seminar! This is actually the last Web seminar I’ll be posting until after the PDC, and this one covers Windows Azure Worker roles and Windows Azure queue storage. Here’s the link to the session itself:

http://www.msdev.com/Directory/Description.aspx?eventId=1499

If you are interested in the sample code, there are actually two Visual Studio projects you’ll need… The first is a little WPF app that hosts a WCF service. This acts as the SMS “server”, and as the name (PsuedoSMS) suggests, there is no actual SMS involved… I just needed to be able to simulate a service I could invoke from the Worker role.

PsuedoSMS.zip

The second is the cloud service that contains the actual demonstration code from the session. This is a Visual Studio 2008 solution, but you should be able to easily convert it if you want to use it with Visual Studio 2010.

SmsCloudApp.zip

Cheers!

Oh, and I need to include some credits as far as the PsuedoSMS app – the embedded font is called Sveningsson and it was created by Derek Gomez. You can download it from dafont.com. The app also uses a great little library by Philipp Sumi called WPF NotifyIcon – it provides an easy way to use WPF for system tray popups.

Also, if you get an “HTTP could not register URL” error when you try to run the PsuedoSMS app, you can either run the app as administrator or you can create a reservation for the app… Start a command prompt with administrator privileges and then execute the following (with appropriate domain/username of course):

netsh http add urlacl url=http://+:9999/PsuedoSMS/SmsService/ user=DOMAIN\username

Thanks to Anirban Chakladar’s blog posting for helping me sort this out quickly…

,

No Comments

New Web Seminar – Windows Azure Storage

This morning we posted another Web seminar in the “Everything You Need to Know About Azure as a Developer” series. This one is all about Windows Azure Storage – specifically, blob storage and table storage. Here’s the link to the new session:

http://www.msdev.com/Directory/Description.aspx?eventId=1498

If you’d like the source code for the demonstration, you can download it here. Note that in the Web seminar I built the demo in Visual Studio 2010, but this version is built for Visual Studio 2008 (it’s easier to move a solution from 2008>2010 than the other way around!)

, ,

5 Comments

Halloween Jack-o’-lantern project

It’s less than two weeks until Halloween and I thought I’d share a little DIY project I came up with last year. Basically the idea was to decorate the exterior of the house with jack-o’-lanterns that look realistic enough without being real… That is, I can re-use them every year if I want (not to mention they won’t rot!) First, let me show the finished result so that you get an idea of where I’m going with this:

http://www.vimeo.com/7138151

Read the rest of this entry »

, ,

No Comments

Azure Web Seminars

Ola and I are working and a series of Web seminars on the Windows Azure Platform… Just posted “Windows Azure Fundamentals” and “Developing a Windows Azure Application“… Hope you enjoy!

No Comments