12.2 Assemblies and Modules
The simplest assembly
contains
an assembly manifest and a single module containing the
application's types, packaged as an EXE with a
Main entry point. More complex assemblies may be
composed of multiple modules (PE files), separate resource files,
manifest, etc.
The element that defines the presence of an assembly is termed the
assembly manifest. The assembly manifest is not a physical construct,
but rather a set of metadata that can either be included in one of
the existing PE files in the assembly, or can live in a standalone PE
file.
An assembly may also contain multiple modules. This technique can
increase the performance of applications that use assemblies that are
loaded over the network, since the CLR only loads modules as the
types contained within them are needed. In addition, each module can
be written in a different language, allowing a mixture of C#, VB.NET,
and raw MSIL. Although not common, a single module could also be
included in several different assemblies. When using multimodule
assemblies, the convention is for the module PE files to have a
.netmodule extension.
Finally, an assembly may contain a set of resources, which can either
be kept in standalone files or included in one of the PE files in the
assembly.
|