Sayfalar

6 Şubat 2013 Çarşamba

C# CLASS LIBRARY PROJESİ OLUŞTURMA VE KULLANMA (DLL)

Class Library adından da anlaşıldığı gibi sınıf kütüphaneleridir. Kısaca, projelerimizde kullanacağımız iş yapan sınıflarımızı projemizden soyutlayıp, ayrı bir uygulama gibi yazıp, gerektiğinde bütün projelerimizde kullanamak üzere oluşturduğumuz sınıflar topluluğudur.

Class Library projesinin bir çok avantajı vardır. Mesela, iş kurallarımızı (Business Rules) bu sınıflar içerisinde gizleyebiliriz. Bir çok projede ortak kullanılabilecek genel bir kütüphane oluşturabiliriz. Ayrıca bu kütüphaneyi yazan ile kullanan geliştiricilerin birbirinden haberi olmadan çalışmalarını kolaylaştırır. Daha bir çok avantajı vardır, ama biz hemen örneğe geçelim. Örnek yapınca az çok ne gibi işler için kullanılacağı anlaşılır.

Öncelikle yeni bir ClassLibrary projesi oluşturuyoruz.


Daha sonra projemize kullanmak istediğimiz sınıfları ekliyoruz. Varsayılan olarak Class1 adında örnek bir sınıf gelecektir. İsterseniz bu sınıfı kullanın isterseniz silin. Bizim yapacağımız örnekte bu sınıfı kullanmayacağım.


Sınıfın ismini belirleyip sınıfımızı oluşturuyoruz. Bu örneğimizde static bir sınıf oluşturacağım. Aşağıdaki gibi;


Sınıflarımızı ekledikten sonra solution explorer ın görünümü aşağıdaki gibi;


Ben fazladan iki sınıf daha eklemiştim şimdilik çok önemli değil biz sadece DateTimeManager sınıfını kullanaçağız. Şimdi nasıl kullanılacağına gelelim. Öncelikle projemize sağ tıklayıp Build seçeneğine tıklıyoruz. Projeyi build ettikten sonra projemizin ana dizininde bulunan bin dosyasının içerisinde debug dosyası var. Bu dosyanın içerisine ClassLibrary projemizin dll dosyası ekleniyor. Bin dosyası gizli olduğundan solution explorer içerisinde göremiyoruz. Ama projemizin olduğu klasör içerisinde bu dll mevcut.

Visual Studio menusunde Project > View All Files dersek solution explorerda bu dll i görebiliriz.


Şimdi başka bir proje oluşturup bu dll i projemizde kullanalım. Örneğin bir Asp.Net Mvc projesi olsun. Burada proje önemli değil WinForms uygulaması falanda olabilir.

Yeni projede bu dll i kullanabilmek için ClassLibrary projesinin dll dosyasını referans etmeliyiz. Projemizin refrences klasörüne sağ tıklayıp Add Refrence diyoruz.


Açılan pencereden sol menude Browse seçeneğini tıkladıktan sonra sağ altta yine browse diyerek, class library projemizin içerisindeki dll dosyasını buluyoruz ve projemize ekliyoruz.


Şimdi artık sınıf kütüphanemizde ne tanımlamışsak bunların hepsini bu projenin içerisinde kullanabiliriz. Örneğin;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using BusinessLogicLayer;

namespace MvcApplicationWithClassLibrary.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

            ViewBag.Day = DateTimeManager.getDayOfNow();
            ViewBag.Month = DateTimeManager.getMonthOfNow();
            ViewBag.Year = DateTimeManager.getYearOfNow();

            return View();
        }
    }
}

Burada önemli nokta dll dosyamızı kullamak için using BusinessLogicLayer; tanımlamasını yapmak. Özellikle tüm projelerinizde kullanacağınız sınıfları mutlaka bu şekilde ClassLibrary projesi içerisinde tanımlamalısınız.

9 yorum:

  1. Üstadım güzel anlatmışsın gayet anladım.Benim bir sorum var pek C# bilmiyorum ve nasıl ne yapacağım konusunda bilgi almak isterim sizden.

    Ben şimdi bir çizim programı tarzı bir şey yapmak istiyorum.
    Ve farklı farklı çizim kalemleri kullancam bir panel den seçilcek ve o seçilen şey ile çizim yapılcak özellikleri farklı olacak bu çizimlerin.Resim çizimi gibi.
    Geometrik şekil paneli de yapcam.Kare,Dikdörtgen,Üçgen,Daire vb.
    Aynı şekilde renkleri de ayrı panelde yapacam.
    Bunlar gibi kırpma,ortalama,tam boyut yapma resim yükleme filan yapacam bir çok şey olacak kısaca.

    Benim sorum ise şu ben bu özellikleri class kullanarak mı çekmem doğru olur yoksa her biri için ayrı dll yazsam daha mı iyi.Ve bildiğiniz class ve dll olarak bu bahsettiğim bir çalışma örneği biliyorsanız atarsanız memnun olurum şimdiden teşekkürler.

    YanıtlaSil
    Yanıtlar
    1. 1- dll, kütüphaneleri aslında bir iş için yapılır. Bu bir işten kasıt, mesela matematik işlemleri gibi. Matematik kütüphanesi bir dll de olur ve tüm matematik işlemleri onun içinde olur. Siz de çizim işlemlerini yapan bir dll yazarsınız ve tüm bu anlattıklarınız onun içinde olur. Yani tek pakette tüm anlattıklarınızı yazabilirsiniz.

      2- Böyle bir çalışma ile alakalı bir bilgim yok

      Sil
  2. Güzel bir anlatım olmuş klavyenize sağlık.

    YanıtlaSil
  3. Ali Rıza Bey anlatımınız güzel olmuş, emeğinize sağlık. Benim size bir sorum olacaktı. Ben c# da dll yazdım ve bu dll in tüm .net framework sürümlerinde kullanmak istiyorum. Bunun için farklı proje oluşturmak yerine aynı proje üzerinden tek bir dll ile halledebilir miyim ? mail yolu ile dönüş yapabilir misiniz ? hakanguven42@hotmail.com

    YanıtlaSil
  4. visual studyo 2015 add reference ile dll ekldik. sonra dll projemize yeni kutuphane ekledik. projede bunu nasıl guncelliyecegiz.bu 1 soruydu. 2.soru da visual studyoda 2015 classları App_Code ekleyince nasıl çağıracagız.

    YanıtlaSil
  5. Bu arada paylaşım için teşekkürler..Önce dert :)) kusura bakmayın..

    YanıtlaSil