Namespace: It is a Collection of names wherein each name is Unique.
They form the logical boundary for a Group of classes.
Namespace must be specified in Project-Properties.
Assembly: It is an Output Unit. It is a unit of Deployment & a unit of versioning.
Assemblies contain MSIL code.
Assemblies are Self-Describing. [E. g. metadata, manifest]
An assembly is the primary building block of a .NET Framework application. It is a collection of functionality that is built, versioned, and deploymed as a single implementation unit (as one or more files). All managed types and resources are marked either as accessible only within their implementation unit, or by code outside that unit.