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. For example, larger projects may be planned in such a way that several individual developers work on separate modules, all coming together to create a single assembly.
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.
- Assemblies are only loaded into memory if they are required.
- You can programmatically obtain information about an assembly using reflection.
- If you want to load an assembly only to inspect it, use a method such as ReflectionOnlyLoadFrom.
- You can use two versions of the same assembly in a single application.