The Module
The module contains IL code and type Information (also called metadata).
Each module can be written in a different .NET language if needed.
Every type you create (class, struct, interface, enum, delegate), every field, property, method, method parameter, return value, and attribute, all adds type information to the module's metadata.
To create a multi-module assembly, you must use the command line.
To create a single-module assembly csc.exe /target:exe /out:Program.exe Program.cs Class1.cs --> Program.exe csc.exe /target:library /out:Program.dll Program.cs Class1.cs --> Program.dll To create a multi-module assembly csc.exe /target:module /out:Program.netmodule Program.cs --> Program.netmodule csc.exe /target:module /out:Module1.netmodule Class1.cs Class2.cs --> Module1.netmodule al.exe /target:exe /out:Program.exe /main:mma.Program.Main Program.netmodule Module1.netmodule --> Program.exe
The Manifest
The manifest contains metadata for the assembly. It includes: