Assembly va DLL
Kutubxona bu ilovalarni ishlab chiqish uchun ishlatilishi mumkin boʻlgan resurslar toʻplamidir. Kutubxona odatda quyi dasturlar, funksiyalar, sinflar, qiymatlar va turlardan iborat. Bog'lanish jarayonida (odatda bog'lovchi tomonidan amalga oshiriladi) kutubxonalar va bajariladigan fayllar bir-biriga havola qiladi. DLL fayllari dinamik ravishda bog'langan kutubxona fayllari. DLL Microsoft tomonidan ishlab chiqilgan. Ammo DLL fayllari bilan bog'liq ba'zi muammolar tufayli Microsoft Assembly fayl formatini (. NET Framework bilan) taklif qildi. Yig'ish fayllari jismoniy jihatdan DLL fayllariga juda o'xshaydi, lekin ularda juda ko'p ichki farqlar mavjud.
DLL nima?
Dynamic Link Library (koʻproq DLL nomi bilan tanilgan) Microsoft tomonidan ishlab chiqilgan umumiy kutubxona ilovasi. U.dll,.ocx yoki.drv kengaytmalaridan foydalanadi va ular Microsoft Windows va OS/2 operatsion tizimlarida qo'llaniladi..dll oddiy DLL fayllari tomonidan ishlatiladi. Va.ocx kengaytmasi ActiveX boshqaruvlarini o'z ichiga olgan kutubxonalar tomonidan ishlatiladi va.drv kengaytmasi eski tizim drayverlari fayllari tomonidan qo'llaniladi. DLL fayl formati Windows EXE fayllari bilan bir xil (32-bit/64-bit Windows-da portativ bajariladigan fayllar va 16-bit Windows-da yangi bajariladigan fayllar). Shuning uchun kod, ma'lumotlar va resurslarning har qanday kombinatsiyasi DLL fayllarida bo'lishi mumkin (xuddi EXE fayllaridagi kabi). Aslida, DLL fayl formatiga ega ma'lumotlar fayllari DLL resurslari deb ataladi. Belgilar kutubxonalari (.icl kengaytmali) va shrift fayllari (.fon va.fot kengaytmalari bilan) manba DLL-lariga misoldir.
Bo'limlar deb ataladigan komponentlar DLL-ni tashkil qiladi va har bir bo'lim faqat o'qish/yozish va bajariladigan/bajarish mumkin bo'lmagan kabi o'z atributlariga ega. Kod bo'limlari bajarilishi mumkin, ma'lumotlar bo'limlari esa bajarilmaydi. Kod bo'limlari umumiy va ma'lumotlar bo'limlari shaxsiydir. Bu shuni anglatadiki, DLL-dan foydalanadigan barcha jarayonlar kodning bir xil nusxasidan foydalanadi, har bir jarayon esa ma'lumotlarning o'ziga xos nusxasiga ega bo'ladi. Windows uchun asosiy dinamik kutubxona kernel32.dll bo'lib, u Windows tizimidagi asosiy funktsiyalarni (fayl va xotira bilan bog'liq funksiyalar) o'z ichiga oladi. COM (Component Object Model) - bu DLL-ning OOP (ob'ektga yo'n altirilgan dasturlash) ga kengaytmasi. An'anaviy DLL-lardan foydalanish COM fayllarga qaraganda osonroq.
Asambleya nima?
Assembly fayllari Microsoft tomonidan DLL fayllari bilan bog'liq bir qancha muammolarni hal qilish uchun kiritilgan. Assembly fayllari Microsoft. NET Framework bilan tanishtirildi. Funktsionallikning bajariladigan mantiqiy birligi Assambleya deb ataladi. Assambleyalar. NET CLR (Common Language Runtime) ostida bajariladi. Jismoniy jihatdan yig'ilishlar EXE yoki DLL fayllari sifatida mavjud. Biroq, ular ichki Microsoft Win32 DLL-laridan juda farq qiladi. Assambleya fayli manifest, metadata, MISL (Microsoft Intermediate Language code) va boshqa resurslardan iborat. Assambleya o'zini o'zi tavsiflaydi. Manifestda nom, versiya, madaniyat, kuchli nom, fayllar ro'yxati, turlar va bog'liqliklar kabi ma'lumotlar mavjud. MISL kodi CLR orqali amalga oshiriladi (uni bevosita bajarib bo'lmaydi).
Assembly va DLL oʻrtasidagi farq nima?
DLL - bu dinamik bog'langan kutubxona. Assambleyalar jismonan DLL-larga teng bo'lsa-da, ular ichki jihatdan juda farq qiladi. DLLlar to'plami o'rtasida izchillikni saqlab bo'lmaydi, lekin CLR yig'ilishlar to'plami o'rtasidagi muvofiqlikni saqlab turishi mumkin, chunki assemblies o'zini o'zi tavsiflaydi (ular ichki bog'liqliklar ro'yxatini o'z ichiga oladi). DLL-lardan farqli o'laroq, versiya ma'lumotlari yig'ilishlar uchun (CLR tomonidan) amalga oshiriladi. Assambleyalar bilan yonma-yon joylashtirish (turli versiyalardan foydalanadigan turli ilovalar) mumkin.