Blog
Yazılar
Singleton, Scoped, Transient: .NET DI Lifetime Farkı
Singleton, Scoped ve Transient farkı: hangi lifetime kaç obje üretir, scope bitince ne dispose olur, root provider’dan scoped servis almak neden sorun çıkarır.
.NET'te Dependency Injection Nedir, Neden Kullanılır
DI kullanmayan bir konsol uygulamasından başlayıp bağımlılıkları ServiceCollection ve ServiceProvider ile çözmeye kadar adım adım ilerliyoruz.
Credential'ları repoda saklamak: SOPS + age
Secret değerlerini şifreli halde git reposunda tutmak: SOPS + age ile kurulum, ortam başına recipient modeli, runtime'da çözme, ekip ve CI akışı, ve dikkat edilecek noktalar.
Cloudflare ve Gmail ile Kendi Domain'inden Ücretsiz E-posta
Sunucu kurmadan, para ödemeden kendi domain'inden e-posta almak ve göndermek: gelen için Cloudflare Email Routing, giden için Gmail app password ve Send mail as ile SMTP kurulumu.
Git'te Yerel Ignore Kuralları: .git/info/exclude ve core.excludesFile
Proje root'una bırakılan kişisel dosyaları .gitignore'ı kirletmeden ve takıma göndermeden gizlemek. .git/info/exclude, core.excludesFile ve öncelik sırası.
PostgreSQL LIKE Performansı: CAST, Concat ve OR Karşılaştırması
2 milyon satırlık benchmark ile bigint LongColumn'dan text TextColumn'a migration senaryosunda 6 farklı LIKE yaklaşımını karşılaştırıyorum: CAST+concat, CAST tek, text concat, text tek, text OR ve CAST OR.
.NET'te Bellek Yönetimi 1: Stack, Heap ve String'ler
Stack ve heap nedir, value type ile reference type bellekte nerede yaşar, string neden özel bir tiptir ve GC yaşam döngüsü nasıl çalışır.
ASP.NET Middleware'leri Anlamak
HTTP isteklerinin ASP.NET middleware pipeline'ında nasıl işlendiği, sıralamanın neden kritik olduğu ve gerçek kod üzerinden inceleme.
Hoş Geldin
Bu site neden var, neyi takip ediyorum ve AI çağında yazı ile kod üzerine birkaç düşünce.