Namespace is logical grouping of classes. It means Namespace can contains multiple classes. Namespace can span multiple assembly. Namespace use to organize the code in a well structured manner.
namespaces can hold other types as follows:
Assembly is fundamental building blocks of any .NET application. Assemblies contain metadata that describe their own internal version number and details of all the data and object types they contain. Assembly is physical grouping of logical unit.