views:

63

answers:

3

Whats the best way to go about upgrading a project with major design changes...in terms of project files (I guess)? I recently moved my website from ASP.NET to ASP.NET MVC and it was obvious that changes were so major it required a complete rewrite. Now I am preparing to move it to MVC 2, to take advantage of more features of the new framework, and again I am running into some road blocks which are moving me to do basically another complete rewrite. I would of course like to avoid this if possible because the site has grown quite large over time. I did do a good job of documenting the design decisions during the last rewrite however, and it would only take a few weeks to do another rewrite.

When do you need to make the decision to scrap the current project and bring everything up to the new technologies? If you create a new project file, whats the best way to handle migrating over the stuff that doesn't need to change from the old project?

+2  A: 

You do a rewrite when the cost of maintaining and extending the current codebase outweighs the cost of debugging a new one.

How you determine the costs, however, is highly subjective.

Jurily
+1 excellent. but you should add "outweighs the cost of debugging/writing a new one" I think.
griegs
A: 

Very rarely do I change technologies on an existing project as it's very hard to justify the cost to a customer. I could only imagine saying to a customer, at the end of this 2-3 week/month process, if you're very, very lucky you'll have exactly what you have now but law of averages you'll be further behind as it will have new bugs.

If a new module is being written then this may use new technology but the existing stuff is almost left as is.

Dave Barker
+1  A: 

You say "my website" which makes me think you are the personal owner of this website, as opposed to there being a paying customer who owns it.

If this is the case, I would say you may be talking things a bit too seriously. This sort of website is ideal for you to try out newer technologies so you can more completely understand the pros and cons.

So even if you need to completely rewrite to use MVC2, this is still a very valuable exercise. It's even more valuable if you also work on other customer owned websites.

The good/bad things you learn while working on your personal website give you great practical experience and help in deciding whether to apply it to customers real websites. Of course you could even learn, without a customer breathing down your neck, that a full rewrite to go from Web MVC to MVC2 is actually a bad idea (at least at this point in time).

Ash
This is my personal website. It started out as a senior project in college, but since it was for a passionate hobby of mine, I continued it after school. I like that you suggested doing it just for experience (+1).
NickLarsen