Assembly
Una tra le domande più frequenti dei nuovi programmatori in ambiente .NET è “Che cos’è un assembly?”.
Un assembly può essere visto da due punti di vista differenti, uno fisico e uno logico.
Dal punto di vista fisico, un assembly non è altro che un insieme di moduli eseguibili e non eseguibili (immagini, pagine HTML, file di risorsa ecc.).
Dal punto di vista logico, invece, un assembly è la più piccola unità riutilizzabile e distribuibile, con la stessa versione. Infatti le caratteristiche di un assembly sono principalmente:
- tutti i tipi e gli elementi dei moduli utilizzati insieme devono essere inseriti nell’assembly
- tutti gli elementi contenuti nell’assembly fanno parte della stessa versione
- definisce quali sono i tipi visibili all’esterno del modulo in cui sono definiti, ma che non sono visibili all’esterno (vedi modificatore di accesso Friend).
Ma alla fine, come è fatto un assembly? Esternamente vediamo che si tratta di un file eseguibile (EXE) oppure di una libreria (DLL). Non una libreria da registrare nel registro di sistema di Windows, però: con il Framework .NET non esiste più il cosiddetto “inferno delle DLL” (DLL hell), cioè il rischio di danneggiare una o più applicazioni, installando una nuova versione di una DLL, per esempio con un nuovo programma.
Ne riparleremo.