ASP.NET uses a couple of new terms that are important to understanding the main article: namespaces and assemblies. Namespaces are a scoping mechanism that acts as a container for classes and child namespaces to prevent name conflicts within classes and to organize classes and namespaces hierarchically. You can use one or more namespace names with a class name to provide a fully qualified class name. For example, the fully qualified class name for the Visual Basic.NET (VB.NET) class that the code in Listing A creates is MyNamespace.MyClass. You can nest namespaces simply by declaring a child namespace within the parent namespace.
Assemblies are the .NET equivalent of DLLs—in fact, they carry the .dll extension, just as COM and Win32 DLLs do. Assemblies are containers for the code that the .NET Common Language Runtime (CLR) manages. Like DLLs in COM, assemblies are the unit of deployment in .NET development. Because they carry within them a manifest describing their own identity, version, properties, methods, and dependencies, assemblies don't rely on the registry to give other programs permission to locate and use them. Therefore, you can deploy assemblies by simply copying them to the desired location, which considerably simplifies deployment.