Assemblies are the principal units of deployment and versioning of .NET framework applications. They contain compiled code and its metadata as well as other resources attached to the code. Assemblies in the .NET framework can be in the form of DLL files or exe executable fuels. They provide information to the Common Language Runtime during runtime so that an application or program behaves as designed.
There are two types of assemblies in the .NET framework: shared assemblies and private assemblies. Shared assemblies are accessed by multiple applications and stored in the Global assembly cache. Private assemblies consist of compiled application-specific code only accessed by the host application during runtime. Shared assemblies are usually in the form of DLLs while private assemblies are usually exe files written by a developer to solve a specific problem.