Microsoft .Net Assembly
Microsoft .Net Assembly is a logical unit of code, that contains code which the Common Language Runtime (CLR) executes. It is the smallest unit of deployment of a .net application and it can be a .dll or an exe . Assembly is really a collection of types and resource information that are built to work together and form a logical unit of functionality. It include both executable application files that you can run directly from Windows without the need for any other programs (.exe files), and libraries (.dll files) for use by other applications.
Assemblies are the building blocks of .NET Framework applications. During the compile time Metadata is created with Microsoft Intermediate Language (MSIL) and stored in a file called Assembly Manifest . Both Metadata and Microsoft Intermediate Language (MSIL) together wrapped in a Portable Executable (PE) file. Assembly Manifest contains information about itself. This information is called Assembly Manifest, it contains information about the members, types, references and all the other data that the runtime needs for execution.
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).
We can create two types of Assembly:
A private Assembly is used only by a single application, and usually it is stored in that application's install directory. A shared Assembly is one that can be referenced by more than one application. If multiple applications need to access an Assembly, we should add the Assembly to the Global Assembly Cache (GAC). There is also a third and least known type of an assembly: Satellite Assembly . A Satellite Assembly contains only static objects like images and other non-executable files required by the application.
.Net Assembly - Interview Questions
Difference between NameSpace and Assembly
A namespace is a logical grouping of types. An assembly can contain types in multiple namespaces and a single namespace can be spread across assemblies. More about... NameSpace and Assembly
How to add and remove Assembly from GAC ?
Each computer that .Net Framework is installed has a Global Assembly Cache, which is located in the Assembly folder in the Windows directory, normally C:\WinNT\Assembly. The Global Assembly Cache tool(Gacutil.exe) allows you to view and manipulate the contents of the global assembly cache. More about.. Add, Remove Assembly
What is .Net Assembly Qualified Name ?
An Assembly qualified name is the internal name of the assembly, combined with the Assembly Version, Culture, and public Key: these combination make it unique. More about... Assembly Qualified Name
How to Assembly versioning ?
The AssemblyVersion attribute assigns the version number of the assembly, and this is embedded in the manifest. Version information for an assembly consists of the following four values : a major and minor version number, and two further optional build and revision numbers. More about... Assembly versioning