Mert Özen Further With Every Line

Blog

Mert Özen's blog posts on software development, backend, frontend, and DevOps.

Series
32 posts found #dotnet-6
Pagination, Filtering and Sorting in ASP.NET Core Web API: Returning Large Lists Safely
Backend PART 20

Pagination, Filtering and Sorting in ASP.NET Core Web API: Returning Large Lists Safely

We gather query parameters in one class and run filtering, the total count, Skip/Take and allow-listed dynamic sorting in the database with IQueryable. Plus body vs header metadata, offset vs keyset, and the SQLite decimal trap.

4 Nov 2026 9 min 1
Filters in ASP.NET Core Web API: Action Filters, Result Filters and ServiceFilter
Backend PART 19

Filters in ASP.NET Core Web API: Action Filters, Result Filters and ServiceFilter

We take apart MVC's filter pipeline with real logs: the order of global, controller and action filters, ServiceFilter for an async filter that uses DI, short-circuiting with TypeFilter, result filters, and middleware versus filters.

4 Nov 2026 7 min 2
Global Error Handling in ASP.NET Core: Exception Middleware and ProblemDetails
Backend PART 18

Global Error Handling in ASP.NET Core: Exception Middleware and ProblemDetails

Starting from the real response of an unhandled exception on .NET 6, we move to UseExceptionHandler with an error controller, then to our own middleware that maps domain exceptions to 404/409/500 ProblemDetails.

4 Nov 2026 9 min 2
Async/Await and CancellationToken in ASP.NET Core: Carrying Cancellation All the Way to the Database
Backend PART 17

Async/Await and CancellationToken in ASP.NET Core: Carrying Cancellation All the Way to the Database

We watch threads return to the pool during await, measure how blocking code starves the thread pool, carry a CancellationToken from the action to EF Core, and cover the .Result and async void traps.

4 Nov 2026 8 min 2
Layered Structure in ASP.NET Core Web API: The Service Layer and the Repository Debate
Backend PART 16

Layered Structure in ASP.NET Core Web API: The Service Layer and the Repository Debate

We slim down a fat controller and hand its work to IProductService. A reusable Expression projection, scoped registration, why a generic repository hurts on top of EF Core, and how interfaces help testing.

4 Nov 2026 10 min 2
DTOs and Mapping in ASP.NET Core Web API: Hand Mapping, the AutoMapper License and Mapperly
Backend PART 15

DTOs and Mapping in ASP.NET Core Web API: Hand Mapping, the AutoMapper License and Mapperly

We see the cost of returning entities directly through real errors: overposting and circular references. Request/response DTOs, hand mapping and projection, AutoMapper's 2025 license change and CVE, and a short look at Mapperly.

4 Nov 2026 10 min 2
EF Core and SQLite in ASP.NET Core Web API: DbContext, the First Migration and CRUD
Backend PART 14

EF Core and SQLite in ASP.NET Core Web API: DbContext, the First Migration and CRUD

We add a data layer to an ASP.NET Core Web API with EF Core and SQLite: EF Core 6 and 10 package versions, AppDbContext, the connection string, why DbContext is scoped, the first migration, async CRUD and the SQL in the console.

4 Nov 2026 9 min 2
Logging in ASP.NET Core: ILogger, Log Levels, Structured Logging and Serilog
Backend PART 13

Logging in ASP.NET Core: ILogger, Log Levels, Structured Logging and Serilog

We write logs with ILogger<T> in ASP.NET Core: categories, log levels, filters via appsettings and environment variables, structured logging with message templates, scopes, the LoggerMessage source generator and the Serilog version that supports net6.0.

4 Nov 2026 8 min 2
Configuration and the Options Pattern in ASP.NET Core: Provider Order, User Secrets and Validation
Backend PART 12

Configuration and the Options Pattern in ASP.NET Core: Provider Order, User Secrets and Validation

We see the order of ASP.NET Core configuration providers with real output: appsettings, environment variables, command line, user secrets. The Options pattern, IOptions vs IOptionsSnapshot vs IOptionsMonitor, and validation with ValidateOnStart.

4 Nov 2026 7 min 2
Dependency Injection in ASP.NET Core: Lifetimes and the Captive Dependency Trap
Backend PART 11

Dependency Injection in ASP.NET Core: Lifetimes and the Captive Dependency Trap

We explore dependency injection in ASP.NET Core with real output: constructor injection, singleton/scoped/transient lifetimes, captive dependencies, scope validation, IServiceProvider and the [FromServices] detail in .NET 6.

4 Nov 2026 10 min 2
ASP.NET Core Minimal APIs with .NET 6: MapGet, MapPost and How They Compare to Controllers
Backend PART 10

ASP.NET Core Minimal APIs with .NET 6: MapGet, MapPost and How They Compare to Controllers

MapGet, MapPost, MapPut and MapDelete with .NET 6 minimal APIs, parameter binding rules, Results helpers, filling in the missing validation by hand, grouping endpoints, and when to pick minimal APIs over controllers.

4 Nov 2026 8 min 2
Model Validation in ASP.NET Core: Data Annotations and FluentValidation
Backend PART 09

Model Validation in ASP.NET Core: Data Annotations and FluentValidation

Model validation with Data Annotations, ModelState and the automatic 400, customizing ValidationProblemDetails, custom attributes, IValidatableObject and FluentValidation 11.x, including culture pitfalls with Range and messages.

4 Nov 2026 8 min 2
Blog Map