Mert Özen Further With Every Line

Blog

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

Series
30 posts found #ASP.NET Core
Performance, Optimization and Closing the Series: Where to Go From Here?
Backend PART 30

Performance, Optimization and Closing the Series: Where to Go From Here?

We close the series: the basic principles of performance, the most common bottlenecks (like the N+1 query), not optimizing without measuring, a recap of what we learned, and where to go next.

23 Aug 2026 13 min 25
Deploying with CI/CD: Automating Test, Build and Deployment with GitHub Actions
Backend PART 29

Deploying with CI/CD: Automating Test, Build and Deployment with GitHub Actions

We cover CI/CD: what continuous integration and continuous deployment mean, why an automated pipeline is needed, setting up a workflow with GitHub Actions, and automating test-build-deploy on every change.

23 Aug 2026 13 min 24
Containerizing with Docker: Putting the Application into a Package That Runs the Same Everywhere
Backend PART 28

Containerizing with Docker: Putting the Application into a Package That Runs the Same Everywhere

We cover containerizing the application with Docker: what a container is, how it solves the "it worked on my machine" problem, packaging a .NET app with a Dockerfile and multi-stage build.

23 Aug 2026 13 min 22
Health Checks and Monitoring: Observing That the API Is Up and Healthy
Backend PART 27

Health Checks and Monitoring: Observing That the API Is Up and Healthy

We cover health checks and monitoring: automatically checking whether the application is healthy in production, observing dependencies like the database, the liveness/readiness distinction, and the basics of monitoring.

23 Aug 2026 12 min 26
Caching: In-Memory and Distributed Cache with Redis
Backend PART 26

Caching: In-Memory and Distributed Cache with Redis

We cover caching: improving performance by temporarily storing frequently requested but rarely changing data, the difference between in-memory and Redis-based distributed cache, and cache consistency.

23 Aug 2026 13 min 27
Integration Testing: Testing the API End to End with WebApplicationFactory
Backend PART 25

Integration Testing: Testing the API End to End with WebApplicationFactory

We cover integration testing: its difference from unit testing, what testing pieces together means, flowing a real request end to end with WebApplicationFactory, and using a separate test database.

21 Aug 2026 13 min 31
Unit Testing: Testing Pieces of Code in Isolation with xUnit and Moq
Backend PART 24

Unit Testing: Testing Pieces of Code in Isolation with xUnit and Moq

We cover unit testing: what testing a unit in isolation means, why we write tests, the test structure with xUnit, faking dependencies with Moq, and the basic principles of writing good tests.

21 Aug 2026 13 min 31
Documentation with Swagger/OpenAPI and Scalar: Make Your API Self-Describing
Backend PART 23

Documentation with Swagger/OpenAPI and Scalar: Make Your API Self-Describing

We cover API documentation: what OpenAPI is, why automatic documentation matters, OpenAPI support in .NET 9, and setting up interactive docs with Swagger UI and a modern alternative, Scalar.

21 Aug 2026 12 min 30
CORS, Rate Limiting and Security Headers: Hardening the API Against External Threats
Backend PART 22

CORS, Rate Limiting and Security Headers: Hardening the API Against External Threats

We cover three topics that harden the API against misuse: controlling which sites can access it with CORS, limiting requests with rate limiting, and adding basic protection with security headers.

15 Aug 2026 13 min 67
Role- and Policy-Based Authorization: Deciding Who Is Allowed to Do What
Backend PART 21

Role- and Policy-Based Authorization: Deciding Who Is Allowed to Do What

We deepen authorization: what role-based permission is, where it falls short, how the policy and claim-based approach offers a more flexible solution, and how we set these up in .NET.

15 Aug 2026 13 min 51
Authentication with JWT: How a Token Is Created and Verified
Backend PART 20

Authentication with JWT: How a Token Is Created and Verified

We cover authentication with JWT: what a token is, what its three parts mean, why it's signed, why the server is stateless, and setting up token creation and verification in .NET step by step.

15 Aug 2026 14 min 62
Authentication and Authorization: The Difference Between Identity Verification and Permission
Backend PART 19

Authentication and Authorization: The Difference Between Identity Verification and Permission

We separate two concepts most developers confuse: authentication (who are you?) and authorization (what are you allowed to do?). The difference, the correct order, and how these are positioned in .NET.

15 Aug 2026 11 min 43
Blog Map