Dinamik Bağlantı Kitaplığı (DLL), İngilizce'den "dinamik bağlantı kitaplığı" olarak çevrilmiştir. DLL, paylaşılan bir kitaplığın işlevlerini yerine getiren yürütülebilir bir dosyadır. DLL, dinamik bağlantısı aracılığıyla, yürütülebilir kodun parçası olan bir işlevi çağırmak için bir yol sağlar.
Yürütülebilir işlev kodunun kendisi, kullanılan işlemlerde birkaç derlenmiş, bağlantılı ve depolanmış işlevi içeren bir DLL dosyasındadır. DLL, kaynakları ve verileri paylaşma sürecini basitleştirmeye hizmet eder. Sisteme yüklenen uygulamaların, aynı anda belleğe yüklenen DLL'nin tek bir kopyasının birden çok içeriğine erişmesini sağlar.
Modüler kodlama - DLL'lerin atası
Bir DLL oluşturma çalışmalarının başlangıcı, modüler kodlama gibi bir programlama yönteminin ortaya çıkması olarak kabul edilebilir. Bir zamanlar modüler kodlama, programcıların işini büyük ölçüde kolaylaştırdı ve her yeni program için aynı kodu birkaç kez yazmamayı mümkün kıldı. Tüm basit programlar, modüller şeklinde tasarlamaya başladıkları ve yeni uygulamalara ekledikleri birçok benzer kod içerir. Bir süre için modüler kodlama en basit ve en etkili çözümdü ve tek bir dezavantajı vardı. Programlara eklenen özdeş modüller, o günlerde kıt olan disk alanını kaplıyordu.
Sadece tek görevli işletim sistemleri varken, aynı modüllerde disk alanını boşa harcama sorunu tek sorundu. Windows gibi çok görevli işletim sistemlerinin ortaya çıkmasıyla birlikte başka bir sorun ortaya çıktı. Artık aynı koda sahip modüllere sahip programlar, aynı anda başlatıldığında, tüm kaynakları “yiyerek” RAM'e yüklemeye başladı. O zamanlar 500 megabaytlık bir bellek modülünün var olan en büyüğü olduğunu ve oldukça pahalı olduğunu belirtmekte fayda var. Ancak maksimum RAM boyutu bile kullanıcıları kurtarmadı, programlar RAM'i tamamen yükledi ve normal bilgisayar çalışmasını imkansız hale getirdi.
DLL'lerin ortaya çıkışı
Bu sorunlara iyi bir çözüm bulundu, şuna benziyordu: aynı koda sahip modüller ana programla bağlantı kurmayı bıraktı ve bunları gerektiğinde herhangi bir uygulama tarafından erişilebilen ayrı bir yürütülebilir dosyaya kaydetti. Herhangi bir programa dinamik olarak bağlanan DLL'lerin temelini oluşturan bu çözümdür. Artık yürütülebilir kodu bu kitaplıklarda işlevler veya prosedürler, grafikler ve hatta videolar şeklinde depolamak mümkündür, bu da disk alanından ve RAM kaynaklarından tasarruf etmeyi mümkün kılmıştır.
Dinamik bağlantı kitaplıklarının tek dezavantajı, programı yüklemek için fazladan zaman kaybıdır. Bu küçük dezavantaja ek olarak, DLL tek başına avantajlardan oluşur. Bu nedenle, bu kütüphaneler yaygın olarak kullanılmaktadır ve programcılar tarafından hemen hemen her uygulamada kullanılmaktadır.