Microsoft .NET CORE 3.x ile Katmanlı Mimari Tasarımı
Last updated
Last updated
Temiz anlatımlarıyla Engin Demiroğ kurslarını takip etmeniz faydanıza olacaktır.
Aynı eğitimlerin çok eski versiyonları içeren halini aşağıdaki youtube kanalında bulabilirsiniz. Mantık aynı olduğundan buradan da izleyebilirsiniz. Ayrıca, sıklıkla indirimler uygulandığından yukarıdaki her bir kursu 25 TL ücretle alabilirsiniz.
Alttaki linkde de .NET Framework ile yapılmış halini bulabilirsiniz.
Benzeri mimari ve anlatım sırasını takip eden Ziya Sert de youtube üzerinden takip edilebilir.
Projedeki
DataLayer (Entities)
DataAccessLayer
BusinessLayer
Core
projelerini .NET Standard class library ile oluşturmayı tercih ederek tüm platformlara uygun kütüphane çıkarabilirsiniz.
PresentationLayer (WebAPI) için WebAPI projesi seçerek hem Windows hem de Linux platformlarına uygun proje geliştirmeye başlayabilirsiniz.
Yukarıdaki eğitim sonunda gibi DL ve DAL katmanlarınız aşağıdaki gibi olacaktır. Business katmanınız iki tane interface bilecektir. Geri kalanı hakkında hiç bir bilgisi olması gerekmemektedir.
IProductDal, ICategoryDal interface leri aynı metotlara ihtiyaç duyduğundan IEntityRepository<TEntity> generic interface den kalıtım (SOLID deki Interface Segregation) almaktadır. IProductDal, ICategoryDal gerçekleyen EfProductDal ve EfCategoryDal class larında hiç bir metot yoktur. Çünkü içersine yazacağımız kodlar birbirinin aynısı olacağından EfEntityRepositoryBase<TEntity, TContext> class içerisinde bir kere yazılarak kalıtım alması sağlanmıştır.
ORM (Object Relational Mapping) ilişkisel veritabanı yönetim sistemlerine direkt olarak müdahale yerine nesneler aracılığı ile müdahale edilmesini sağlayan bir köprüdür.
Veri tabanına erişmek için gereken sorguları Entity Framework ORM aracı ile yazılabileceği gibi IEntityRepository interface ile soyutlama yağtığımızıdan kodumuzu değiştirmeden genişletme (SOLID deki Open-Closed) yaparak daha lightweight çözüm olan Dapper micro-ORM ile de veri tabanına erişim yapabiliriz.