Сглобяване срещу DLL
Библиотеката е колекция от ресурси, които могат да се използват за разработване на приложения. Библиотеката обикновено се състои от подпрограми, функции, класове, стойности и типове. По време на процеса на свързване (обикновено извършван от линкер), библиотеките и изпълнимите файлове се препращат един към друг. DLL файловете са библиотечни файлове, които са свързани динамично. DLL е разработен от Microsoft. Но поради някои проблеми, съществуващи с DLL файловете, Microsoft излезе с файлов формат за сглобяване (с. NET framework). Асемблиращите файлове са много подобни на DLL физически, но имат много вътрешни разлики.
Какво е DLL?
Dynamic Link Library (по-известна като DLL) е реализация на споделена библиотека, разработена от Microsoft. Той използва разширенията.dll,.ocx или.drv и те се използват в операционните системи Microsoft Windows и OS/2..dll се използва от обикновените DLL файлове. Разширението.ocx се използва от библиотеките, които съдържат ActiveX контроли, а разширението.drv се използва от файловете на наследени системни драйвери. DLL файловият формат е същият като EXE файловете на Windows (преносими изпълними файлове на 32-битов/64-битов Windows и нов изпълним файл на 16-битов Windows). Следователно всяка комбинация от код, данни и ресурси може да се съдържа в DLL файлове (точно както в EXE файлове). Всъщност файловете с данни с DLL файлов формат се наричат ресурсни DLL. Библиотеки с икони (с разширение.icl) и файлове с шрифтове (с разширения.fon и.fot) са примери за DLL файлове за ресурси.
Компонентите, наречени раздели, съставят DLL и всеки раздел има свои собствени атрибути като само за четене/запис и изпълним/неизпълним. Секциите с код са изпълними, докато секциите с данни не са изпълними. Секциите с код са споделени, а секциите с данни са лични. Това означава, че всички процеси, използващи DLL, ще използват едно и също копие на кода, докато всеки процес ще има свое собствено копие на данните. Основната динамична библиотека за Windows е kernel32.dll, която съдържа основните функции (функционалност, свързана с файлове и памет) на Windows. COM (Component Object Model) е разширението на DLL към OOP (Object Oriented Programming). Конвенционалните DLL файлове са по-лесни за използване от COM файловете.
Какво е събрание?
Файловете за сглобяване бяха въведени от Microsoft, за да решат няколко проблема, съществуващи с DLL файловете. Асемблиращите файлове бяха въведени с Microsoft. NET framework. Изпълнима логическа функционална единица се нарича сборка. Асемблите са изпълними под. NET CLR (Common Language Runtime). Физически сглобките съществуват като EXE или DLL файлове. Но те са много различни от Microsoft Win32 DLL, вътрешно. Файлът за сглобяване се състои от манифест, метаданни, MISL (код на междинния език на Microsoft) и други ресурси. Сглобяването се самоописва. Манифестът съдържа информация като име, версия, култура, силно име, списък с файлове, типове и зависимости. MISL кодът се изпълнява чрез CLR (не може да се изпълнява директно).
Каква е разликата между асемблиране и DLL?
DLL е динамично свързана библиотека. Въпреки че сглобките са физически равни на DLL, те са много различни вътрешно. Не е възможно да се поддържа съгласуваност между набор от DLL, но CLR може да поддържа съгласуваност между набор от сглобки, тъй като сглобките се самоописват (те съдържат списъка със зависимости вътрешно). За разлика от DLL файловете, информацията за версиите се налага за асембли (от CLR). Паралелно внедряване (различни приложения, използващи различни версии) е възможно със сглобки.