c# Design Patterns

2 yorum
Merhaba Arkadaşlar ,

Design Pattern yöntemlerinden Repository Design Pattern ve Singleton Pattern ile bir uygulama geliştiriyor olacağız.Yalnız daha öncesinde Repository Design Pattern nedir buna biraz değinelim.

Repository Design Pattern

Arayüzün ihtiyaçları ile veritabanındaki tablolardaki verinin saklanma şekli birbirinden farklıdır.(Örnek olması açısından bir uygulama içerisinde yapılan satışlara ait satışın kategori adının 
gelmesi istendiğinde Kategoriler ve Satış Detaylar tablosu ile join işlemlerinin yapılması ve ekranda 
Kategori Adının gösterilmesi söz konusudur.)Doğal olarak verinin önce işlenip daha sonra user interface (web ,masaüstü vs uygulamalarda) tarafına yönlendirilmesi gerekmektedir.Bu işlemi temin edecek olan  business katmanı verinin tutarlılığını sağlamak ,arayüzün değişebilirliğini sağlamak,farklı bir teknolojiye geçirilmesine uyum (Service tarafı ilerleryen aşamada değinelecek) sağlamak için yardımcı olur.

Şimdi aşağıdaki resimde Repository Design Pattern işlemlerine bakalım.Tabi unutulmamalıdır ki aşağıda belirtilen katmanlar genişletilebilinir.





Db :veri tabanı

Entity Orm: Veri tabanın entity framework ile code first yardımıyla veritabanı model mapping işlemlerinin yer aldığı bölüm(20 tabloya kadar code first tercih edilebilinir performans açısından)

Repository :veri temin edecek katman.Veri tabanında standart işlemlerin güncelle sil ekle listele gibi metodların bulunduğu ve içersinde Singleton Pattern(Singleton Pattern detaylı olarak video anltımda ve aşağıda anlatılacaktır) bulunduğu kısım.

Service Katmanı:Çeşitli teknolojilere destek verebilmesi açısından kullanılacak katman Wcf,Xml
 WebService vs gibi.(Bizim önceden yazdığımız n-tier katmanlı mimari içerisindeki otobus otomasyonumuz web üzerinden de gerçekleşecekse burda wcf yada xml webservice mantığı ile yapılabilirdi).

Data Transfer Object (DTO):Surrogate tiplerin bulunduğu katman 

Win UI:Proje'nin son kullanıcı tarafından görülen kısmı .Kullanıcının talepleri doğrultusunda işlemlerin ele alındığı kısım


Singleton Pattern 

Kısa ca açıklayacak olursak Singleton Pattern'i Proje de kullanılacak olan nesnenin tekil bir instance üzerinde çalışmasıdır.Static olarak belirlenen field'ın properties 'inin get bloğunda singletton pattern kullanılır.

Her ne kadar video anlatım olarak gerçekleştirecek olsamda bu aşamada Singleton Pattern  için aşağıdaki gibi bir kullanım ele alınabilinir.


Reporsitory katmanı içersinde eklenecek class da 

public class RepositoryBase<T> where T:class //içine class tipinden öğeler alabilir dedik 
{
 private static KuzeyRuzgariContext context;

public KuzeyRuzgariContext Context
{
     get
    {
        if(context==null) //ilk çalışma esnasında context boş ise bir instance oluşacak değilse var olan kullanılacak
          {
           context=new KuzeyRuzgariContext();
           return context;
           }
     }
set{context=value;}
}

Uygulama aşamasında anlatılmak istenilenin daha iyi anlaşılacağını düşündüğümden dolayı video anlatımla devam ediyor olacağım

Video Anlatım:



Uygulama Indir

2 yorum :

  1. İyi çalışmalar,
    20 tablodan fazla projeler için ne önerirsiniz.

    YanıtlaSil
  2. Slm, presentation katmanında mvc kullanılan ornek katmanlı çalışmanız var mı ?

    YanıtlaSil

Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.