In Microsoft .NET, an assembly is the smallest unit of a
program that can be distributed and used independently. Both, an executable
(exe) and a dynamic link library (DLL) are an example of .NET assemblies.
Assemblies contain metadata that describe their own internal
version number and details of all the data and object types they contain. Assemblies
are only loaded as they are required. If they are not used, they are not
loaded. This means that assemblies can be an efficient way to manage resources
in larger projects.
Assemblies can contain one or more modules.
Assemblies have the following properties:
- Assemblies are implemented as .exe or .dll files.
- You can share an assembly between applications by placing it
in the Global Assembly Cache.
- Assemblies must be strong-named before they can be placed in
the Global Assembly Cache. For more information, see Strong-Named Assemblies.
- Assemblies are only loaded into memory if they are required.
You can programmatically obtain information about an
assembly using reflection. For more information, see the topic Reflection.
Here are some good resources on assemblies in C# and .NET.