Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
.NET 8'den .NET 11'e MVC ve Razor Pages'te Gelenler
.NET 8 ve 9'un desteği 10 Kasım 2026'da bittiği için MVC ve Razor Pages uygulamalarının hedefi .NET 10. Aynı projeyi net8.0 ve net10.0 ile çalıştırıp cookie auth'un API endpoint'lerinde 302 yerine 401 dönmesini, Minimal API form binding farkını, ASP0026 uyarısını ve RazorComponentResult'u gösteriyor, .NET 11'in MVC maddelerini ve bir yükseltme kontrol listesini veriyoruz.
C# ve .NET Sürüm Yükseltme: Eski Projeyi .NET 10'a Taşımak
Bir .NET 6 projesini .NET 10'a taşımak: destek takvimi, LangVersion ile TFM ilişkisi ve latest tuzağı, global.json ile SDK sabitleme, gerçek CS8981 ve CS9258 uyarılarını okumak, field keyword'ünün sessiz davranış değişikliği ve breaking change sayfalarını okumak; C# 15 için ayrı yazı.
C# 14 Yenilikleri: Extension Members, field ve Null-Conditional Atama
C# 10 ve C# 13'teki karşılıklarıyla C# 14: null-conditional atamada sağ tarafın atlanması, extension property, static extension member ve extension operatör, field keyword'ü, array'lerin span'e dönüşümü, nameof(List<>), lambda parametre modifier'ları, partial constructor/event ve compound atama operatörleri.
C# Async ve .NET 9–10: Task.WhenEach, Lock Tipi ve Framework'teki Async LINQ
WhenAny döngüsünün yerini alan .NET 9 Task.WhenEach ve hatalı task'larla davranışı, C# 13 lock statement'ının tanıdığı System.Threading.Lock ile CS9216, CS1996, CS4007 ve CS9202 sınırları, .NET 10'da framework'e giren async LINQ, async Select ve System.Linq.Async paketiyle çakışmanın çözümü.
LINQ ve .NET 10: LeftJoin, RightJoin, Shuffle, Sequence ve Async LINQ
.NET 10'da LINQ: GroupJoin ve DefaultIfEmpty pattern'ının yerini alan LeftJoin ve RightJoin, deferred çalışan Shuffle, generic math üzerine kurulu Sequence ve InfiniteSequence, BCL'e giren System.Linq.AsyncEnumerable ve System.Linq.Async paketiyle yaşanan CS0121 çakışması; .NET 11'de gelecek FullJoin'e kısa bakış.
C# 13–14 ve .NET 9–10: OrderedDictionary, params Collections ve Fazlası
Dictionary'nin sıra sözü vermemesi ve .NET 9'un generic OrderedDictionary'si, .NET 10'un index döndüren TryAdd/TryGetValue'su, PriorityQueue.Remove, string ayırmadan alternate lookup, C# 13 params collections ve C# 14 extension members ile span dönüşümleri.
.NET 10 Yenilikleri: ASP.NET Core'da AddValidation, OpenAPI 3.1 ve Server-Sent Events
.NET 10 LTS ile minimal API'de AddValidation, OpenAPI 3.1 ve YAML, TypedResults.ServerSentEvents, System.Text.Json tabanlı JSON Patch, dotnet run app.cs, C# 14 ve cookie auth 401/403 gibi breaking change'ler.