Assemblies in .NET
“An Assembly is a Physical grouping of Logical unit, it contains .dll & .exe files.”
Assemblies are the building blocks of .NET Framework applications; they form the fundamental unit of deployment, version control, reuse, activation scoping, and security permissions. An assembly is a collection of types and resources that are built to work together and form a logical unit of functionality.
An assembly contains the following information:
Assemblies maintain all their information in a special unit called the manifest. Every assembly has a manifest.
The following are the contents of an Assembly Manifest:
- Assembly name – Represents a text string that specifies the assembly’s
- Version number – Represents a major and minor version number, as well as a revision and builds The CLR makes use of these numbers to enforce version policy.
- Culture – Represents information of the culture or language, which the assembly supports. An assembly is a container of only resources containing culture- or language-specific
- Strong name information – Represents the public key from the publisher, if a strong name is assigned to an
- List of all files in the assembly – Represents a hash of each file contained in the assembly and a file
- Type reference information – Represents the information used at the runtime to map a type reference to the file that contains its declaration and
- Information on referenced assemblies – Represents a list of other assemblies that are statically referenced by the Each reference includes the names of dependent assemblies, assembly metadata (version, culture, operating system, and so on), and public key, if the assembly is strong named.
Kinds of Assembly in .NET
- Static Assemblies can include .NET types (interfaces and classes), as well as required resources for the assembly (bitmaps, JPEG files, resource files, and so on). Static assemblies are stored on disk in PE files.
- Dynamic Assemblies are one which run directly from memory and are not saved to disk before execution. They can be saved to disk after they have executed.