Başlarken
Projenin ana yapısını oluşturduktan sonra şimdi sırada Common katmanı ‘nın genel hatlarını oluşturmak var. Bir önceki post ‘u takip ederek işlemler doğru yaptıysak Solution Explorer üzerinde aşağıdaki görüntüyü görüyor olmalıyız.
Common Katmanı ‘na Giriş
Öncelikle bu katman içerisinde kullanacağımız kodları gruplamak için klasörler oluşturacağız. Klasör oluşturmak için Solution Explorer tabının içinden Common projemizin adına sağ tıklıyoruz ve sırası ile “Add” –> “Folder” seçeneklerine tıklıyoruz.
Oluşturacağımız Klasörler
1- ) Api -> Bu kısımda api ile ilgili genel tanımlamaları yapacağız. Api result, api base gibi sınıfları bu kısımda kodlayacağız.
2- ) Data -> Bu klasör bizim Data katmanı içerisinde saklayacağımız entityleri’mizin ortak özelliklerini tutacak.
3- ) Dto -> Data transfer objectlerimize ait base class ve ortak özellikleri içeren class lar bu klasörde olacak.
4- ) Enums -> Proje genelinde kullanacağımız enumları barındıracak.
5- ) Logging -> Loglama işlemleri ile ilgili ayarlar ve temel özellikler bu kısımda yer alacak
6- ) Paging -> Sayfalama işlemlerinin çekirdeği bu kısımda yer alacak.
7- ) Repository -> Repository pattern için gerekli classları barındıracak.
8- ) UnitofWork -> Repository pattern ile kullanacağımız UnitofWork mantığı bu klasörde tutulacak.
Başlangıç olarak tüm klasörleri aynı şekilde tek tek oluşturacağız ancak sadece Api,Data,Dto ve Enums klasörleri altına classlar ekleyeceğiz. Diğer klasörlerin altını konuları geldiğinde doldurup projeye dahil edeceğiz. Yukarıdaki adımları uyguladığınız da Solution Explorer aşağıdaki gibi görünüyor olmalıdır.
ApiResult Sınıfı
Şimdi Solution Explorer üzerinden Common katmanımızın altında kalan Api klasörümüze sağ tıklayarak altına bir class ekleyeceğiz. Ekleyeceğimiz sınıf restful WebApimizin geriye dönüş standartını belirleme görevi görecek. İstemcilerden gelen tüm isteklere ApiResult sınıfımız ile dönüş yapacağız. Bu sınıf içerisinde 3 adet property olacakve çok biçimlilik(polymorphism) özelliği bulunacak. Aşağıdaki ekran görüntülerini takip ederek ApiResult.cs dosyamızı oluşturalım.
ApiResult sınıfımızı oluşturduktan sonra içerisini aşağıda görünen şekilde düzenliyoruz. Kodun içerisinde summaryler kullanarak detaylı açıklamalar yapmaya çalıştım.
Base Sınıflarının ve Durum Enum’ının Oluşturulması
Aynı şekilde Common katmanı altında kalan Data klasörüne EntityBase sınıfını, Dto klasörüne DtoBase sınıfını ve Enum klasörüne AppStatus enum’ını oluşturuyoruz.
EntityBase.Cs
DtoBase.cs
AppStatus.cs
Sonuç
Buraya kadar olan tüm işlemleri doğru bir şekilde yaptıysanız Solution Explorer üzerinde aşağıda bulunan görüntüyü görüyor olmalısınız.
Projenin son halini github üzerinden indirmek ve incelemek için bu linke tıklayabilirsiniz. Bir sonraki derste EntityFramework 6 (bundan sonra EF olarak anacağız) ile code first yaklaşımını kullanarak veritabanı tasarımımızı yapacak ve aynı zamanda entitylerimizi oluşturmuş olacağız. Bu kısım için yaşadığınız bir sorun ya da sormak istediğiniz bir soru varsa yorum kısmında ya da mail adresim üzerinden iletebilirsiniz.
Mail adresim : email@example.com