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
101 yazı bulundu #csharp
C# ve .NET Sürüm Yükseltme: Eski Projeyi .NET 10'a Taşımak
Backend SERİ 06

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ı.

7 Kas 2026 10 dk 9
C# 14 Yenilikleri: Extension Members, field ve Null-Conditional Atama
Backend SERİ 05

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.

7 Kas 2026 8 dk 5
C# 13 Yenilikleri: params Collections, Lock ve Partial Property
Backend SERİ 04

C# 13 Yenilikleri: params Collections, Lock ve Partial Property

C# 10'daki karşılıklarıyla C# 13: yeni Lock tipi ve CS9216 tuzağı, allocation ölçümüyle params collections, ref struct'ların interface implemente etmesi ve allows ref struct, partial property'ler, OverloadResolutionPriority, \e kaçışı ve initializer'da ^ index'i.

7 Kas 2026 8 dk 7
C# 12 Yenilikleri: Primary Constructor ve Collection Expression
Backend SERİ 03

C# 12 Yenilikleri: Primary Constructor ve Collection Expression

C# 10'daki karşılıklarıyla C# 12: primary constructor'ın parametre olup property olmaması ve CS9124 uyarısı, köşeli parantezli collection expression'lar ve spread, lambda'larda default parametreler, her tipe alias, inline array'ler, Experimental attribute ve interceptors notu.

7 Kas 2026 8 dk 7
C# 11 Yenilikleri: Raw String, required ve List Pattern
Backend SERİ 02

C# 11 Yenilikleri: Raw String, required ve List Pattern

C# 10'da nasıl yazıyorduk, C# 11'de nasıl yazıyoruz: raw string literal'ler ve kültür tuzağı, required member'lar ve SetsRequiredMembers, list pattern'ler, dil ve kütüphane ayağıyla generic math, file-local tipler ve UTF-8 literal'ler.

7 Kas 2026 8 dk 8
C# Sürümleri: 1.0'dan 10'a Dilin Kısa Tarihi
Backend SERİ 01

C# Sürümleri: 1.0'dan 10'a Dilin Kısa Tarihi

C# 1.0'dan C# 10'a her sürümün imza özellikleri, çıkış tarihleri ve .NET eşleşmesi; aynı kodu farklı LangVersion değerleriyle derleyip compiler'ın hangi özelliğin hangi sürümden geldiğini nasıl söylediğini görmek.

7 Kas 2026 13 dk 8
C#'ta Unit Test: xUnit, Theory/InlineData ve Test Edilebilir Kod
Backend SERİ 14

C#'ta Unit Test: xUnit, Theory/InlineData ve Test Edilebilir Kod

Flaky bir testin sebebi olan gizli bağımlılıklar, xUnit test projesi, Fact ve Assert, Theory/InlineData/MemberData, zamanı IClock ile dışarıdan almak ve decimal InlineData, async void gibi tuzaklar.

7 Kas 2026 8 dk 9
C#'ta Dependency Injection Temelleri: Lifetime'lar, Container ve Captive Dependency
Backend SERİ 13

C#'ta Dependency Injection Temelleri: Lifetime'lar, Container ve Captive Dependency

Microsoft.Extensions.DependencyInjection ile constructor injection, singleton/scoped/transient farkı, container'ın dispose sorumluluğu, captive dependency ve ValidateScopes, çoklu registration, TryAdd ve factory'ler.

7 Kas 2026 9 dk 5
C#'ta Performans: Allocation, Struct'lar ve BenchmarkDotNet ile Ölçmek
Backend SERİ 12

C#'ta Performans: Allocation, Struct'lar ve BenchmarkDotNet ile Ölçmek

Stopwatch'un neden yetmediği, BenchmarkDotNet 0.15.8 kurulumu ve tabloyu okumak, class ile struct'ın ölçülmüş farkı, boxing ve closure kaynaklı gizli allocation'lar ve benchmark tuzakları.

7 Kas 2026 10 dk 7
C#'ta Source Generator: IIncrementalGenerator ile Compile Time'da Kod Üretmek
Backend SERİ 11

C#'ta Source Generator: IIncrementalGenerator ile Compile Time'da Kod Üretmek

Derleme sırasında kod ekleyen bir incremental generator yazmak: netstandard2.0 projesi ve Roslyn sürümü, pipeline ve cache, üretilen kodu görmek, partial ve hint name tuzakları.

7 Kas 2026 9 dk 5
C#'ta Interop ve unsafe Kod: P/Invoke, Pointer'lar ve fixed
Backend SERİ 10

C#'ta Interop ve unsafe Kod: P/Invoke, Pointer'lar ve fixed

AllowUnsafeBlocks ve pointer'lar, fixed ile GC'ye karşı sabitlemek, DllImport ile libc çağırmak, string marshalling, function pointer ile callback, NativeMemory ve span ile unsafe kodu küçük tutmak.

7 Kas 2026 7 dk 6
C#'ta ref return, ref local, in Parametreleri ve ref struct
Backend SERİ 09

C#'ta ref return, ref local, in Parametreleri ve ref struct

Değeri kopyalamak yerine referansıyla taşımak: ref local, ref return, ref readonly, in parametrelerinde defensive copy tuzağı, readonly struct ve kendi ref struct tipini yazmak.

7 Kas 2026 10 dk 6
Blog Haritası