Assembly vs DLL
Kitaplık, uygulamalar geliştirmek için kullanılabilecek bir kaynak koleksiyonudur. Bir kitaplık genellikle alt programlardan, işlevlerden, sınıflardan, değerlerden ve türlerden oluşur. Bağlama işlemi sırasında (genellikle bir bağlayıcı tarafından yapılır), kitaplıklar ve yürütülebilir dosyalar birbirlerine başvuruda bulunur. DLL dosyaları, dinamik olarak bağlanan kitaplık dosyalarıdır. DLL, Microsoft tarafından geliştirilmiştir. Ancak DLL dosyalarındaki bazı sorunlar nedeniyle Microsoft, Assembly dosya biçimini (. NET çerçevesiyle) buldu. Derleme dosyaları fiziksel olarak DLL'lere çok benzer, ancak birçok dahili farklılıkları vardır.
DLL nedir?
Dinamik Bağlantı Kitaplığı (daha yaygın olarak DLL olarak bilinir), Microsoft tarafından geliştirilen bir paylaşılan kitaplık uygulamasıdır..dll,.ocx veya.drv uzantılarını kullanır ve bunlar Microsoft Windows ve OS/2 işletim sistemlerinde kullanılır..dll, normal DLL dosyaları tarafından kullanılır. Ve.ocx uzantısı, ActiveX denetimlerini içeren kitaplıklar tarafından,.drv uzantısı ise eski sistem sürücü dosyaları tarafından kullanılır. DLL dosya biçimi, Windows EXE dosyalarıyla aynıdır (32-bit/64-bit Windows'ta Taşınabilir Yürütülebilir dosyalar ve 16bit Windows'ta Yeni Yürütülebilir dosyalar). Bu nedenle, herhangi bir kod, veri ve kaynak kombinasyonu DLL dosyalarında bulunabilir (tıpkı EXE dosyalarında olduğu gibi). Nitekim DLL dosya formatına sahip veri dosyalarına kaynak DLL'leri denir. Simge kitaplıkları (.icl uzantılı) ve yazı tipi dosyaları (.fon ve.fot uzantılı), kaynak DLL'lerinin örnekleridir.
Bölüm adı verilen bileşenler bir DLL oluşturur ve her bölümün s alt okunur/yazılabilir ve yürütülebilir/çalıştırılamaz gibi kendi öznitelikleri vardır. Kod bölümleri yürütülebilirken, veri bölümleri yürütülemez. Kod bölümleri paylaşılır ve veri bölümleri özeldir. Bu, DLL'yi kullanan tüm işlemlerin kodun aynı kopyasını kullanacağı ve her işlemin kendi veri kopyasına sahip olacağı anlamına gelir. Windows için birincil dinamik kitaplık, Windows'taki temel işlevleri (dosya ve bellekle ilgili işlevsellik) içeren kernel32.dll'dir. COM (Bileşen Nesne Modeli), DLL'nin OOP'ye (Nesne Yönelimli Programlama) uzantısıdır. Geleneksel DLL'lerin kullanımı COM dosyalarından daha kolaydır.
Montaj nedir?
Assembly dosyaları, DLL dosyalarında bulunan çeşitli sorunları çözmek için Microsoft tarafından tanıtıldı. Derleme dosyaları Microsoft. NET çerçevesiyle tanıtıldı. Yürütülebilir bir mantıksal işlevsellik birimine Derleme denir. Derlemeler,. NET CLR (Common Language Runtime) altında yürütülebilir. Fiziksel olarak, derlemeler EXE veya DLL dosyaları olarak bulunur. Ancak, dahili olarak Microsoft Win32 DLL'lerinden çok farklıdırlar. Bir derleme dosyası bir bildirim, meta veriler, MISL (Microsoft Orta Düzey Dil kodu) ve diğer kaynaklardan oluşur. Bir derleme kendi kendini tanımlar. Manifest, ad, sürüm, kültür, tanımlayıcı ad, dosya listesi, türler ve bağımlılıklar gibi bilgileri içerir. MISL kodu CLR aracılığıyla yürütülür (doğrudan yürütülemez).
Montaj ve DLL arasındaki fark nedir?
DLL dinamik olarak bağlantılı bir kitaplıktır. Derlemeler fiziksel olarak DLL'lere eşit olsa da, dahili olarak çok farklıdırlar. Bir DLL kümesi arasında tutarlılığı korumak mümkün değildir, ancak derlemeler kendi kendini tanımladığından (dahili olarak bağımlılık listesini içerirler) CLR bir dizi derleme arasında tutarlılığı koruyabilir. DLL'lerden farklı olarak, derlemeler için sürüm bilgileri uygulanır (CLR tarafından). Montajlarla yan yana dağıtım (farklı sürümleri kullanan farklı uygulamalar) mümkündür.