tg, there is only one kind of DLL. COM and .net Assemblies are DLL's. The windows OS only deals with Executables and DLL's, period. It knows nothing of .Net or even COM, it simply runs executables and provides a mechanism to load DLL's. .Net assemblies are implemented as DLL's and so is COM. .Net has isolated you from the OS.

If an application, like a web server, maybe photoshop plugins, or the OS itself requires a DLL (not COM or assembly) - it cannot be provided by .net.

The truth is, .Net cannot make native windows apps. Your .net application is not a windows application, rather there is a .net host application that runs your application.