Um arquivo .dll (Dynamic Link Library) é uma biblioteca que contém código e dados que podem ser utilizados por mais de um programa simultaneamente. No contexto do .NET, um arquivo .dll representa um assembly .NET. Esses assemblies contêm código compilado escrito em linguagens como C#, VB.NET ou F#, juntamente com metadados que descrevem os tipos, métodos e recursos dentro do assembly. Esses metadados, conhecidos como manifesto do assembly, permitem que o .NET Common Language Runtime (CLR) gerencie e execute o código. Os assemblies .NET são um bloco de construção fundamental das aplicações .NET, promovendo a reutilização de código, modularidade e versionamento. Eles podem conter classes, interfaces, estruturas, enumerações e outros tipos. Quando uma aplicação precisa utilizar uma funcionalidade fornecida por um assembly .NET, ela carrega o assembly na memória e acessa seus membros. Os assemblies .NET podem ser privados (específicos para uma aplicação) ou compartilhados (instalados no Global Assembly Cache (GAC) e acessíveis por múltiplas aplicações).