Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Zaman ve Time Zone: UTC Instant, Yerel İş Günü, DateOnly ve TimeProvider
Zamanı doğru saklamak için üç kavramı ayırmak gerekir: event anları UTC instant (DateTimeOffset), takvim günleri DateOnly, gelecekteki yerel event'ler wall-clock time ve IANA zone id'si olarak saklanır. Bu yazı tenant'ın gününü UTC aralığına çevirmeyi, TimeProvider ile test edilebilir saati, SQL Server'daki AT TIME ZONE tuzaklarını ve Angular'daki tarih kaymasını gerçek çıktılarla gösteriyor.
C# Async ve .NET 8: TimeProvider, ConfigureAwaitOptions, Parallel.ForAsync ve CancelAsync
.NET 6'da kendi IClock'umuzu yazıyorduk; .NET 8'de TimeProvider ve FakeTimeProvider ile 15 dakikalık bekleme testte 0 ms sürüyor. Exception fırlatmadan bekleyen SuppressThrowing ve Task<T> tuzağı, ForceYielding, index aralığını doğrudan alan Parallel.ForAsync ve callback'leri iptal edeni bekletmeden çalıştıran CancelAsync.