Learn Minimal APIs from start to finish. Perfect for beginners.

.NET tutorials

.NET app returning a blank 500? Not with exception handlers
.NET app returning a blank 500? Not with exception handlers

Is your ASP.NET Core Web API returning a blank 500 response? Learn how to fix it properly using exception handlers.

PagedResults in EF Core: One class, endless reuse
PagedResults in EF Core: One class, endless reuse

Learn how to build a reusable PagedResults class in .NET that works with Entity Framework Core and supports multiple entity types.

EF Core without migrations - it's only a matter of time
EF Core without migrations - it's only a matter of time

Learn why EF Core without migrations is a disaster. Learn how to setup, configure, and deploy using migrations to keep databases consistent across environments.

Clean architecture in .NET explained by refactoring an API
Clean architecture in .NET explained by refactoring an API

Learn how to refactor an ASP.NET Core API using clean architecture by separating validation, business logic, and database access into clear layers.

How to migrate from controllers to Minimal APIs
How to migrate from controllers to Minimal APIs

Learn why Minimal APIs are now recommended in .NET and follow a step-by-step guide to migrate from controllers to Minimal APIs with versioning and Swagger.

The best way to create email templates in .NET
The best way to create email templates in .NET

Learn how to generate reusable email HTML using Razor Views in ASP.NET Core with strongly-typed models.

The simplest way to secure a Minimal API (With Swagger)
The simplest way to secure a Minimal API (With Swagger)

Secure your .NET Minimal API quickly using API key authentication, with full Swagger support for testing and protecting endpoints.

Validate .NET configuration on startup
Validate .NET configuration on startup

Learn how to validate .NET configuration on startup using data annotations or FluentValidation, so your app fails fast and never ships with broken config.

EF Core transactions: Stop your data getting out of sync
EF Core transactions: Stop your data getting out of sync

Learn how to use transactions in Entity Framework Core to ensure multiple database operations either all succeed or all roll back, keeping your data consistent.

Why your Entity Framework Core app needs query filters
Why your Entity Framework Core app needs query filters

Discover how EF Core query filters enforce global rules, simplify multitenancy, and clean up queries to stop sensitive data leaking into production.