Асамблея проти DLL
Бібліотека - це сукупність ресурсів, які можна використовувати для розробки додатків. Бібліотека зазвичай складається з підпрограм, функцій, класів, значень та типів. Під час процесу зв’язування (зазвичай це робиться лінкером) бібліотеки та виконавчі файли посилаються один на одного. DLL-файли - це бібліотечні файли, які динамічно пов'язані. DLL був розроблений Microsoft. Але через деякі проблеми, що виникають у файлах DLL, Microsoft придумала формат файлу асамблеї (із рамкою .NET). Файли складання фізично дуже схожі на DLL, але вони мають багато внутрішніх відмінностей.
Що таке DLL?
Динамічна бібліотека посилань (більш відома як DLL) - це спільна бібліотечна реалізація, розроблена Microsoft. Він використовує розширення .dll, .ocx або .drv, і вони використовуються в операційних системах Microsoft Windows і OS / 2 ... dll використовується звичайними файлами DLL. І .ocx-розширення використовується бібліотеками, що містять елементи керування ActiveX, а розширення .drv використовується застарілими файлами драйверів системи. Формат файлу DLL такий же, як файли Windows EXE (Портативні файли, що виконуються в 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 (Об'єктно-орієнтоване програмування). Звичайні DLL простіші у використанні, ніж файли COM.
Що таке Асамблея?
Майкрософт ввів файли складання, щоб вирішити декілька проблем, що виникають з файлами DLL. Файли складання були представлені в рамках Microsoft .NET. Виконаний логічний блок функціональності називається збором. Збори виконуються під .NET CLR (загальна мова виконання). Фізично збірки існують як файли EXE або DLL. Але вони сильно відрізняються від DLL-файлів Microsoft Win32 всередині. Файл складання складається з маніфесту, метаданих, MISL (код проміжного мови Microsoft) та інших ресурсів. Збірка самоописується. Маніфест містить таку інформацію, як ім'я, версія, культура, назви, список файлів, типи та залежності. Код MISL виконується через CLR (він не може бути безпосередньо виконаний).
Яка різниця між складанням та DLL?
DLL - динамічно пов'язана бібліотека. Хоча збірки фізично дорівнюють DLL, усередині них вони дуже різні. Неможливо підтримувати узгодженість між набором DLL, але CLR може підтримувати узгодженість між набором збірок, оскільки збірки є самоописуються (вони містять список залежностей всередині). На відміну від DLL, інформація про версії застосовується для збірок (CLR). Побічне розгортання (різні програми, що використовують різні версії) можливе за допомогою збірок.