.NET is a way for many different programming languages to use the same classes, namespaces and other resources.
That's why Microsoft calls it a "framework." If you use one of the languages that .NET supports -- Visual Basic, C#, Visual C++, J# -- you can be sure that a computer which has installed the .NET framework will have all the classes you use in your program, and your program will run on that computer exactly as it runs on any other computer with the .NET framework.
There are several versions of .NET: 1, 2 and 3, including some subversions (such as 1.1). Unfortunately, because of the way .NET works, as well as some decisions Microsoft made along the way, .NET is not backward compatible. Programs written in .NET 1.1 need the .NET 1.1 framework; they won't work if you have the 2.0 or 3.0 versions.http://en.wikipedia.org/wiki/.NET_Framew
When developers refer to ASP, they generally mean Microsoft's first version of a server-side scripting technology, which it called Active Server Pages, or ASP. The last incantation of ASP, which can still run on Windows IIS 6, is ASP 3.0
ASP 3.0 is not part of the .NET development approach. It pre-dates .NET by several years. ASP.NET is the replacement for ASP 3.0.
ASP 3.0 can be used as an object-oriented programming language but it is really a flow-driven programming language. What that means is that in ASP 3.0, you write code in a straight line, declaring variables as you need them, writing condition and flow control statements (such as if, while, etc.) as you need them.
That tends to be easiest for beginners to understand, but it is very inefficient and can lead to many mistakes and unintended outcomes.
ASP 3.0 was also based on the Request-Response model: That is, you use a form to give the server information via a request, it responded by processing some ASP code and sending back a processed Web page.
While that was fine for early Web sites, Web 2.0 is event-driven: Mouse clicks, cursor position, time, etc. all dictate changes that the Web page needs to make.
ASP.NET is an object-oriented, event-driven programming model for Web pages. Like all .NET programs, you can write ASP.NET pages in any of the four supported languages.
Unlike the old ASP 3.0, .NET is an object-oriented language. You use namespaces to get specific classes you need to use to do your work, and you use subroutines and functions to determine how the server processes user input.
ASP.NET is also event-driven, which means how pages are processed depends on what the user's Web browser is doing. In the latest version of .NET, you can capture virtually every event a user's Web browser has -- from the moment it first visits a page, through the page leaving the server, through the loading of each individual control / tag, to the moment the page is totally loaded on the user's machine, to any mouseover or click or right-click, through the user closing the page and leaving your server.
Needless to say, that model is far more powerful than the old ASP 3.0 model; you can do a lot more in ASP.NET than you can in ASP 3.0.