Assembly vs DLL
Una biblioteca és una col·lecció de recursos que es poden utilitzar per desenvolupar aplicacions. Una biblioteca normalment està formada per subrutines, funcions, classes, valors i tipus. Durant el procés d'enllaç (normalment realitzat per un enllaçador), les biblioteques i els executables fan referència entre si. Els fitxers DLL són els fitxers de la biblioteca que estan enllaçats de manera dinàmica. DLL va ser desenvolupat per Microsoft. Però a causa d'alguns problemes presents amb els fitxers DLL, Microsoft va crear un format de fitxer Assembly (amb el marc. NET). Els fitxers d'assemblatge són molt semblants als DLL físicament, però tenen moltes diferències internes.
Què és DLL?
Dynamic Link Library (més coneguda com a DLL) és una implementació de biblioteca compartida desenvolupada per Microsoft. Utilitza les extensions.dll,.ocx o.drv i s'utilitzen en sistemes operatius Microsoft Windows i OS/2. Els fitxers DLL habituals utilitzen.dll. I l'extensió.ocx l'utilitzen les biblioteques que contenen controls ActiveX i l'extensió.drv els fitxers de controladors del sistema heretats. El format del fitxer DLL és el mateix que els fitxers EXE de Windows (fitxers executables portàtils a Windows de 32/64 bits i nou executable a Windows de 16 bits). Per tant, qualsevol combinació de codi, dades i recursos es pot contenir als fitxers DLL (igual que als fitxers EXE). De fet, els fitxers de dades amb el format de fitxer DLL s'anomenen DLL de recursos. Les biblioteques d'icones (amb extensió.icl) i els fitxers de tipus de lletra (amb extensions.fon i.fot) són exemples de DLL de recursos.
Els components anomenats seccions formen una DLL i cada secció té els seus propis atributs com ara només lectura/escriptura i executable/no executable. Les seccions de codi són executables, mentre que les seccions de dades no són executables. Les seccions de codi es comparteixen i les seccions de dades són privades. Això vol dir que tots els processos que utilitzen la DLL utilitzaran la mateixa còpia del codi, mentre que cada procés tindrà la seva pròpia còpia de les dades. La biblioteca dinàmica principal per a Windows és kernel32.dll, que conté les funcions bàsiques (funcionalitat relacionada amb fitxers i memòria) a Windows. COM (Component Object Model) és l'extensió de DLL a OOP (Programació Orientada a Objectes). Les DLL convencionals són més fàcils d'utilitzar que els fitxers COM.
Què és una assemblea?
Els fitxers de muntatge van ser introduïts per Microsoft per resoldre diversos problemes presents amb els fitxers DLL. Els fitxers de muntatge es van introduir amb el Microsoft. NET framework. Una unitat lògica de funcionalitat executable s'anomena Assembly. Els assemblatges són executables sota. NET CLR (Common Language Runtime). Físicament, els conjunts existeixen com a fitxers EXE o DLL. Però, internament, són molt diferents a les DLL de Microsoft Win32. Un fitxer de muntatge està format per un manifest, metadades, MISL (codi de Microsoft Intermediate Language) i altres recursos. Una assemblea es descriu a si mateixa. El manifest conté informació com ara el nom, la versió, la cultura, el nom segur, la llista de fitxers, els tipus i les dependències. El codi MISL s'executa mitjançant CLR (no es pot executar directament).
Quina diferència hi ha entre el muntatge i el DLL?
DLL és una biblioteca enllaçada dinàmicament. Tot i que els conjunts són físicament iguals als DLL, són molt diferents internament. No és possible mantenir la coherència entre un conjunt de DLL, però el CLR pot mantenir la coherència entre un conjunt de conjunts, perquè els conjunts es descriuen a si mateixos (contenen la llista de dependències internament). A diferència de les DLL, la informació de versions s'aplica als assemblatges (pel CLR). El desplegament paral·lel (aplicacions diferents amb versions diferents) és possible amb els muntatges.