The assembly is the core unit of logical deployment within the .NET Framework. Whenever you compile your code, it must eventually end up in an assembly. When your application is executed after deployment, its assemblies are loaded by the Common Language Runtime. As you will see in the next section, there is a lot more to the assembly than meets the eye. A lot of developers take it for granted that an assembly is just another word for "DLL," but that couldn't be further from the truth.
An assembly is a logical container that stores not only compiled code, but also metadata and resources. Assemblies serve the following purposes:
Some of this might not make much sense at the moment, but it will become much clearer in the next section, where we take a look at the internals of assemblies in the .NET Framework.