Vertical Slice Architecture in .NET: The Complete Guide

dotnetsoftware-architecturevertical-slice-architecture
Vertical Slice Architecture in .NET: The Complete Guide

Vertical Slice Architecture organizes code by feature instead of by layer, so everything a slice needs (endpoint, handler, validation, data access) lives in one place. Shipping one small feature in a layered codebase means touching a controller, a service, a repository, and a handful of interfaces in between. This page links to my articles on VSA in .NET, covering the core ideas, slice structure, testing, and combining it with other architectures.

What is Vertical Slice Architecture?

Vertical Slice Architecture organizes code by feature instead of by layer. Each feature (or "slice") keeps everything it needs in one place: the request, the handler, the validation, and the data access.

Instead of scattering a single feature across Controllers, Services, and Repositories, you keep it together. Each slice is self-contained, so you can change it without affecting unrelated features.

Adding a new feature means adding a new slice, not modifying five different layers.

Each feature such as Place Order, Get Order, and Cancel Order is a vertical slice owning its own endpoint, handler, and data access

Getting Started

These articles introduce the core ideas behind Vertical Slice Architecture and explain when it makes sense.

Structuring Your Slices

Once you understand the basics, you'll need patterns for organizing slices as your project grows. These articles cover structure, shared logic, and CQRS integration.

Cross-Cutting Concerns and Validation

Even self-contained slices share some concerns. These articles cover how to handle validation and cross-cutting logic without breaking slice isolation.

Combining with Other Architectures

Vertical slices work well inside Modular Monoliths and alongside Clean Architecture. These articles cover the combinations.

Testing and Quality

Vertical slices are easy to test because each slice is a focused unit with clear inputs and outputs.

Frequently Asked Questions

What is Vertical Slice Architecture?

Vertical Slice Architecture groups the endpoint, request, validation, business logic, and data access for one use case together. A feature can change without coordinating edits across controller, service, and repository layers that exist only for technical separation.

Can Vertical Slice Architecture use Clean Architecture?

Yes. Vertical slices organize behavior, while Clean Architecture controls dependency direction. Keep domain rules independent of infrastructure where that matters, but avoid forcing every simple slice through identical layers and abstractions.

Where do cross-cutting concerns go in vertical slices?

Put policy that applies across slices in pipeline behaviors, decorators, endpoint filters, or middleware. Keep feature-specific validation and decisions inside the slice. This removes repetition without turning a shared service layer into the new coupling point.

How should vertical slices be tested?

Test a slice through its public feature boundary, usually HTTP, against the real database so routing, validation, serialization, and persistence work together. Unit test extracted domain logic separately when it has enough decision complexity to justify isolation.

Browse all Vertical Slice Architecture guides →
Loading comments...

Whenever you're ready, there are 4 ways I can help you:

  1. Pragmatic Clean Architecture: Join 5,000+ students in this comprehensive course that will teach you the system I use to ship production-ready applications using Clean Architecture. Learn how to apply the best practices of modern software architecture.
  2. Modular Monolith Architecture: Join 2,800+ engineers in this in-depth course that will transform the way you build modern systems. You will learn the best practices for applying the Modular Monolith architecture in a real-world scenario.
  3. Pragmatic REST APIs: Join 1,900+ students in this course that will teach you how to build production-ready REST APIs using the latest ASP.NET Core features and best practices. It includes a fully functional UI application that we'll integrate with the REST API.
  4. Patreon Community: Join a community of 5,000+ engineers and software architects. You will also unlock access to the source code I use in my YouTube videos, early access to future videos, and exclusive discounts for my courses.

The .NET Weekly

Become a Better .NET Software Engineer

Join 66,000+ engineers who are improving their skills every Saturday morning.