-2

Recently we got a requirement for converting a classic asp project to asp.net.

This one is really a very old project created around 2002/2003. It consists of around 50 asp pages. I found very little documentation for this project, FSD and design documents for only a few modules.

Just giving a quick look into this project my head start to hurt. It is really a mess. I checked the records and found none of the developers who worked on this project work for the company anymore.

My real pain is that this is an urgent requirement and I have to provide an estimated deadline to my supervisor.

I found a similar question classic-asp-to-asp-net, but I need some more insight on how to convert this classic asp project to asp.net in the quickest possible way.

Buzz
  • 105
  • 1
  • 5

1 Answers1

6

Well an estimate is not a promise. Just let your boss know that any estimate you make about codebase you don't know and a technology you don't know is going to be very inaccurate. Make him aware of the risk level.

What makes the conversion so urgent? Perhaps you can add something to the existing codebase to remove the urgency and buy yourself time for a proper port?

Some tips:

  • Map out what the system does before touching it. Create a test script that you can use to check all the features. You are bound to make mistakes, try to find them fast. Perhaps it will reveal parts you don't need to port.

  • Setup an IIS application that runs asp and asp.net side-by-side. Then attempt to port page for page while keeping the thing as a whole working (you may need to put the .NET bits in a separate virtual directory under the same path, I forgot).

  • First attempt a near line-by-line port for as much as possible before you start to redo or redesign parts of the code. ASP.NET WebForms aspx pages are the best fit for this. I would not port to MVC, which does not have a page based model.

  • Just stick with ASP's inline code style as you move the code over to the ASPX pages. Ignore ASPX's code behind or move some trivial unshared functions to it.

  • For pages you ported create a routing rule to redirect X.asp requests to X.aspx transparently.

  • If code is in VBscript then consider porting to VB.NET, you can keep a lot of the typeless stuff around (option strict off). If it's jscript, go for C#, dynamic and type inference is your friend there.

  • ASP pages typically use COM components as libraries. You can usually keep using those dependencies from .NET even if there are better ways in the BCL. If you can initially postpone migrating libraries do so.

  • Examine each page and the pattern within, is it mostly disjoint with other pages or is it using some include based scheme to setup code modules and such. Such included ASP pages might be directly convertable to class files. Typically classes with only static methods (modules in VB.NET).

  • Only after completing the line-by-line port start doing redesign. Probably best to make a plan once you get there, you'll know a lot more about the codebase. Now is the time to start modernizing.

I've worked with a system where a similar conversion was half done. Parts were .NET, parts were classic ASP. It could be a valid strategy, port the pages you have new requirements for and nothing more. Eventually the classic ASP all get converted or lesser useful ones fade away.

It ain't gonna be 'quick', trust me ;-)

Joppe
  • 4,548
  • 17
  • 25
  • good answer, but I would completely disagree with you on using WebForms over MVC. ASP Classic may be old, but it is actually more similar to MVC (and pretty much every other language used to make web pages) than it is to WebForms. – James P. Wright Dec 12 '12 at 22:17
  • @James I am suggesting this mostly to postpone having to create controllers and such and to stay URL compatible initially. I would definitely port it over to MVC later. – Joppe Dec 12 '12 at 22:19
  • 1
    @JamesP.Wright, FWIW I disagree that Classic ASP is more similar to MVC than webforms. You don't HAVE to use the code behind in WebForms, so you can just put code blocks in the ASPX page and convert over the VBScript. Plus, moving away from the 'page' paradigm is huge. You don't want to be chasing links all over the place in the markup too. With WebForms, all the URLs can match the old system. – Graham Dec 13 '12 at 13:33