I am getting very confused between Namespaces and Assemblies. Are System.Data and System.Web Namespaces or Assemblies?
I have noticed these
In short:
Tips.
An assembly contains a collection of types (for example l'assembly System contains many namespaces included System, System.IO, ecc). Usually, the name of assembly is the same of a namespace that it contains but not always.
Other example of assemblies and namespaces.
Assembly 1 (CoreAssembly.DLL)
Contains namespaces Namespace1.subnamespace1
Assembly 2 (ExtensionCoreAssembly.DLL)
Contains namespaces Namespace1.subnamespace1
It is possible use name of assembly that contains different namespaces and extend an existing assembly with an other assembly by this technique.
DEFINITIONS.
Assemblies
An assembly is a collection of types and resources that forms a logical unit of functionality. All types in the .NET Framework must exist in assemblies; the common language runtime does not support types outside of assemblies. Each time you create a Microsoft Windows® Application, Windows Service, Class Library, or other application with Visual Basic .NET, you're building a single assembly. Each assembly is stored as an .exe or .dll file. Note Although it's technically possible to create assemblies that span multiple files, you're not likely to use this technology in most situations.
Namespaces
Another way to organize your Visual Basic .NET code is through the use of namespaces. Namespaces are not a replacement for assemblies, but a second organizational method that complements assemblies. Namespaces are a way of grouping type names and reducing the chance of name collisions. A namespace can contain both other namespaces and types. The full name of a type includes the combination of namespaces that contain that type.
Link: http://msdn.microsoft.com/en-us/library/ms973231.aspx