Diferența între ansamblu și DLL

Adunarea vs DLL

O bibliotecă este o colecție de resurse care poate fi utilizată pentru a dezvolta aplicații. O bibliotecă este formată, de obicei, din subrutine, funcții, clase, valori și tipuri. În timpul procesului de conectare (de obicei realizat de un linker), bibliotecile și executabilele fac trimitere reciprocă. Fișiere DLL sunt fișiere de bibliotecă care sunt legate dinamic. DLL a fost dezvoltat de Microsoft. Dar din cauza unor probleme prezente cu fișiere DLL, Microsoft a venit cu formatul de fișier de asamblare (cu .NET framework). Fișierele de asamblare sunt foarte asemănătoare DLL-urilor fizice, dar au multe diferențe interne.

Ce este DLL?

Dinamic Link Library (mai cunoscută sub denumirea de DLL) este o implementare comună a bibliotecii dezvoltată de Microsoft. Utilizează extensiile .dll, .ocx sau .drv și sunt utilizate în sistemele de operare Microsoft Windows și OS / 2 ... dll este folosit de fișierele DLL obișnuite. Extensia .ocx este folosită de bibliotecile care conțin controale ActiveX, iar extensia .drv este folosită de fișierele driver-ului de sistem vechi. Formatul de fișier DLL este identic cu fișierele Windows EXE (fișiere portabile executabile pe Windows pe 32 de biți / 64 de biți și nou executabil pe 16 biți Windows). Prin urmare, orice combinație de cod, date și resurse poate fi conținută în fișierele DLL (la fel ca în fișierele EXE). Ca o bază de fapt, fișierele de date cu formatul de fișier DLL se numesc DLL de resurse. Bibliotecile de icoane (cu extensia .icl) și fișierele de fonturi (cu extensiile .fon și .fot) sunt exemple de DLL-uri de resurse.

Componentele numite secțiuni constituie un DLL și fiecare secțiune are propriile atribute, cum ar fi citire / scriere și executabil / neexecutabil. Secțiunile de cod sunt executabile, în timp ce secțiunile de date nu pot fi executate. Secțiunile de cod sunt partajate, iar secțiunile de date sunt private. Aceasta înseamnă că toate procesele care utilizează DLL vor folosi aceeași copie a codului, în timp ce fiecare proces va avea o copie proprie a datelor. Biblioteca dinamică primară pentru Windows este kernel32.dll, care conține funcțiile de bază (funcționalități legate de fișiere și memorie) pe Windows. COM (Model Object Component) este extensia DLL pentru OOP (Object Oriented Programming). DLL-urile convenționale sunt mai ușor de utilizat decât fișierele COM.

Ce este o Adunare?

Fișierele de asamblare au fost introduse de Microsoft pentru a rezolva mai multe probleme cu fișierele DLL. Fișierele de asamblare au fost introduse cu cadrul Microsoft .NET. O unitate logică executabilă de funcționalitate se numește Adunare. Ansamblurile sunt executabile sub .NET CLR (Common Language Runtime). Din punct de vedere fizic, ansamblurile există ca fișiere EXE sau DLL. Dar, acestea sunt foarte diferite de DLL-urile Microsoft Win32, pe plan intern. Un fișier de asamblare este alcătuit dintr-un manifest, metadate, MISL (codul limbii intermediare Microsoft) și alte resurse. Un ansamblu se auto-descrie. Manifestul conține informații precum numele, versiunea, cultura, numele puternic, lista fișierelor, tipurile și dependențele. Codul MISL este executat prin CLR (nu poate fi executat direct).

Care este diferența dintre asamblare și DLL?

DLL este o bibliotecă conectată dinamic. Deși ansamblurile sunt fizic egale cu DLL-urile, ele sunt foarte diferite pe plan intern. Nu este posibilă menținerea consecvenței între un set de DLL, dar CLR poate menține consecvența între un set de ansambluri, deoarece ansamblurile se auto-descriu (ele conțin lista dependențelor intern). Spre deosebire de DLL-uri, informațiile despre versiuni sunt impuse pentru ansambluri (de către CLR). Implementarea de la o parte la alta (diferite aplicații care utilizează versiuni diferite) este posibilă cu ansamblurile.