Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Don't throw away your code!</p> <p>It's the single worst mistake you can make (on a large codebase). See <a href="http://www.joelonsoftware.com/articles/fog0000000069.html" rel="nofollow noreferrer">Things You Should Never Do, Part 1</a>.</p> <p>You've invested a lot of effort into that old code and worked out many bugs. Throwing it away is a classic developer mistake (and one I've done many times). It makes you feel "better", like a spring cleaning. But you don't need to buy a new apartment and all new furniture to outfit your house. You can work on one room at a time... and maybe some things just need a new paintjob. Hence, this is where refactoring comes in.</p> <p>For new functionality in your app, <a href="http://blog.danbartels.com/articles/322.aspx" rel="nofollow noreferrer">write it in C# and call it from your classic ASP</a>. You'll be forced to be modular when you rewrite this new code. When you have time, refactor parts of your old code into C# as well, and work out the bugs as you go. Eventually, you'll have replaced your app with all new code.</p> <p>You could also write your own compiler. We wrote one for our classic ASP app a long time ago to allow us to output PHP. It's called <a href="http://www.joelonsoftware.com/items/2006/09/01b.html" rel="nofollow noreferrer">Wasabi</a> and I think it's the reason Jeff Atwood thought Joel Spolsky went off his rocker. Actually, maybe we should just ship it, and then you could use that. </p> <p>It allowed us to switch our entire codebase to .NET for the next release while only rewriting a very small portion of our source. It also caused a bunch of people to call us crazy, but writing a compiler is not that complicated, and it gave us a lot of flexibility.</p> <p>Also, if this is an internal only app, just leave it. Don't rewrite it - you are the only customer and if the requirement is you need to run it as classic asp, you can meet that requirement.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload