FluentValidation ile Katmanlı Doğrulama Rehberi

Giriş Bir istekte alanın boş olup olmadığını kontrol etmekle kullanıcının o işlemi yapmaya yetkili olduğunu kontrol etmek farklı sorumluluklar. Veri doğrulama, girdinin beklediğimiz biçim ve değer aralığında kalmasını sağlar; authentication,…

AutoMapper ile Basitten Karmaşığa Eşleme Rehberi

Giriş DTO ile entity arasında aynı alanları tekrar tekrar atıyorsak bu dönüşümü nerede tutacağımıza karar vermemiz gerekiyor. Az sayıda alan için elle mapping yazmak gayet açık bir çözüm.AutoMapper kullanırsak kuralları…

Bogus Kütüphanesi ile Test Verisi Üretimi

Giriş Bir listeleme ekranını veya test senaryosunu hazırlarken aynı örnek kullanıcıyı tekrar tekrar yazmak kolay, ama bir süre sonra bütün testler birbirine benziyor. Bogus ile isim, adres ve iç içe…

Result Pattern ile Tutarlı Response Yapıları

Result Pattern Nedir? Neden Önemli? Bir servis çağrısı başarısız olduğunda çağıran kodun hangi sonuçla karşılaşacağını açıkça bilmesini istiyoruz. Result Pattern, işlemin başarılı mı yoksa hatalı mı olduğunu, varsa veriyi ve…

Generic Repository Tasarımı ve Uygulaması

Generic Repository Nedir ve Neden Kullanılır? Generic Repository ile farklı entity’lerde tekrar eden veri erişim metotlarını tek sınıfta topluyoruz. Burada önce şu soruyu sormak gerekiyor: EF Core’un DbSet ile zaten…

Unit of Work ile Transaction Yönetimi

Unit of Work ile Transaction Yönetimi Bir iş sırasında birkaç kaydı değiştirdiğimizde, bunların hangi noktada kaydedileceğine karar vermemiz gerekiyor. Unit of Work bu değişiklikleri takip edip kaydetme sınırını toplamak için…

Repository Pattern Nedir? Ne Zaman Kullanılır?

Repository Pattern Nedir? Neden Önemli? Repository Pattern ile iş kodunun ihtiyaç duyduğu veri işlemlerini bir sözleşmede tarif ediyoruz. EF Core kullanıyorsak önce bu sözleşmenin bize ne kazandıracağına bakmak gerekiyor. DbContext…

Dependency Injection Nedir? .NET’te Servis Ömürleri

Sipariş toplamını hesaplayan bir sınıf yazdığımızı düşünelim. Toplamı bulmak için kargo ücretini de bilmesi gerekiyor. Kargo hesaplayıcısını bu sınıfın içinde oluşturursak, kullanılacak teslimat kuralını da orada seçmiş oluyoruz. Sonra ekspres…