Difference Between Assembly and DLL

Well, a .NET dll is an assembly, but .NET exe's can be assemblies as well, so that means that all .NET dlls are assemblies, but the reverse is not true.

You shouldn't be sending actual code to a client. Rather, you should have the type definitions on both sides (client and server) and send serialized instances between the two.


An assembly is .NET's "minimum unit of deployment". Usually an assembly corresponds to a single file, but it doesn't have to - you can have multiple files, with one of them being the master which knows where all the other bits are.

Single-file assemblies are usually DLLs or EXE files. If you've got a normal class library and you just want to send it to the other side, the DLL is what you want. I'd only worry about more complicated scenarios as and when you run into them :)