Assembly is the main unit of deployment in a .NET Framework application executed as .exe or .dll.
An assembly performs following functions
- It consists of an IL code that gets executed by common language runtime
- It forms a security boundary
- By establishing name scope for types at the runtime, it ensures safety
- It carries version information
- It enables side-by-side execution of multiple versions of the same assembly
- Assembly is where permission is requested and granted.