Namespaces and Assemblies in VB.NET
In this article I will explain about Namespaces and Assemblies in VB.NET.
Assemblies are for physical scope and namespaces are for logical scope, so namespaces can be expanded over assemblies but the converse is not possible.
The namespace keyword is used to declare a scope. This namespace scope lets you organize code and gives you a way to create globally unique types.
Even if you do not explicitly declare one, a default namespace is created. This unnamed namespace, sometimes called the global namespace, is present in every file. Any identifier in the global namespace is available for use in a named namespace.
Namespaces are hierarchical. They implicitly have public access, which you cannot modify.
It is possible to define a namespace in two or more declarations. For example, the code in Listing 5.37 defines both classes as part of namespace MyCompany.
Listing 5.37: NameSpace.VB, Namespaces Example
' recurring namespaces
Public Class [MyClass]
Public Shared Sub Main()
' a nested namespace
Public Class NestedNameSpaceClass
Public Shared Sub SayHello()
The code listing generates the screen output in Figure 5.8.
Figure 5.8: Screen Output from Listing 5.37
VB programs are organized using namespaces, which serve as both an internal organization system for a program and an external organization system that is, a way of presenting program elements that are exposed to other programs.
VB also enables the definition and use of aliases. Such aliases can be useful in situations in which name collisions occur between two libraries, or when a few types from a much larger namespace are being used. Listing 5.38 presents code from the preceding example, rewritten to use aliases.
Listing 5.38: NameSpace Assignment Example
Imports MessageSource = Microsoft.CSharp.Introduction.HelloMessage
Private Shared Sub Main()
Dim m As New MessageSource()
An assembly is everything that comprises a .NET application. It is the unit of deployment for the Microsoft .NET framework and takes the form of an executable (.exe) file or dynamic-link library (DLL). What makes assemblies different from .exe files or DLLs in earlier versions of Windows is that assemblies contain within them all the information that you would find in a type library along with information about everything else that is necessary to use the application or component.
One of the primary goals of assemblies is versioning. Specifically, assemblies provide a means for developers to specify version rules between different software components and to have those rules enforced at runtime.
Because assemblies are the building blocks of applications, they are the logical point for specifying and enforcing version information. Each assembly has a specific version number as part of its identity.
Hope this article would have helped you in understanding Namespaces and Assemblies in VB.NET.