Assembly vs DLL
Una libreria è una raccolta di risorse che possono essere utilizzate per sviluppare applicazioni. Una libreria di solito è composta da subroutine, funzioni, classi, valori e tipi. Durante il processo di collegamento (solitamente eseguito da un linker), le librerie e gli eseguibili fanno riferimento l'un l'altro. I file DLL sono i file di libreria che sono collegati dinamicamente. DLL è stata sviluppata da Microsoft. Ma a causa di alcuni problemi presenti con i file DLL, Microsoft si avvicinò con il formato di file Assembly (con il framework .NET). I file Assembly sono molto simili alle DLL fisicamente, ma presentano molte differenze interne.
Cos'è la DLL?
Dynamic Link Library (più comunemente noto come DLL) è un'implementazione di libreria condivisa sviluppata da Microsoft. Usa le estensioni .dll, .ocx o .drv e sono usate nei sistemi operativi Microsoft Windows e OS / 2 ... dll è usato dai normali file DLL. L'estensione .ocx viene utilizzata dalle librerie contenenti controlli ActiveX e l'estensione .drv viene utilizzata dai file del driver di sistema legacy. Il formato del file DLL è lo stesso dei file EXE di Windows (file eseguibili portatili su Windows a 32 bit / 64 bit e Nuovo eseguibile su Windows a 16 bit). Pertanto, qualsiasi combinazione di codice, dati e risorse può essere contenuta nei file DLL (proprio come nei file EXE). Come dato di fatto, i file di dati con il formato di file DLL sono chiamati DLL di risorse. Le librerie di icone (con estensione .icl) e i file di font (con estensione .fon e .fot) sono esempi di DLL di risorse.
I componenti chiamati sezioni costituiscono una DLL e ogni sezione ha i propri attributi come sola lettura / scrivibile ed eseguibile / non eseguibile. Le sezioni di codice sono eseguibili, mentre le sezioni di dati non sono eseguibili. Le sezioni di codice sono condivise e le sezioni di dati sono private. Ciò significa che tutti i processi che utilizzano la DLL utilizzeranno la stessa copia del codice, mentre ogni processo avrà una propria copia dei dati. La libreria dinamica principale per Windows è kernel32.dll, che contiene le funzioni di base (funzionalità relative a file e memoria) su Windows. COM (Component Object Model) è l'estensione della DLL a OOP (Object Oriented Programming). Le DLL convenzionali sono più facili da usare rispetto ai file COM.
Cos'è un Assemblea?
I file Assembly sono stati introdotti da Microsoft al fine di risolvere diversi problemi presenti con i file DLL. I file Assembly sono stati introdotti con il framework Microsoft .NET. Un'unità logica di funzionalità eseguibile è chiamata Assembly. Gli assembly sono eseguibili sotto .NET CLR (Common Language Runtime). Fisicamente, gli assembly esistono come file EXE o DLL. Ma sono molto diversi dalle DLL Microsoft Win32, internamente. Un file assembly è composto da un manifest, metadati, MISL (codice Microsoft Intermediate Language) e altre risorse. Un assemblaggio è auto-descrittivo. Il manifest contiene informazioni come nome, versione, cultura, nome sicuro, elenco di file, tipi e dipendenze. Il codice MISL viene eseguito tramite CLR (non può essere eseguito direttamente).
Qual è la differenza tra Assembly e DLL?
DLL è una libreria collegata in modo dinamico. Sebbene gli assembly siano fisicamente uguali alle DLL, sono molto diversi internamente. Non è possibile mantenere la coerenza tra un set di DLL, ma il CLR può mantenere la coerenza tra un insieme di assembly, poiché gli assembly sono auto-descrittivi (contengono l'elenco di dipendenze internamente). A differenza delle DLL, le informazioni sulla versione vengono applicate agli assembly (dal CLR). La distribuzione affiancata (diverse applicazioni che utilizzano versioni diverse) è possibile con gli assembly.