DLL and EXE files are both .NET assemblies that contain classes. However, the exe file is directly executable and has an execution entry point. Conversely, you can't directly execute any code that lives in just a DLL file.
A DLL file is a class assembly that is referenced by some other assembly (either another DLL or an exe). The assembly contains classes that will be used by the code that references it.
An exe will be a windows form application, a console application or a windows service. You can launch any of these from windows thru a command prompt, windows explorer or from the services control.
An ASP.NET application functions a bit differently. It only exists as one or more DLL files (technically, it can even exist as NO dll files, just pages and code files that are dynamically compiled at runtime). This is because the main program that runs an ASP.NET application is the ASP.NET worker process that gets executed by the web server (IIS). The worker process is actually the program that processes the ASP.NET pages. It loads the classes that are in your ASP.NET application assembly DLLs.
I remember how confusing this was for me when I first started learning about .NET. Hopefully this clarifies things for you a bit.
-
Peter