The main difference between .dll and .exe is
.dll is the In process component where it take up the client's memory space to run. So the communication between the application and component(dll) is very fast.
.EXE is the Out of process component. It uses its own memory(not application memory) to run the component. The communication between the application and component is slow when compared to .dll
Exe have starting Point and dll Dont't have any starting poing and Used as services