Assembly in .NET Framework
In this blog I’m explaining Assembly in .NET.
An assembly is a fundamental unit of any .NET application. Assembly
is really a collection of types and resource information that are built to work
together and form a logical unit of functionality. An Assembly is a logical
unit of code, it contains code that the Common Language Runtime (CLR) executes.
Under the compilation time Metadata inn created, with the Microsoft
Intermediate Language (MSIL), and stored in file called Manifest. Portable
Executable (PE) file is the combination of Metadata and Microsoft Intermediate
Language (MSIL). Manifest file contains the information about and this
information is called Assembly Manifest, it contains information about the
members, types, references and all the other data that the runtime needs for
Every Assembly you create contains one or more program files
and a Manifest. There are two types program files: Process Assemblies (EXE) and
Library Assemblies (DLL). Each Assembly can have only one entry point (that is,
DllMain, WinMain, or Main).
There are two kind of Assembly in .NET:
1. Private Assembly
2. Shared Assembly
The assembly which is used by a single application is called
as private assembly. It is stored in that application's install directory.
Private assemblies are simple and copied with each calling assemblies in the
calling assemblies folder.
Shared assembly (public
assembly) also a collection of types and resources like private assembly. A
shared assembly is one that is used by multiple applications on the machine. Shared assemblies (also called strong named
assemblies) are copied to a single location (usually the Global assembly cache
(GAC)). A shared assembly must have a name that is globally unique. The .NET
Framework supports these naming requirements through a technique called strong