Assembly vs DLL
Գրադարանը ռեսուրսների հավաքածու է, որը կարող է օգտագործվել հավելվածներ մշակելու համար: Գրադարանը սովորաբար կազմված է ենթածրագրերից, ֆունկցիաներից, դասերից, արժեքներից և տեսակներից: Կապակցման գործընթացում (սովորաբար կատարվում է կապող սարքի կողմից), գրադարաններն ու գործարկվողները հղում են կատարում միմյանց: DLL ֆայլերը գրադարանային ֆայլերն են, որոնք կապված են դինամիկ կերպով: DLL-ը մշակվել է Microsoft-ի կողմից: Սակայն DLL ֆայլերի հետ կապված որոշ խնդիրների պատճառով Microsoft-ը ստեղծեց Assembly ֆայլի ձևաչափը (. NET Framework-ով): Ասամբլեայի ֆայլերը ֆիզիկապես շատ նման են 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 ֆայլերը:
Ի՞նչ է Ասամբլեան?
Assembly ֆայլերը ներդրվել են Microsoft-ի կողմից՝ DLL ֆայլերի հետ կապված մի շարք խնդիրներ լուծելու համար: Ասամբլեայի ֆայլերը ներկայացվեցին Microsoft. NET Framework-ով: Ֆունկցիոնալության գործարկվող տրամաբանական միավորը կոչվում է ժողով: Համագումարները գործարկելի են. NET CLR (Common Language Runtime) ներքո: Ֆիզիկապես, հավաքները գոյություն ունեն որպես EXE կամ DLL ֆայլեր: Բայց դրանք շատ են տարբերվում Microsoft Win32 DLL-ներից, ներսից:Հավաքման ֆայլը կազմված է մանիֆեստից, մետատվյալներից, MISL-ից (Microsoft Intermediate Language Code) և այլ ռեսուրսներից: Համագումարը ինքն իրեն բնութագրող է: Մանիֆեստը պարունակում է այնպիսի տեղեկություններ, ինչպիսիք են անունը, տարբերակը, մշակույթը, ուժեղ անունը, ֆայլերի ցանկը, տեսակները և կախվածությունները: MISL կոդը կատարվում է CLR-ի միջոցով (այն չի կարող ուղղակիորեն գործարկվել):
Ո՞րն է տարբերությունը ժողովի և DLL-ի միջև:
DLL-ը դինամիկորեն կապված գրադարան է: Թեև հավաքները ֆիզիկապես հավասար են DLL-ներին, դրանք ներքին առումով շատ տարբեր են: Հնարավոր չէ հետևողականություն պահպանել DLL-ների մի շարքի միջև, բայց CLR-ն կարող է պահպանել մի շարք հավաքների միջև, քանի որ հավաքները ինքնանկարագրվող են (դրանք պարունակում են ներքին կախվածությունների ցանկը): Ի տարբերություն DLL-ների, տարբերակների մասին տեղեկատվությունը պարտադրվում է հավաքների համար (CLR-ի կողմից): Կողք-կողքի տեղակայումը (տարբեր հավելվածներ, որոնք օգտագործում են տարբեր տարբերակներ) հնարավոր է հավաքների միջոցով: