tags:

views:

145

answers:

2

I have a partly developed asp.net application, but now the client wants it to be developed in azure. How much of the existing code can be used in developing the application in azure.

What challenges could we possibly encounter when we try to port an existing asp.net application to azure. Are there any other alternatives to azure in cloud computing.

Thanks Prady

+1  A: 

It should be very easy to port your application to Azure--especially if you're using a SQL back-end. The code could run almost without modification. You'll need to create an Azure installation package for the project and configuration file.

If your application makes use of persistent storage (other than SQL Server), you may have to rework that code somewhat. However, the platform now has drive storage, which simulates a file system, so this should be fairly easy.

Another issue to watch out for is web.config. If you make heavy use of this for runtime customization, you'll have to rework that too. You can't deploy single files to your application in Azure, so the recommended approach is to migrate these sort of settings to the Azure config file.

The hardest thing you're likely to encounter is external applications. If your app relies on launching other processes, then this will require some serious redesign.

Peter Ruderman
I think "very easy" is misleading. See my answer below for details.
David Makogon
+7  A: 

For an asp.net application, you can certainly port that to Azure. Your core logic will port in a relatively straightforward manner, and you'll gain the many benefits Azure has to offer. With the June 2010 release, you'll also have .NET 4 support, along with IntelliTrace for debugging.

However, as you begin to plan your Azure migration, there are several considerations you'll need to think about (none of them insurmountable, and several relatively simple to deal with):

  • You have to deal with ASP.NET Session State management across your web role instances (which isn't supported out of the box, except for inproc). You'll also have to set up and use the role and membership providers (see here for more detail).
  • You have to examine your SQL backend for incompatibilities with SQL Azure (such as scheduled jobs,since there's no SQL Agent support). SQL Azure differences are documented here. You'll also need to consider the SQL Azure size limit of 50GB, which might require you to offload content to Azure blob storage
  • You need to configure logging and diagnostics, preferably with Trace output, so that you can retrieve this data remotely.
  • You need to think about how you'll monitor and scale your application. There's no out-of-the-box scaling solution, although all information you might need is available to you (performance counters, queue lengths, etc.)
  • You'll need to think about caching, as there's currently no out-of-the-box caching implementation that runs across instances of your web role
  • Do you need SMTP support? If so, there are details you should read about here.
  • Are you hosting WCF services as well? If so, check out this site for further details (specifically the Known Issues).

So: yes, there are some things you need to concern yourself with, but Azure is a great platform for hosting an asp.net application and you should strongly consider it.

David Makogon