Recently at work, I've had to make a standard ASP.Net application work in Windows Azure.
At the time, I had been on some 'Early Adopter' days run by and on behalf of Microsoft. These courses all suggested that developing for the cloud 'requires a different mindset'.
Now, we had from the start of the project, assumed it was going to be big, so we had some important features already in place (multi-tenancy and stateless design)
So, how difficult was it?!
I created a cloud project in Visual Studio, Right- Clicked on the project and selected 'Add Web Role', Selected our existing project and built... No errors, no warnings...
Ran it in the the local dev environment... No issues...Uploaded to Azure...Mainly worked!!
So where were the issues: Local Disk Access, a number of images and xml files were being read/written or cached to disk. Some of these we architected out of the solution as there were better ways of doing it, but the solution using Azure Storage rather than local disk.
We used an IStorage interface, with two methods, save and retrieve, there were two implementations of this interface, Azure and InHouse, and they were used from within a httphandler. Uploads were read straight from the input stream to the Azure Storage stream asyncronously. This solved the issue we had, and used less memory on the role as nice side effect!
On the database side we had a number of issues, however all of these had been marked as deprecated in the move to Sql Server 2008 anyway so the advice would be to get the database working on Sql Server 2008, without using deprecated features, then move to Azure.
Wednesday, September 29, 2010
Subscribe to:
Posts (Atom)