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: Новички в C #: - Сборка, EXE и DLL 2024, Aprile
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 (di solito 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 creato il formato di file Assembly (con il framework. NET). I file di assembly sono fisicamente molto simili alle DLL, 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 nei file DLL (proprio come nei file EXE). 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 file di font (con estensioni.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à la propria copia dei dati. La libreria dinamica primaria 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 di funzionalità eseguibile è chiamata Assembly. Gli assembly sono eseguibili in. NET CLR (Common Language Runtime). Fisicamente, gli assembly esistono come file EXE o DLL. Tuttavia, sono molto diverse dalle DLL Microsoft Win32, internamente. Un file assembly è costituito da un manifesto, metadati, MISL (codice Microsoft Intermediate Language) e altre risorse. Un'assemblea si descrive da sola. Il manifest contiene informazioni quali 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 dinamicamente. Sebbene gli assembly siano fisicamente uguali alle DLL, sono molto diversi internamente. Non è possibile mantenere la coerenza tra un set di DLL, ma CLR può mantenere la coerenza tra un set di assembly, perché gli assembly si descrivono da soli (contengono l'elenco delle dipendenze internamente). A differenza delle DLL, le informazioni sul controllo delle versioni vengono applicate agli assembly (dal CLR). La distribuzione side-by-side (applicazioni diverse che utilizzano versioni diverse) è possibile con gli assembly.

Raccomandato: