Mert Özen Further With Every Line

Blog

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

Series
220 posts found #dotnet
Data Annotations or Fluent API in EF Core? OnModelCreating and IEntityTypeConfiguration
Database PART 04

Data Annotations or Fluent API in EF Core? OnModelCreating and IEntityTypeConfiguration

We put the two ways of overriding conventions side by side: data annotations and the Fluent API in OnModelCreating. We split configuration with IEntityTypeConfiguration and ApplyConfigurationsFromAssembly, test unique indexes, check constraints and default values against real SQLite errors, and see the precedence order and the bool default trap.

5 Nov 2026 9 min 21
Model and Conventions in EF Core: Keys, Nullability, Column Types and Shadow Properties
Database PART 03

Model and Conventions in EF Core: Keys, Nullability, Column Types and Shadow Properties

We read how EF Core builds its model from real schema output: the key convention, NOT NULL and NULL columns with NRT, SQLite and SQL Server column types, the decimal warning, temporary keys and Guid generation, where table names come from, and the shadow foreign key EF Core adds on its own.

5 Nov 2026 9 min 20
Your First EF Core App: DbContext, DbSet, SQLite and the Generated SQL
Database PART 02

Your First EF Core App: DbContext, DbSet, SQLite and the Generated SQL

We build the first EF Core app from an empty console project: the SQLite and Design packages, dotnet-ef as a local tool, DbContext and DbSet, OnConfiguring, EnsureCreated, the first insert and query, real SQL via LogTo and ToQueryString, and the SQL differences between EF Core 6 and 10.

5 Nov 2026 10 min 20
What Is Entity Framework Core? The ORM Idea and EF Core's Architecture
Database PART 01

What Is Entity Framework Core? The ORM Idea and EF Core's Architecture

Starting from plain ADO.NET code we see why ORMs exist: EF Core's DbContext, model, provider and change tracker, the different SQL SQLite and SQL Server generate from the same LINQ, EF6 versus EF Core, a Dapper comparison and how the series is organized.

5 Nov 2026 9 min 22
What's New in .NET 10: AddValidation, OpenAPI 3.1 and Server-Sent Events in ASP.NET Core
Backend PART 36

What's New in .NET 10: AddValidation, OpenAPI 3.1 and Server-Sent Events in ASP.NET Core

.NET 10 LTS brings AddValidation to minimal APIs, OpenAPI 3.1 and YAML, TypedResults.ServerSentEvents, System.Text.Json-based JSON Patch, dotnet run app.cs, C# 14 and breaking changes such as cookie auth 401/403.

4 Nov 2026 9 min 44
What's New in .NET 9: Built-in OpenAPI, Scalar and HybridCache in ASP.NET Core
Backend PART 35

What's New in .NET 9: Built-in OpenAPI, Scalar and HybridCache in ASP.NET Core

.NET 9 drops Swashbuckle from the template: AddOpenApi/MapOpenApi, transformers, Scalar and Swagger UI, stampede-safe HybridCache, TypedResults.InternalServerError, StatusCodeSelector, C# 13 and 24-month STS support.

4 Nov 2026 9 min 39
What's New in ASP.NET Core with .NET 8: Keyed DI, IExceptionHandler, Identity API and Native AOT
Backend PART 34

What's New in ASP.NET Core with .NET 8: Keyed DI, IExceptionHandler, Identity API and Native AOT

Keyed DI, IExceptionHandler, MapIdentityApi, ShortCircuit, TimeProvider, Native AOT and the minimal API template in .NET 8, compared with .NET 6, plus C# 12, migration notes and the November 10, 2026 end of support.

4 Nov 2026 9 min 41
What's New in ASP.NET Core with .NET 7: MapGroup, TypedResults, Rate Limiting and Output Caching
Backend PART 33

What's New in ASP.NET Core with .NET 7: MapGroup, TypedResults, Rate Limiting and Output Caching

MapGroup, TypedResults and Results<T1,T2>, endpoint filters, AddProblemDetails, rate limiting and output caching in .NET 7, compared with .NET 6, plus C# 11 required members, raw string literals and migration notes.

4 Nov 2026 9 min 44
Reading Old .NET Core 3.1 and .NET 5 Projects: Migrating from Startup.cs to .NET 6
Backend PART 32

Reading Old .NET Core 3.1 and .NET 5 Projects: Migrating from Startup.cs to .NET 6

We read the Startup.cs, Generic Host and UseRouting/UseEndpoints structure of the .NET Core 3.1 and .NET 5 era, then move the same ASP.NET Core API to .NET 6 step by step, including System.Text.Json differences.

4 Nov 2026 10 min 43
Containerizing an ASP.NET Core Web API with Docker and Setting Up CI/CD with GitHub Actions
Backend PART 31

Containerizing an ASP.NET Core Web API with Docker and Setting Up CI/CD with GitHub Actions

We containerize an ASP.NET Core Web API with a multi-stage Dockerfile: dotnet publish, the layer cache, .dockerignore, ports and environment settings; then we build a GitHub Actions CI/CD pipeline that tests the code and pushes the image to ghcr.io.

4 Nov 2026 9 min 48
Integration Testing an ASP.NET Core Web API: End-to-End Tests with WebApplicationFactory
Backend PART 30

Integration Testing an ASP.NET Core Web API: End-to-End Tests with WebApplicationFactory

We spin up an ASP.NET Core Web API in memory with WebApplicationFactory and test it at the HTTP level: public partial class Program, swapping the database for in-memory SQLite, Location and ProblemDetails tests, and test isolation.

4 Nov 2026 9 min 45
Unit Testing an ASP.NET Core Web API: Service and Controller Tests with xUnit and Moq
Backend PART 29

Unit Testing an ASP.NET Core Web API: Service and Controller Tests with xUnit and Moq

Unit testing an ASP.NET Core Web API with xUnit and Moq: the right package versions for net6.0, AAA and naming, Setup and Verify, the Result/Value difference in ActionResult<T> tests, Theory, and a comparison with NSubstitute.

4 Nov 2026 11 min 39
Blog Map