Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
ASP.NET Core Web API'de DTO ve Mapping: Elle Mapping, AutoMapper Lisansı ve Mapperly
Entity'yi doğrudan dönmenin bedelini gerçek hatalarla görüyoruz: overposting ve döngüsel referans. Request/response DTO'ları, elle mapping ve projection, AutoMapper'ın 2025 lisans değişikliği ve CVE'si, Mapperly'ye kısa bakış.
ASP.NET Core Web API'de EF Core ve SQLite: DbContext, İlk Migration ve CRUD
ASP.NET Core Web API'ye EF Core ve SQLite ile veri katmanı ekliyoruz: EF Core 6 ve 10 paket sürümleri, AppDbContext, connection string, DbContext'in neden scoped olduğu, ilk migration, async CRUD ve konsoldaki SQL.
ASP.NET Core'da Logging: ILogger, Log Seviyeleri, Structured Logging ve Serilog
ASP.NET Core'da ILogger<T> ile log yazıyoruz: category, log seviyeleri, appsettings ve environment variable ile filtreler, message template ile structured logging, scope'lar, LoggerMessage source generator ve net6.0 destekleyen Serilog sürümü.
ASP.NET Core'da Configuration ve Options Pattern: Provider Sırası, User Secrets ve Validation
ASP.NET Core configuration provider'larının sırasını gerçek çıktıyla görüyoruz: appsettings, environment variable, command line, user secrets. Options pattern, IOptions/IOptionsSnapshot/IOptionsMonitor farkı ve ValidateOnStart ile doğrulama.
ASP.NET Core'da Dependency Injection: Lifetime'lar ve Captive Dependency Tuzağı
ASP.NET Core'da dependency injection'ı gerçek çıktılarla inceliyoruz: constructor injection, singleton/scoped/transient lifetime'ları, captive dependency, scope validation, IServiceProvider ve .NET 6'da [FromServices] detayı.
.NET 6 ile ASP.NET Core Minimal API: MapGet, MapPost ve Controller Karşılaştırması
.NET 6 minimal API'leriyle MapGet, MapPost, MapPut ve MapDelete, parametre binding kuralları, Results yardımcıları, eksik validation'ı elle tamamlamak, endpoint'leri gruplamak ve controller ile ne zaman hangisinin seçileceği.
ASP.NET Core'da Model Validation: Data Annotations ve FluentValidation
Data Annotations, ModelState ve otomatik 400, ValidationProblemDetails'i özelleştirmek, custom attribute, IValidatableObject ve FluentValidation 11.x ile model validation; Türkçe sunucularda Range ve mesaj dili tuzakları dahil.
ASP.NET Core'da Model Binding: FromRoute, FromQuery, FromBody ve FromHeader
İstekteki verinin route, query string, body, header, form ve service kaynaklarından action parametrelerine nasıl bind edildiğini, [ApiController]'ın tahmin kurallarını, 415 ve 400 hatalarının sebeplerini gerçek yanıtlarla anlatıyoruz.
ASP.NET Core'da Status Code ve Response: Ok, CreatedAtAction ve ProblemDetails
ControllerBase yardımcılarıyla doğru status code'u dönmeyi, null dönünce gelen sürpriz 204'ü, CreatedAtAction ve Location header'ını, 400/404/409 ayrımını, ProblemDetails'i ve content negotiation'ı gerçek yanıtlarla anlatıyoruz.
ASP.NET Core'da Controller ve Action: [ApiController] ile CRUD İskeleti
ControllerBase ve Controller farkını, [ApiController] attribute'unun getirdiği dört davranışı, IActionResult ile ActionResult<T> arasındaki seçimi ve bellekte duran bir listeyle çalışan CRUD iskeletini gerçek curl çıktılarıyla anlatıyoruz.
ASP.NET Core Web API'de Routing: Attribute Routing, Route Template ve Constraint'ler
Endpoint routing'in karar ve yürütme adımları, attribute routing ve [controller]/[action] token'ları, route template parçaları, constraint'ler ve öncelik sırası, çakışan route'lar ve AmbiguousMatchException.
ASP.NET Core Middleware Pipeline: Sıralama, Use, Run, Map ve Kendi Middleware'in
İsteğin middleware halkalarından nasıl geçip response'un nasıl geri döndüğünü görüyoruz: Use, Run ve Map, class olarak middleware yazmak, sıralamanın etkisi, built-in middleware'lerin önerilen sırası ve tipik tuzaklar.