Assembly (programming) should not be confused with Assembly language.
In computer programming 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. 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. In Java, it is a JAR file.[1]
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.[2]