Well, having spent the last few days trying to migrate our website from Classic ASP and ASP.NET 1.1 to ASP.NET 2.0, I had just about given up.
A little background. The website I am talking of was written using classic ASP and is the backbone of the company I work for. Now, this website, does not actually need to be upgraded in order to suceed but the development costs and turnaround times of new features would be better served by using ASP.NET. So, about eight months ago, we decided to write all new products for the website in ASP.NET 1.1 with a view to upgrading these products and also classic ASP products to ASP.NET 2.0 when Visual Studio 2005 was released. So far so good. The path we chose was to have a single web project for each product which meant that if a product required updating, we would only need to update the .aspx pages and code behind files and then compile to a single DLL for that product and then upload those changes along with the DLL and the rest would be untouched and therefore, no chance of breaking something unintentionally. This has now worked fine for around five months.
Now came the time for upgrading these products into VS 2005 and I was more than perplexed to find that VS 2005 does not allow the same web project model as VS 2003 meaning that we would have to use the new Website Model which didn't really fit our needs, as most pages would be compiled into a single DLL with possibly support class' being compiled into seperate DLLs, but still not really following the structure that we had implemented and become comfortable with.
Now, you may be wondering where I am going with this ;-) I did a little research (and no doubt most of you would have found the same resources, but to save you the heartache...) and found a great blog entry from Scott Guthrie which details the excellent work that Microsoft has done to correct the issue of omitting this project template from VS 2005 in the first place. There is now a downloadable (albeit, still in beta stage) project template that gives you the same ASP.NET project template that you had in VS 2003 while still benefiting from all of the great enhancements in VS 2005 and the .NET Framework 2.0. I encourage anybody faced with the same problem to check out the First Preview Download of VS 2005 Web Application Project Model Now Available and the download and tutorial links available at Visual Studio 2005 Web Application Project Preview.
I still have some testing to do, but I have successfully migrated the project over to ASP.NET 2.0 in around 3 hours and there is quite a bit of code so I was quite pleased with the time it took, but I am not happy with the fact that I now have ASP.NET 1.1 .aspx and .vb pages that don't make use of partial classes and such sitting in an ASP.NET 2.0 project. You can of course choose to upgrade each project to a Web Application but I found that this didn't work quite so well as you would end up with some page declaration code in your code behind file and some in the .designer file which I am not too happy about. Instead, I have decided to take a longer approach to the migration in that I have created the same structure as I had in VS 2003 and will manually copy the code over bit by bit (admittedly, this should be quite quick due to the fact that of the 11 current products, 4 are support products with no interface and the rest will only require that I create the pages manually) and then copy the markup and code over. I do think I will be turning the XHTML checking off though for this stage of the migration as I don't know that I can face being told that I have hundreds of lines of code that are deprecated or not surrounded in quotes etc. ;)