Namespace or Assembly?

.net, assemblies, c#, namespaces

Solution

`System.Data` is a namespace, `System.Data.DLL` (the file) is an assembly.

A namespace is a logical grouping of types (mostly to avoid name collisions). An assembly can contain types in multiple namespaces (`System.DLL` contains a few...), and a single namespace can be spread across assemblies (e.g. `System.Threading`).

Problem

I am getting very confused between Namespaces and Assemblies. Are `System.Data` and `System.Web` Namespaces or Assemblies? I have noticed these are called namespaces and at the same time they are present in `GAC_32` folder. So what exactly are they?

Original source

Related problems