Assembly (programming)
In computer programming, an assembly is a runtime unit consisting of types (such as classes and interfaces) and other resources. All types in an assembly share the same version number. An assembly typically corresponds to a single file (such as a .dll or .exe), but can consist of multiple files linked together by a manifest that serves as a table of contents describing the assembly's metadata and structure.
While an assembly often contains types from a single namespace and serves one program, it can span multiple namespaces. Conversely, a single namespace can be distributed across multiple assemblies, providing flexibility in code organization and deployment.
In C#, an assembly is the smallest deployment unit used, and is a component in .NET. In Java, it is a JAR file.
01Creation of an assembly
Every compilation creates either an assembly or a module in C#. It is possible to add other modules with the assembly linker (al). A speciality of Java is to create a *.class file for each class, which is not the case in C#. The creation can be activated by compiler switches, like csc /addmodule:Y.netmodule A.cs that yields a new A.exe with Y added to this assembly.

Sources and credits
This article is adapted from the Wikipedia article “Assembly (programming)”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Images, from Wikimedia Commons:
- Creation of assemblies and modules.png by Unknown author, CC0
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.