C# DLL Nedir ? DLL Oluşturma ve Kullanma

0
6868

Bu yazımızda dll nedir, nasıl kullanılır gibi tanımlamaları yapacağız. Ardından da örnek bir kütüphane oluşturma uygulamasını yapacağız. Açılımı Dynamic Link Library olan bir kütüphanedir.

Programlamada aynı kod satırlarını tekrar tekrar yazmak bir program geliştici açısından yorucu bir iştir. Bu sebeple tekrar eden metodların tek bir yerde kullanılması düşünülmüştür. Farklı programlarda ya da dağıtık sistemlerde kullanılan aynı metodlar açısından bir kütüphane yani dll dosyası oluşturmak en mantıklı çözüm olarak bulunmuştur.

Aynı zamanda kendi yazdığınız kodları başkasının kullanımına açık hale getirebilirsiniz. Bu kullanıcı kaynak koda erişemez ancak izin verilen metodları kullanabilmektedir. Böylece hem başkalarının kullanımına açık hem de kaynak kodu gizli bir durum gerçekleşir.

Daha önce yazdığımız classların bir araya getirilerek oluşturduğumuz, içerisinde main yapısı olmadan çağırabildiğimiz uygulamalara benzerdir. Buradaki dikkat edilmesi gereken kısım başka modüllerin çağırılıyor olmasıdır.

C# DLL Oluşturma

C# ile kütüphane oluşturmak için daha önceden yazdığımız metodları, sınıfları kullanabiliriz veya bunları direkt kütüphane olarak da oluşturabiliriz. Bu oluşturacağım örnekte daha önceki yazılarda bahsettiğim metodları kütüphane olarak kullanacağım. Örneğin qrcode generator konusunda  verdiğim örneği oradaki metodları kullanacağım. Uygulamalı örnek olarak da oradaki random sayı metodunu çağıracağım.

Geçelim kodumuzu yazmaya. İlk önce visual studio içerisinde File>New>Project veya Ctrl+Shift+N işlemini yapıp ardından gelen ekrandan Class Library seçimini yapıyor ve isimlendiriyoruz.

 

Daha sonra burada Class isimini veriyoruz.  Daha sonrasında  çalıştırmak istediğimiz metodu bu class içerisine ekliyoruz.

 

public class QRCreate
  {
      public static Bitmap GenerateQR (int width, int height, string js, out string err)
      {
          err="";
          try
          {
              if (js!=null)
              {
                  IBarcodeWriter barcodeWriter = new BarcodeWriter ();
                  barcodeWriter.Format=BarcodeFormat.QR_CODE;
                  QrCodeEncodingOptions options = new QrCodeEncodingOptions ();
                  options=new QrCodeEncodingOptions
                  {
                      Width=width,
                      Height=height,
                      Margin=0
                  };
                  options.Hints.Add (EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
                  barcodeWriter.Options=options;
                  var result = new Bitmap (barcodeWriter.Write (js));
                  return result;
              }
              else
                  return null;
          }
          catch (Exception)
          {
              err="METİN GİRİNİZ!";
              return null;
          }
      }
       }

 

 

Bu örnekte GenerateQR() isimli metodumuzu kullanıyoruz. Burada ZXing.Net isimli referansı eklememiz gerekmektedir. Bununla ilgili bilgiler örnek yazımızda mevcuttur. Daha sonra bu kod satırını ekledikten sonra Solution üzerinden Build işlemini yapıyoruz. Böylece 06kütüphanemiz oluşmuş oluyor.

 

C# Dll Kullanımı

DLL kütüphanemizi oluşturduktan sonra kullanmamız için örnek olarak bir form uygulaması açıyoruz. İçerisine picturebox ve button ekliyoruz. Sade bir uygulama olup qr code üretecek ancak bunu bir kütüphane içerisinden çağıracağız. Bu işlemi de Zxing üzerinden yaptığımız için bunu nuget üzerinden projemize ekliyoruz. Daha sonra sağ  tarafta Reference kısmından Add diyerek oluşturduğumuz dll dosyasını projemize referans olarak ekiyoruz.

 

Burada dikkat etmemiz gereken namespace kısmına oluşturduğumuz kütüphaneyi eklememiz gerekmektedir.

using DLL_ADI;

Daha sonra Metodumuzun adı ile qrCode oluşturma işlemini tamamlıyoruz. Böylece başka birisine veya başka bir uygulamada bu metodu tekrar yazmadan tek bir referans işlemi ile tamamlamış oluyoruz.

pictureBox1.Image=berkarat.QRCreate.GenerateQR (150, 150, "berkarat.com", out err);

QrCreate üzerine sağ tıklayıp Go to Definition veya F12’ye bastığımızda kaynağımıza gideriz. Ancak sadece o class içerisindeki metodları görürüz içeriklerine erişemeyiz.

 

Kaynak Kodu : GitHub

 

CEVAP VER

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.