Un file Assembly .NET, solitamente identificato dalle estensioni '.dll' (Dynamic Link Library) o '.exe' (Executable), rappresenta un'unità di codice compilato scritto in un linguaggio .NET come C#, VB.NET o F#. Contiene codice in 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 costituiscono i blocchi fondamentali delle applicazioni .NET, offrendo un metodo per impacchettare e distribuire il codice, gestire il versionamento e definire i confini di sicurezza. Il runtime di .NET, ovvero il Common Language Runtime (CLR), esegue il codice CIL contenuto nell'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 assembly manifest, specificano il nome, la versione, la cultura, la chiave pubblica e le dipendenze dell'assembly stesso. Ciò consente al CLR di risolvere le dipendenze e garantire che vengano caricate le versioni corrette. Gli assembly sono essenziali per la creazione di applicazioni .NET modulari, manutenibili e scalabili.