The basic unit of .NET programming is the assembly. An assembly is a collection of files that appears to the user to be a single dynamic link library (DLL) or executable (EXE). DLLs are collections of classes and methods that are linked into your running program only when they are needed.
Assemblies are the .NET unit of reuse, versioning, security, and deployment. This chapter discusses assemblies in detail, including the architecture and contents of assemblies, private assemblies, and shared assemblies.
In addition to the object code for the application, assemblies contain resources such as .gif files, type definitions for each class you define, as well as metadata about the code and data. Metadata is explored in detail in Chapter 18.