Modules and Assemblies
A
module is an
.exe
or
.dll
file. An assembly is
a set of one or more modules that together make up an
application. If the application is fully
contained in an .exe
file,
fine—that’s a one-module assembly. If the
.exe
is always deployed with two
.dll
files and one thinks of all three files as
comprising an inseparable unit, then the three modules together form
an assembly, but none of them does so by itself. If the product is a
class library that exists in a .dll
file, then
that single .dll
file is an assembly. To put it
in Microsoft’s terms, the assembly is the unit of deployment in
.NET.
An assembly is more than just an abstract way to think about sets of modules. When an assembly is deployed, one (and only one) of the modules in the assembly must contain the assembly manifest , which contains information about the assembly as a whole, including the list of modules contained in the assembly, the version of the assembly, its culture, etc. The command-line compiler and the Visual Studio .NET compiler create single-module assemblies by default. Multiple-module assemblies are not used in this book.
Assembly boundaries affect type resolution. When a source file is compiled, the compiler must resolve type names used in the file to the types’ definitions. For types that are defined in the same source project, the compiler gets the definitions from the code it is compiling. For types that are defined elsewhere, the compiler must be told where to find the definitions. ...
Get Programming Visual Basic .NET now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.