I was asked about the differences between classic ASP and ASP.NET, so let me put them down here, for reference:
Let's make the introductions...
Classic ASP was launched by Microsoft in 1998 and dynamically generate web pages upon user interaction and server-side processing; this model is complementary to serving static web pages like well-known ".htm" files which mainly have fixed content, and opens a whole new world of possibilities in the web area. The ASP page have a mixed content of HTML and server-side VBScript (all in a single file).
Microsoft included ASP technology in every Windows version, from Windows 2000 to the latest. However, on newer versions of server operating systems, classic ASP is blocked by default (but this can be changed by server administrator).
By default, ASP pages have ".asp" extension and are using VBScript (which is a restricted and "light" version of Visual Basic programming language).
ASP.NET is the successor of classic ASP and implements a completely new model. Released in January 2002, this technology is actively supported by Microsoft in every Windows version starting with Windows XP and server-editions.
The new ASP.NET web pages have an ".aspx" extension. The dynamic program code is stored separately (using the code-behind model) in another file with an extension of .vb (Visual Basic) or .cs (C sharp), depending of the programming language used.
Comparing OLD and NEW
Classic ASP is similar to PHP in how it works and how it is written, where ASP.NET is more similar to the J2EE Servlet / Java Server Pages architecture.
Classic ASP is much more simpler than ASP.NET and very easy to learn, compared to ASP.NET (I personally learned classic ASP in just 5 days from a very good and short tutorial).
You can edit classic ASP even with Notepad.
ASP.Net is a a compiled application (resulting in DLL-type file), while Classic ASP is a script-based language. You don't have to compile anything in classic ASP, just upload the file to the server.
ASP.Net is also an event-based model implemented via a set of so-called server controls. In classic ASP, there are no server controls, you have to write everything manually (which I love, because it leaves me the freedom I need).
ASP.NET uses the "code behind" technique in order to keep business logic away from the presentation, while classic ASP does not force you to to that (but you can do it, with your own technique - e.g. you must write additional code - if you want).
The most important thing about ASP.NET: it is NOT fully ASP compatible, even if you might think otherwise.
If you are an ASP programmer and you love it, you may find very difficult to learn ASP.NET...
Tim Walton (Evesham Solutions) says: "The move to a .NET development environment was expensive and a far bigger change than many expected. The uptake was, and still is, much slower than Microsoft ever expected."
Also, he says: "ASP.NET for small to medium-sized websites is a huge overhead in many ways, and so for the foreseeable future I will be sticking with regular ASP for anything but the most complex of websites."
This is one good reason he mention: "Regular ASP has the most lightweight development environment I have ever used - Notepad. Yep, that's all you need! Installation time? - It's already installed. Start up time? - It's running in an instant. Configuration? - Not needed. Availability? - Any PC ever".
Friend or foe?
ASP.NET has a tendency to auto-generate code. Is this a powerful and useful feature? You decide...
Google says there are just 0.36 billion search results of ASP.NET while ASP gets 3.29 billion results.
The proof that classic ASP is here to stay: there are many implementations of frameworks for classic ASP (Simplicity, CLASP) and even AJAX for classic ASP (called AJAXED).
A quick glance at the Google Insights for Search for keywords like 'ASP.NET' shows a markedly declining trend since 2004. I believe this is conclusive...
My opinion: despite appearances, classic ASP seems to be much more HUMAN than his younger brother (ASP.NET).
PS: If you find this article helpful, vote YES for it.