Member-only story
Vertical Slice Architecture in .NET C#: From layers to feature slices (2026)
Imagine your e-commerce runs on a clean solution, like the one we built in the previous article. (If you want to find out more about the Onion and Clean Architecture, click here.) Marketing asks for something small: customers must be able to add a delivery note to their order. A text field, a length limit, a column. You open the solution to see how far the change goes:
// Naive approach - What NOT to do: a small feature, five projects
src/
Shop.Domain/ Order.cs <- the note and its rule
Shop.Application/ PlaceOrderCommand.cs <- a new property
PlaceOrderHandler.cs <- pass the note along
Shop.Infrastructure/ OrderConfiguration.cs <- a column
Migrations/... <- a migration
Shop.Web/ Contracts/PlaceOrderRequest.cs <- the same property, again
Validators/PlaceOrderRequestValidator.cs <- a length limit
Endpoints/OrderEndpoints.cs <- map request to command
tests/
Shop.Application.Tests/ PlaceOrderHandlerTests.csNobody did anything wrong. Every file is where the rules of the architecture say it should be. And yet one small feature has made us open at least nine files in five projects. The result?
- To understand “placing an order” you jump between four projects that have nothing else in common.










