C# DotNET leet
Home
About
Blogs
Contact
  • Page
  • Blogs

Blogs About architecture, code design, cutting-edge technologies, best practices, etc..


Start With a Loosely Coupled Monolith

Greenfield project, small team, no microservices on day one. Bounded contexts as separate projects, one schema per module, messages between modules, and why the split to services later is a deployment decision and not a rewrite.

Architecture, Modular Monolith, Microservices, Messaging

When a DTO Is Worth Writing: Composition, Boundaries and CQRS with MediatR

Part 2 of the DTO series. The 1-to-1 mapping trap, the two jobs a DTO actually does, data on the inside versus outside, and how MediatR queries and commands replace CRUD wrappers around database tables.

DTO, MediatR, CQRS, EF Core, API design

5 Rules for Writing Better DTOs in .NET (and the Most Common Traps)

Record or class, properties or fields, where the Dto suffix belongs, one type per boundary, and why DataAnnotations on positional records silently return valid. Each trap comes with a runnable example and the fix.

DTO, Records, System.Text.Json, FluentValidation

.NET Aspire Blazor Identity Integration

A full step-by-step guide to integrating ASP.NET Core Identity with a .NET Aspire Blazor app: DbContext setup, role & user seeding, cookie auth across services, and a Blazor auth test page.

Identity, .NET Aspire, Blazor