Milyen a WIN32-es könyvtár?
Egy Win32-es könyvtár alapvetően függvényeket és eljárásokat tartalmaz. Ekkor megoldható az, hogy a matematikai rutinokat (sinus, négyzetgyök, stb.) ne minden program (.exe) tartalmazza, hanem kitegyék egy közösen, mindenki által használható ’.dll’ fájlba (pl. math.dll) lefordított állapotban, és minden program ezt a könyvtárat használja.
Ennek több előnye van, pl. a programok kevesebb helyet foglalnak el a lemezen, valamint ha egyszerre több program is fut párhuzamosan, akkor a memóriában is kevesebb helyet foglalnak el, mivel a ’.dll’-t csak egyszer tölti be a Windows a memóriába.
Azonban a Win32-es típusú dll-ek nem önleíróak. Vagyis egy ’.dll’ a dokumentáció nélkül nem használható. Ugyan van rá lehetőség, hogy kilistázzuk a benne lévő függvények és eljárások neveit, de nincs rá lehetőség, hogy azok paraméterezését, visszatérési típusát meghatározzuk – a feladatáról nem is beszélve.
A könyvtárak (library) kódot tartalmazó, de önállóan nem futtatható állományok. Jellemző kiterjesztésük ’.dll’ a Windows-os környezetben. A ’dll’ a Dynamic Link Library rövidítése (dinamikusan betölthető könyvtár).
A dinamikus betöltés arra utal, hogy a fő program indulása után futás közben keresi meg és csatolja magához az egyéb könyvtárakat.
Milyen egy .NET-es könyvtár?
A .NET világában a könyvtárak szintén ’.dll’ kiterjesztéssel rendelkeznek, és szintén futás közben töltődnek be a programokhoz. De ezzel a hasonlóság a Win32-es dll-ekkel meg is szűnik.
Egy .NET könyvtár (más néven assembly = szerelvény) objektumosztályokat tartalmaz, melyeknek adattagjaik és metódusaik vannak. Ezen objektumosztályokat általában lehetőségünk van akár az öröklődés segítségével tovább is fejleszteni. Gyakoribb eset, hogy egyszerűen példányokat hozunk létre ezen típusokból, és használjuk őket.
Egy assembly teljesen önleíró. Vagyis megfelelő segédeszközzel felderíthető, milyen nevű osztályok vannak benne, melyik osztálynak milyen mezői vannak, azoknak mik a típusaik, stb. A metódusok nevei, paraméterezése, visszatérési típusai is listázhatóak.
Milyen egy webkönyvtár?
A .NET világában a web szolgáltatásokhoz is könyvtár készíthető. A web szolgáltatások szintén eljárás- és függvénygyűjtemények, csak épp a kódot nem kapjuk meg, az a web szerveren marad. Ugyanakkor lehetőségünk van a függvényeket meghívni. Ennek során a paraméterek a hálózaton átvándorolnak a web szervizt üzemeltető web szerverhez, az lefuttatja a kódot, és a kapott visszatérési értéket visszaküldi nekünk.
Ennek megfelelően egy web szolgáltatást leíró assembly tartalmazza a szóban forgó web szerviz minden függvényét és eljárását, azok neveit, paraméterezését, minden egyéb információt. De a benne lévő függvények törzse nem hagyományos kód, hanem pontosan azt tartalmazza, amit fent leírtunk: a paramétereket elküldi és fogadja a választ. Így nekünk, akik a web szolgáltatás dll-jében lévő függvényeket használjuk, ezzel a háttérfolyamattal nem kell törődnünk, azt rendezi a dll maga.