Un file di Assembly .NET, tipicamente con estensione '.dll' (Dynamic Link Library - Libreria a Collegamento Dinamico) o '.exe' (Executable - Eseguibile), è un'unità di codice compilata scritta in un linguaggio .NET come C#, VB.NET o F#. Contiene codice Common Intermediate Language (CIL), noto anche come MSIL (Microsoft Intermediate Language), metadati che descrivono il codice e risorse come immagini o file di configurazione. Gli Assembly sono i blocchi costitutivi fondamentali delle applicazioni .NET. Forniscono un modo per impacchettare e distribuire il codice, gestire il versionamento e imporre confini di sicurezza. Il runtime .NET, il Common Language Runtime (CLR), esegue il codice CIL all'interno dell'assembly. Gli Assembly possono essere applicazioni eseguibili (.exe) o librerie (.dll) che forniscono codice riutilizzabile per altre applicazioni. Sono auto-descrittivi, il che significa che contengono tutte le informazioni necessarie al CLR per caricarli ed eseguirli, incluse le dipendenze da altri assembly. I metadati all'interno dell'assembly, noti come manifesto dell'assembly (assembly manifest), specificano il nome, la versione, la cultura (culture), la chiave pubblica e le dipendenze dell'assembly. Ciò consente al CLR di risolvere le dipendenze e garantire che vengano caricate le versioni corrette degli assembly. Gli Assembly sono cruciali per la creazione di applicazioni .NET modulari, manutenibili e scalabili.