Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
4 yazı bulundu #efcore
Çok Dilli Veri: Ürün Adını TR ve EN Saklamak — Translation Table, JSON Kolon ve Fallback
Yazılım Tasarımı SERİ 12

Çok Dilli Veri: Ürün Adını TR ve EN Saklamak — Translation Table, JSON Kolon ve Fallback

Kullanıcının yönettiği çok dilli veri için en esnek seçenek, (EntityId, Culture, Name) key'li bir translation tablosu ve en-GB → en → tr gibi tek yerde kurulan bir fallback zinciridir. Yazı dil başına kolon, translation tablosu, SQL Server 2025 json kolonu ve ayrı bir translation service'i karşılaştırıyor; EF Core 10 LeftJoin ile fallback'i ve Türkçe I için collation seçimini gerçek çıktılarla gösteriyor.

7 Kas 2026 14 dk 7
Multi-Tenancy'de Veri İzolasyonu: Database-per-Tenant, Shared Schema ve Row-Level Security
Yazılım Tasarımı SERİ 13

Multi-Tenancy'de Veri İzolasyonu: Database-per-Tenant, Shared Schema ve Row-Level Security

Çoğu SaaS için en iyi denge, TenantId kolonlu paylaşılan tablolar, EF Core'da named bir tenant query filter'ı ve onun arkasında SESSION_CONTEXT ile beslenen SQL Server row-level security'dir. Yazı database-per-tenant, schema-per-tenant ve shared table modellerini karşılaştırıyor; tenant çözümlemeyi, background job'ları ve izolasyonu otomatik test etmeyi gerçek çıktılarla gösteriyor.

7 Kas 2026 14 dk 9
Settings Tabloları: Global → Tenant → Kullanıcı Override Hiyerarşisi
Yazılım Tasarımı SERİ 14

Settings Tabloları: Global → Tenant → Kullanıcı Override Hiyerarşisi

Çalışırken değişen, tenant ve kullanıcıya göre ezilen ayarlar için en sağlam yol, her ayarın tip, varsayılan, aralık ve en alt override seviyesini taşıyan bir tanımı ile bu tanıma bağlı tipli key-value değerlerdir; öncelik kuralı tek bir service'te, yazma doğrulamalı ve audit'li olur. Yazı EAV, tipli kolonlar, JSON belge ve dış store ile karşılaştırıyor ve EF Core'un nullable unique index'e eklediği gizli IS NOT NULL filtresini gösteriyor.

7 Kas 2026 14 dk 6
Para ve Yuvarlama: decimal, Money Value Object, KDV ve Kuruş Dağıtımı
Yazılım Tasarımı SERİ 17

Para ve Yuvarlama: decimal, Money Value Object, KDV ve Kuruş Dağıtımı

Parayı doğru modellemek için tutarı para birimiyle birlikte taşıyan bir Money value object, C# ile SQL'de aynı açık yuvarlama kuralı ve bölme yerine kuruşu kaybetmeyen Allocate gerekir. Yazı Math.Round ile SQL ROUND'un 0,125'te ayrıştığını, satır ve toplam bazında KDV'nin 1 kuruş farkını, tarihli KDV oranı tablosunu (Kasım 2026 itibarıyla %20, %10, %1), EF Core complex type mapping'ini ve JSON'da string tutarı gerçek çıktılarla gösteriyor.

7 Kas 2026 14 dk 8
Blog Haritası