Differenza tra assemblaggio e DLL

Anonim

Assembly vs DLL

Una libreria è una raccolta di risorse che possono essere utilizzate per sviluppare applicazioni. Una libreria è di solito costituita da subroutine, funzioni, classi, valori e tipi. Durante il processo di collegamento (di solito fatto da un linker), le librerie e gli eseguibili si fanno riferimento reciprocamente. I file DLL sono i file della libreria collegati dinamicamente. La DLL è stata sviluppata da Microsoft. Ma a causa di alcuni problemi presenti con i file DLL, Microsoft ha presentato il formato di file Assembly (con il framework.NET). I file di assemblea sono molto simili alle DLL fisicamente, ma hanno molte differenze interne.

Che cosa è DLL?

La libreria di collegamento dinamico (più comunemente denominata DLL) è un'implementazione della libreria condivisa sviluppata da Microsoft. Usa il. dll,. ocx o. drv e vengono utilizzati nei sistemi operativi Microsoft Windows e OS / 2 … il dll viene utilizzato dai file DLL normali. E. L'estensione ocx viene utilizzata dalle librerie che contengono controlli ActiveX e. l'estensione drv viene utilizzata dai file del driver di sistema legacy. Il formato di file DLL è lo stesso dei file EXE di Windows (file Portable Executable in Windows a 32 bit / 64 bit e Nuovo eseguibile su 16 bit di Windows). Pertanto, qualsiasi combinazione di codice, dati e risorse può essere contenuta in file DLL (proprio come nei file EXE). In realtà, i file di dati con il formato di file DLL sono chiamati DLL di risorse. Le librerie di icone (con estensione icl) e file di carattere (con estensioni fon e fot fotografico) sono esempi di DLL di risorse.

I componenti chiamati sezioni costituiscono una DLL e ogni sezione ha i propri attributi come read-only / writable ed eseguibile / non eseguibile. Le sezioni di codice sono eseguibili, mentre le sezioni dei dati non sono eseguibili. Le sezioni del codice sono condivise e le sezioni dei 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 primaria per Windows è kernel32. dll, che contiene le funzioni di base (file e funzionalità correlate alla memoria) in Windows. COM (Component Object Model) è l'estensione della DLL a OOP (Object Oriented Programming). DLL convenzionali sono più facili da usare rispetto ai file COM.

Che cos'è una Assemblea?

I file di assembly sono stati introdotti da Microsoft per risolvere diversi problemi presenti nei file DLL. I file di assembly sono stati introdotti con Microsoft. NET Framework. Un'unità logica di funzionalità eseguibile viene chiamata Assemblea. Le assemblee sono eseguibili sotto. NET CLR (Common Language Runtime). Fisicamente, gli assembly esistono come file EXE o DLL. Ma, sono molto diversi da DLL Microsoft Win32, internamente. Un file di assembly è costituito da un manifesto, metadati, MISL (codice Microsoft Intermediate Language) e altre risorse.Un gruppo è auto-descrittivo. Il manifesto contiene le informazioni come il nome, la versione, la cultura, il nome forte, l'elenco dei file, i tipi e le dipendenze. Il codice MISL viene eseguito tramite CLR (non può essere eseguito direttamente).

Qual è la differenza tra Assembly e DLL?

DLL è una libreria dinamica collegata. Anche se le assemblee sono fisicamente uguali a DLL, sono molto diverse all'interno. Non è possibile mantenere la coerenza tra un insieme di DLL, ma il CLR può mantenere la coerenza tra un insieme di assemblee, in quanto gli assembly sono autorecenti (contengono l'elenco delle dipendenze internamente). A differenza di DLL, le informazioni sulla versione sono eseguite per gli assembly (dal CLR). L'implementazione side-by-side (diverse applicazioni che utilizzano diverse versioni) è possibile con gli assemblaggi.