Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
.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.
.NET 9 Yenilikleri: ASP.NET Core'da Yerleşik OpenAPI, Scalar ve HybridCache
.NET 9 ile Swashbuckle şablondan çıktı: AddOpenApi/MapOpenApi, transformer'lar, Scalar ve Swagger UI, stampede korumalı HybridCache, TypedResults.InternalServerError, StatusCodeSelector, C# 13 ve 24 aylık STS desteği.
.NET 8 ile ASP.NET Core Yenilikleri: Keyed DI, IExceptionHandler, Identity API ve Native AOT
.NET 8 ile gelen keyed DI, IExceptionHandler, MapIdentityApi, ShortCircuit, TimeProvider ve Native AOT'u .NET 6 karşılaştırmasıyla anlatıyor; C# 12'ye, geçiş notlarına ve 10 Kasım 2026 destek bitişine bakıyoruz.
.NET 7 ile ASP.NET Core Yenilikleri: MapGroup, TypedResults, Rate Limiting ve Output Caching
.NET 7 ile gelen MapGroup, TypedResults, endpoint filter'lar, AddProblemDetails, rate limiting ve output caching'i .NET 6 karşılaştırmasıyla anlatıyor; C# 11 required members'a ve geçiş notlarına bakıyoruz.
Eski .NET Core 3.1 ve .NET 5 Projelerini Okumak: Startup.cs'ten .NET 6'ya Geçiş
.NET Core 3.1 ve .NET 5 dönemindeki Startup.cs, Generic Host ve UseRouting/UseEndpoints yapısını okuyup aynı ASP.NET Core API'yi adım adım .NET 6'ya taşıyoruz; System.Text.Json farkları ve tuzaklar dahil.
ASP.NET Core Web API'yi Docker'a Almak ve GitHub Actions ile CI/CD Kurmak
ASP.NET Core Web API'yi multi-stage Dockerfile ile container'a alıyoruz: dotnet publish, katman cache'i, .dockerignore, port ve environment ayarları; ardından GitHub Actions ile test edip imajı ghcr.io'ya gönderen bir CI/CD hattı kuruyoruz.
ASP.NET Core Web API'de Integration Test: WebApplicationFactory ile Uçtan Uca Test
WebApplicationFactory ile ASP.NET Core Web API'yi bellekte ayağa kaldırıp HTTP seviyesinde test ediyoruz: public partial class Program, SQLite in-memory ile veritabanı değiştirmek, Location ve ProblemDetails testleri, test izolasyonu.
ASP.NET Core Web API'de Unit Test: xUnit ve Moq ile Service ve Controller Testleri
xUnit ve Moq ile ASP.NET Core Web API'de unit test: net6.0 için doğru paket sürümleri, AAA ve isimlendirme, Setup ve Verify, ActionResult<T> testlerindeki Result/Value farkı, Theory ve NSubstitute karşılaştırması.
ASP.NET Core Web API'de Health Check: Liveness, Readiness ve Veritabanı Kontrolü
ASP.NET Core Web API'de health check: AddDbContextCheck ile veritabanı kontrolü, IHealthCheck ile Redis kontrolü, liveness ve readiness ayrımı, Degraded'ın neden 200 döndüğü, JSON çıktısı ve timeout tuzakları.
ASP.NET Core Web API'de Caching: IMemoryCache, Redis ve Response Caching
ASP.NET Core Web API'de caching: IMemoryCache ile absolute ve sliding expiration, yazınca silerek invalidation, Redis ile IDistributedCache ve response caching middleware'inin hangi isteği neden cache'lemediği.
ASP.NET Core Web API'de Swagger ve OpenAPI: Swashbuckle ile Dokümantasyon
Swashbuckle ile ASP.NET Core Web API'ye OpenAPI belgesi ve Swagger UI ekliyoruz: doğru paket sürümü, XML comments, response tiplerini belgelemek, JWT için Authorize butonu ve gerçek hata mesajlarıyla sık düşülen tuzaklar.
ASP.NET Core Web API Versioning: Asp.Versioning ile URL, Query String ve Header
Breaking change'leri eski istemcileri kırmadan yayınlamak için Asp.Versioning.Mvc ile iki sürümlü bir API kuruyoruz. URL, query string ve header okuyucularını, deprecation ve Sunset header'larını deniyoruz.