Yazılar
Yazılım, geliştirme süreçleri ve teknik notlar.
SignalR: Hub, Scaling ve Backplane
Gerçek zamanlı iletişimde SignalR hub yapısı, bağlantı yönetimi (connect, reconnect, disconnect) ve çok sunuculu ortamlarda Redis backplane ile mesaj yayını konuları ele alınır.
Devamını oku
ASP.NET Core Middleware ve Action Filter
ASP.NET Core request pipeline'ına müdahale etmek için middleware yazımı ve action filter'ların (authorization, exception, logging) nasıl oluşturulacağı uygulamalı anlatılır.
Devamını oku
P/Invoke ile Native Entegrasyon
.NET'ten native C/C++ kütüphanelerine erişmek için P/Invoke, marshalling, veri türü dönüşümleri ve performans riskleri anlatılır. LibraryImport (source generator) ile güvenli P/Invoke kullanımı gösterilir.
Devamını oku
DI Lifetime'ları: Transient, Scoped, Singleton
DI konteynerindeki yaşam döngüleri (Transient, Scoped, Singleton) arasındaki farklar ve yanlış kullanımda ortaya çıkan "captive dependency" sorunu örneklerle açıklanır.
Devamını oku
Eşzamanlılık: Channel, Semaphore ve Concurrent
Çok iş parçacıklı uygulamalarda veri bütünlüğünü korumak için Channel<T> (producer-consumer), SemaphoreSlim (kaynak sınırlama) ve ConcurrentDictionary gibi koleksiyonların doğru kullanımı ele alınır.
Devamını oku
Source Generators: Reflection'a Alternatif
Reflection'ın çalışma zamanı maliyetine karşılık, source generator'lar ile derleme sırasında kod üreterek performans kazancı sağlanır. Örneklerle source generator yazımı gösterilir.
Devamını oku
Expression Trees ile Dinamik LINQ
Çalışma zamanında dinamik filtreleme ve sıralama gerektiren senaryolarda expression tree'lerin nasıl oluşturulup LINQ sorgularına dönüştürüleceği anlatılır. Custom query provider yazımına giriş yapılır.
Devamını oku
C# Pattern Matching ve Record'lar
C# 8+ ile gelen pattern matching (switch expressions, property patterns) ve record türlerinin immutable yapısı sayesinde daha temiz, hatasız ve okunabilir kod yazma pratikleri gösterilir.
Devamını oku
EF Core Performans Taktikleri
EF Core'da performansı artırmak için AsNoTracking ile değişiklik takibini kapatma, ihtiyaç duyulan ilişkileri Explicit Loading ile yükleme ve sık kullanılan sorguları derleyerek cache'leme yöntemleri ele alınır.
Devamını oku