G
Guest
Hello,
I’m in the process of reading "Inside Microsft .NET IL Assembler" by Serge
Lidin to gain a better understanding of my .NET code at a lower (IL) level.
There is one concept that I am having trouble grasping, however: Assemblies
versus modules and how they relate to one another. From what I can tell,
assemblies contain one or multiple modules, but I’m not sure of this. I know
that your .NET compiled code can end up in a DLL or an EXE file. Is it a fair
statement that the DLL or EXE file is the actual assembly? I ask this because
of the following statement from the text:
“An assembly is basically a deployment unit, a building block of a managed
application. Assemblies are reusable, allowing different applications to use
the same assembly.â€
In my mind, a deployment unit is a file. Please correct me if I’m wrong here.
Another statement that I could use clarification on:
“Managed .NET applications are called assemblies.. The managed executables
are referred to as modules. You can create single-module assemblies and
multimodule assemblies. As illustrated in Figure 1-1, each assembly contains
one prime module, which carries the assembly identity information in its
metadata.â€
“Applications†are assemblies? What exactly is an application? Is it code
that can be executed? Is it the actual file?
And “managed executables†are modules? Again, is this executable an actual
..exe file?
Lastly, under the description of “Module Metadata Table and Declaration:â€
"Name (offset in the #Strings stream) The module name, which is the same as
the name of the executable file with its extension but without a path. The
length should not exceed 512 characters, counting the zero terminator."
So, the module name has the same name as the executable file. Are they
therefore analogus? If so, does the assembly somehow supersede the entire
file? Any clarification would be much appreciated. Thank you very much...
-Ben
I’m in the process of reading "Inside Microsft .NET IL Assembler" by Serge
Lidin to gain a better understanding of my .NET code at a lower (IL) level.
There is one concept that I am having trouble grasping, however: Assemblies
versus modules and how they relate to one another. From what I can tell,
assemblies contain one or multiple modules, but I’m not sure of this. I know
that your .NET compiled code can end up in a DLL or an EXE file. Is it a fair
statement that the DLL or EXE file is the actual assembly? I ask this because
of the following statement from the text:
“An assembly is basically a deployment unit, a building block of a managed
application. Assemblies are reusable, allowing different applications to use
the same assembly.â€
In my mind, a deployment unit is a file. Please correct me if I’m wrong here.
Another statement that I could use clarification on:
“Managed .NET applications are called assemblies.. The managed executables
are referred to as modules. You can create single-module assemblies and
multimodule assemblies. As illustrated in Figure 1-1, each assembly contains
one prime module, which carries the assembly identity information in its
metadata.â€
“Applications†are assemblies? What exactly is an application? Is it code
that can be executed? Is it the actual file?
And “managed executables†are modules? Again, is this executable an actual
..exe file?
Lastly, under the description of “Module Metadata Table and Declaration:â€
"Name (offset in the #Strings stream) The module name, which is the same as
the name of the executable file with its extension but without a path. The
length should not exceed 512 characters, counting the zero terminator."
So, the module name has the same name as the executable file. Are they
therefore analogus? If so, does the assembly somehow supersede the entire
file? Any clarification would be much appreciated. Thank you very much...
-Ben