ASP.NET is the predecessor to the outdated ASP 3.0 Scripting language.
Where ASP was an interepeted language and *everything* was an object, asp.net is a compiled language which is much more akin to "real" programming then ASP was.
What I mean by real is having the ability to work with types and the like and not just declaring everything as an object so, to visualize:
sValue = "This is a string"
Dim sValue as String = "This is a String"
string sValue = "This is a string";
So, essentially, ASP.NET is the replacement for ASP and as such it does not require the user to have the .NET framework installed on their machine, it simply must be installed on the server and IIS must be configured to execute aspx files.
By default, if IIS is already installed when you go to install the framework this will be done automatically but, if the framework is installed before iis you need to run a command prompt (start --> run --> cmd) navigate to the .NET folder (typically %systemdrive%\windows\microsoft.net\framework\[version]) once there execute aspnet_regiis -i which will configure IIS to execute aspx pages.
This line I don't understand: "c# can produce windows apps, so is not tied to .net....."
So I am not sure if you mean to imply that C# is not tied to ASP.NET or that ASP.NET is not tied to the .NET Framework?? But, in any case, C# can be used to develop windows apps, WindowCE apps, Web Services, asp.net applications, etc. (The same goes for VB
.NET or J#)
<asp:Button id="btn" runat=server /> is ASP.NET and when placed on a Web Form it will render an plain old HTML button at run time and, you are correct, there is much more to it then this but its really outside the scope of one thread to break it all down. (Wrox has numerous books on this subject that you might want to check out)
Read this if you want to know how to get a correct reply for your question:
Technical Editor for: Professional Search Engine Optimization with ASP.NET
Why can't Programmers, program??