Assemblies are of three types:
- Private Assembly
- Shared Assembly
- Satellite Assembly
If each and every program having it's own copy of .dll such assembly is called Private Assembly.
Disadvantage: Memory will be wasted.
Only one copy of .dll is used by all applications present such assembly is called Shared Assembly. These dll's are stored in a location called Global Assembly Cache(GAC).
- .Net enterprise services require shared assemblies in specific scenarios.
A Satellite Assembly is an assembly that only contains resources.
- This is extremely useful for localization.