compilation of the HelloWorld
`void' indicates the return type of the Main function, here in this case the Main function
returns nothing so it is mentioned as void, for functions that returns value should have
appropriate type such as long, string etc.,
Now its time to compile and execute this complex program. To compile the above piece
of code you can use C# compiler. To run the C# compiler make sure you set your path
variable to point to the place where your C# compiler is available. (To set a new value in
the path variable, go to control panel and double click System icon, then choose
advanced tab and click Environment Variables button to add or edit the environmental
variables)
Figure shows compilation of the HelloWorld program using C# compiler
The compiler used here is "csc", which is a visual basic .net compiler accepts the source
file "HelloWorld.cs" compiles the same to produce a program that's not true executable,
instead it generates something called assembly.
Assembly
An assembly is a grouping of files deployed as a single file. An assembly almost always
consists of at least two files: the executable and the manifest. The manifest is a list of all
the files that exist inside the assembly. The executable content inside the assembly is
referred to individually as a module. Conceptually, modules correspond to DLLs or
EXEs; each module contains metadata, in addition to the metadata of its parent assembly.
The assembly format is an enhanced version of the current Portable Executable (PE)
format (your normal Windows .EXE file format).
Manifest
Manifest is considered as the integral part of every assembly that renders the assembly
self-describing. The assembly manifest contains the assembly's metadata and it also
establishes the assembly identity, specifies the files that make up the assembly
implementation, specifies the types and resources that make up the assembly, itemizes the
compile-time dependencies on other assemblies, and specifies the set of permissions
required for the assembly to run properly.
Metadata