ASP.NET applications are server-side applications that render HTML to a web page.
ASP.NET apps are created by defining .aspx files and associated .cs or .vb files and compiling them into a set of .DLLs (called an assembly) that run on an ASP.NET-capable server.
Application logic, GUI layout, and behavior are defined on the server.
ASP.NET provides a default implementation of the HTML and Javascript needed to create the web browser interface.
The assemblies execute when a client browser accesses the web server, and receives output in the form of HTML/Javascript/CSS.
ASP.NET applications are deployed as "assemblies" on an ASP.NET-capable server such as IIS running on the Windows operating system.
You can use Visual Studio to create ASP.NET applications.
How does it compare to Flex?
Both application logic and layout is deployed and executed on the server, instead of in a SWF file that executes on the client machine. ASP.NET essentially centralizes execution of the application on the server.
The GUI of an ASP.NET application is HTML generated by ASP.NET web form controls.
The generated HTML is styled through themes (aka "skins") using a programmatic markup language, or through CSS.
ASP.NET can talk directly with a database server, and therefore can be used to write web services. Flex can not be used to write web services, but can consume data from a web service and display it.