In
computer programming
Computer programming or coding is the composition of sequences of instructions, called computer program, programs, that computers can follow to perform tasks. It involves designing and implementing algorithms, step-by-step specifications of proc ...
an assembly is a
runtime unit consisting of types and other resources. All types in an assembly have the same
version number.
Often, one assembly has only one namespace and is used by one program. But it can span over several
namespaces
In computing, a namespace is a set of signs (''names'') that are used to identify and refer to objects of various kinds. A namespace ensures that all of a given set of objects have unique names so that they can be easily identified.
Namespaces ...
. Also, one namespace can spread over several assemblies. In large designs, an assembly may consist of multiple files that are held together by a ''manifest'' (i.e. a table of contents).
In
C#, an assembly is the smallest
deployment unit used, and is a component in
.NET
The .NET platform (pronounced as "''dot net"'') is a free and open-source, managed code, managed computer software framework for Microsoft Windows, Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft emplo ...
. In
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
, it is a
JAR file.
Creation 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.
[
]
References
{{Reflist, 2
Programming constructs