C# STATİK DLL KULLANIMI

0
C# STATİK DLL KULLANIMI

Herkese merhaba bu yazımızda C#’da bize bazı durumlarda yardımcı olabilecek bir konudan dll kullanımından bahsetmeye çalışacağız. Dll kullamak için Visual Stduio 2015’i kullanacağız burada kolaylıkla bir dll oluşturmak mümkün, çok basit daha sonra hazırladığımız dll’leri projelerimize ekleyeceğiz sınıf kullanıyormuş gibi bu dll’leri çok basit bir şekilde kullanacağız. Dll’ler tek başlarına çalışmazlar tek başlarına hiçbir işe yaramazlar ancak başka bir program tarafından kullanıldıklarında anlamlı olacaklardır. Yazılan bir dll’e istenilen bir programlama dilinden erişilebilir(tabi destekleyen diller), misal C#’da yazılan bir dll’e Java’dan erişmek mümkündür böylelikle farklı dillerde kod yazan insaların ortak hareket noktası olarakta kullanılabilir dll’ler.

Peki başka nelerden dolayı dll kullanmalıyız?

  • Dll kullanmalıyız çünkü tek bir dll yazarak bir çok sınıftan bu dll’e ulaşmamız mümkün olacaktır.
  • Yazılan Dll ram’e bir kere yüklenir ve orada kalır işimiz olduğu zaman kullanırız işimiz bitince dll’i ram’den atabiliriz (free etmek).
  • Bir program yazdığımızda bu programın alt programları aynı sınıfları kullanıyor ise her alt programı aynı fonksiyonu yazmaktansa tek bir dll yazarız ve tüm programlar bu dll’i kullanır yine bellekten avantaj sağlar.
  • Herhangi bir program yazıldığında bu programa güncellemelerin geleceği aşikardır, bundan ötürü program komple güncelleneceğine tek bir dll dosyası güncellenir ve bu bize hız sağlar komple bir programın güncelleneceği yere tek bir dll güncellemek daha kolay ve hızlı olacaktır.

Şimdi ise dinamik ve statik dll konularına bakalım;

Aslında statik ve dinamik dll olayı dll’i projemiz nasıl dahil ettiğimiz ile alakalı.

Statik Dll : Bu dll türünde dll el ile yolu gösterilerek çok kolay bir şekilde projeye dahil edilir. Eklenen dll statik eklendiği için kullanılsada kullanılmasada projede vardır ve ram’de yer işgal eder bu durum aslında statik yüklemenin en büyük dezavantajıdır. Statik yüklemede eğer bir şekilde dll bulunamaz ise program crash olur ve hata verir bu ikinici en büyük dezavantajdır. Bu dezavantajların dışındaki tüm durumlarda statik yüklene dll yukarıda bahsettiğimiz tüm avantajları sağlamaktadır.

Dinamik Dll : Profesyonel kullanıcılar için daha iyidir statik yüklemenin getirdiği tüm dez avantajları yok eder dll ile işimiz olduğunda gelir işimiz bitince ram’den silinir gereksiz yer işgal etmez. Program dll’i bulamadığı zaman çalışmasına devam eder crash olmaz.

 

Şimdi ilk ise artık Visual Studio’da dll nereden oluşturulur ona bakalım;

File -> New Project dedikten sonra şekil 1.1 de seçili olan Class Library tıklanır ve hepsi bu kadar artık dll kullanıma hazır.

Şekil 1.1

Daha sonra aşağıda ki kodlarda görüldüğü üzere bildiğimiz sınıf yapısı bizi karşılıyor bu sınıfın içine fonksiyonlarımızı yazarak ulaşıp istediğimiz işlemleri yapmamız mümkün olacak. Aşağıda ki kodda basit aritmetik işlemleri gerçekleştiren bir dll bulunuyor.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClassLibrary3
{
public class Class1
{

public int topla(int a,int b)
{
return a + b;
}
public int cikar(int a, int b)
{
return a - b;
}
public float bol(int a, int b)
{
if(b!=0)
{
return a / b;

}
else
{
return 0;
}
}
public int carp(int a, int b)
{
return a * b;
}

}
}

Şimdi bu dll’i ilk önce basit olan statik yükleme ile yükleyelim. Tabi yüklemeden önce dll’imizi bir kere derliyoruz ve bize bir hata veriyor dll’in tak başına çalışamayacağı ile ilgili tabi bu bizim için önemli değil biz zaten başka bir program ile birlikte kullanacağımız için.

Statik Dll Yükleme;

Project kısmından Add Reference diyoruz daha sonra şöyle bir ekran ile karşılaşıyoruz;

Şekil 1.2

Bu ekranda browse diyerek dll dosyamız neredeyse buluyoruz ve ekliyoruz misal benim bilgisayarımda C:\Users\Acer\Documents\Visual Studio 2015\Projects\ClassLibrary3\ClassLibrary3\bin\Debug\ClassLibrarry3.dll  yolunda.

Daha sonra dll’imiz seçildikten sonra ok diyoruz ve dll’imiz projemize dahil olmuş oluyor dahil olan bu dll’e ise birden fazla şekilde ulaşabiliriz.


private void button1_Click(object sender, EventArgs e)
{
ClassLibrary3.Class1 dllGetir = new ClassLibrary3.Class1();
dllGetir.topla(1,1);
dllGetir.cikar(1,1);
dllGetir.carp(1,1);
dllGetir.bol(1,1);

}

Bu gösterimde dll dosyamıza NameSpace.ClassName şeklinde bir nesne türeterek çağırabiliriz.

Bir diğer kullanım ise şu şekilde;


using ClassLibrary3; // Name Space i yukarıda tanımlayarak her seferinde yazmakta kurtuluyoruz ve sadece sınıf ismi ile çağırıyoruz dll'i.

private void button1_Click(object sender, EventArgs e)
{

Class1 dllGetir = new Class1();
dllGetir.topla(1,1);
dllGetir.cikar(1,1);
dllGetir.carp(1,1);
dllGetir.bol(1,1);

}

Bir sonraki yazıda dll nasıl dinamik yüklenir ondan bahsetmeye çalışacağım, herkese iyi çalışmalar.

 

LEAVE A REPLY