Differenza tra assembly e DLL

Differenza tra assembly e DLL
Differenza tra assembly e DLL

Video: Differenza tra assembly e DLL

Video: Differenza tra assembly e DLL
Video: DLL | Cosa sono e a cosa servono 2024, Luglio
Anonim

Assembly vs DLL

Una libreria è una raccolta di risorse che possono essere utilizzate per sviluppare applicazioni. Una libreria è solitamente 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'uno all' altro. I file DLL sono i file di libreria collegati dinamicamente. DLL è stato sviluppato da Microsoft. Ma a causa di alcuni problemi presenti con i file DLL, Microsoft ha inventato 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. Utilizza le estensioni.dll,.ocx o.drv e vengono utilizzate nei sistemi operativi Microsoft Windows e OS/2..dll viene utilizzato dai normali file DLL. E l'estensione.ocx viene utilizzata dalle librerie che contengono controlli ActiveX e l'estensione.drv viene utilizzata dai file dei 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 in file DLL (proprio come nei file EXE). In effetti, 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 di 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à la 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 per risolvere diversi problemi presenti con i file DLL. I file assembly sono stati introdotti con il framework Microsoft. NET. Un'unità logica eseguibile di funzionalità è chiamata Assembly. Gli assembly sono eseguibili in. NET CLR (Common Language Runtime). Fisicamente, gli assembly esistono come file EXE o DLL. Ma internamente sono molto diverse dalle DLL di Microsoft Win32. Un file assembly è costituito da un manifest, metadati, MISL (codice Microsoft Intermediate Language) e altre risorse. Un'assemblea si autodescrive. Il manifest contiene informazioni quali nome, versione, impostazioni 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 dinamicamente. Sebbene gli assembly siano fisicamente uguali alle DLL, internamente sono molto diversi. Non è possibile mantenere la coerenza tra un set di DLL, ma CLR può mantenere la coerenza tra un set di assembly, poiché gli assembly sono autodescrittivi (contengono internamente l'elenco delle dipendenze). A differenza delle DLL, le informazioni sul controllo delle versioni vengono applicate agli assembly (dal CLR). La distribuzione affiancata (diverse applicazioni che utilizzano versioni diverse) è possibile con gli assiemi.

Consigliato: