En todas las tecnologías de este tipo, existen mecanismos para proveer al usuario de métodos que permitan incorporar funcionalidades de ficheros externos. Ésto, unido a la orientación a objetos, crea un problema: cómo organizar y referenciar todas las clases (ya hablaremos de clases más profundamente), de una forma sencilla y que no dé lugar a incoherencias.
Ensamblados
Para resolver este problema, la estructura en Mono (y en .NET) los ensamblados. Éstos pueden ser tanto ejecutables (con extensión .exe), como de librería (con extensión .dll). Ambas extensiones son una herencia de las tecnologías Microsoft desde los tiempos del MS-DOS. Los ensamblados son ficheros en donde se encuentran, compiladas en su lenguaje intermedio, una serie de clases.