Eine .dll-Datei (Dynamic Link Library) ist eine Bibliothek, die Code und Daten enthält, welche gleichzeitig von mehreren Programmen genutzt werden können. Im Kontext von .NET repräsentiert eine .dll-Datei eine .NET Assembly. Diese Assemblies enthalten kompilierten Code, der in Sprachen wie C#, VB.NET oder F# geschrieben wurde, zusammen mit Metadaten, welche die Typen, Methoden und Ressourcen innerhalb der Assembly beschreiben. Diese Metadaten, bekannt als Assembly-Manifest, ermöglichen es der .NET Common Language Runtime (CLR), den Code zu verwalten und auszuführen. .NET Assemblies sind ein fundamentaler Baustein von .NET-Anwendungen und fördern die Wiederverwendbarkeit von Code (Code Reusability), Modularität und Versionierung. Sie können Klassen, Schnittstellen (Interfaces), Strukturen, Enumerationen und andere Typen enthalten. Wenn eine Anwendung Funktionalität benötigt, die von einer .NET Assembly bereitgestellt wird, lädt sie die Assembly in den Speicher und greift auf ihre Mitglieder (Members) zu. .NET Assemblies können entweder privat (spezifisch für eine Anwendung) oder gemeinsam genutzt (Shared) werden, indem sie im Global Assembly Cache (GAC) installiert und somit für mehrere Anwendungen zugänglich sind.