An Assembly is a logical unit of code
.Assembly physically exist as DLLs or EXEs
.One assembly can contain one or more files
.The constituent files can include any file types like image files, text files etc. along with DLLs or EXEs
.When you compile your source code by default the exe/dll generated is actually an assembly
.Unless your code is bundled as assembly it can not be used in any other application
.When you talk about version of a component you are actually talking about version of the assembly to which the component belongs.
.Every assembly file contains information about itself. This information is called as Assembly Manifest