Assemblies are a fundamental part of programming with the
.NET Framework. An assembly performs the following functions; contains code
that the common language runtime executes, forms a security boundary, acts as
the unit at which permissions are requested and granted, forms a type boundary,
forms a reference scope boundary, forms a version boundary, and forms a
deployment unit. Creating an assembly can be done programmatically, and that creation
of an assembly is done with the help of various classes like the
AssemblyBuilder, ModuleBuilder, AppDomain, AssemblyName, etc.
The compiler differentiates an assembly from a satellite
assembly by an attribute called AssemblyCultureAttribute. This attribute will
be filled with the appropriate value to identify the assembly as a normal
assembly or a satellite assembly.