{"slug":"best-net-frameworks-for-vertical-slice-apis","title":"Best .NET frameworks for vertical slice APIs","question":"What are the best .NET frameworks for vertical slice APIs in 2026?","verdict":"As of 2026-09-04, Claude, Gemini and Grok collectively rank FastEndpoints #1 for .net frameworks for vertical slice apis on ModelsAgree by aggregate score. The models' case: Purpose-built for the REPR (Request-Endpoint-Response) pattern, which maps almost one-to-one onto vertical slices — each endpoint is a self-contained class colocating. The models' main caveat: Opinionated class-per-endpoint structure and its own abstractions mean you're buying into a framework idiom. The strongest alternative is Wolverine — Purpose-built for vertical-slice APIs: the HTTP method is the handler (no controller → mediator → handler hop), convention discovery finds slices. Not unanimous: Grok picks Wolverine. Source: https://modelsagree.com/best/best-net-frameworks-for-vertical-slice-apis (modelsagree.com, CC BY 4.0).","category":"Backend","url":"https://modelsagree.com/best/best-net-frameworks-for-vertical-slice-apis","updated":"2026-09-04","models":["Claude","Gemini","Grok"],"consensus":"2 of 3 models rank FastEndpoints the top pick","disagreement":"Grok picks Wolverine","combined":[{"rank":1,"product":"FastEndpoints","domain":"fast-endpoints.com","score":14,"appearances":3,"modelRanks":{"Claude":1,"Gemini":1,"Grok":2},"reason":"Purpose-built for the REPR (Request-Endpoint-Response) pattern, which maps almost one-to-one onto vertical slices — each endpoint is a self-contained class colocating request, validation (FluentValidation baked in), handler, and response, so a feature lives in one folder with no cross-cutting controller sprawl. Near-zero boilerplate, strong source-generated performance close to raw Minimal APIs, first-class model binding, built-in versioning, and good testing story. Best default for a team that wants VSA conventions enforced without hand-rolling them."},{"rank":2,"product":"Wolverine","domain":"wolverinefx.net","score":12,"appearances":3,"modelRanks":{"Claude":2,"Gemini":3,"Grok":1},"reason":"Purpose-built for vertical-slice APIs: the HTTP method is the handler (no controller → mediator → handler hop), convention discovery finds slices without custom wiring, compound handlers keep load/validate/act in one slice, and the same pipeline covers in-process commands plus a transactional outbox if the slice later publishes. Assumption that shaped the rank: the typical practitioner is shipping feature-rich APIs that will grow past CRUD, not a three-endpoint microservice."},{"rank":3,"product":"ASP.NET Core","domain":"microsoft.com","score":10,"appearances":3,"modelRanks":{"Claude":3,"Gemini":2,"Grok":3},"reason":"Near-tie with FastEndpoints; native first-party platform capability offering maximum throughput, zero external dependencies, seamless Native AOT compilation, and native RouteGroupBuilder support for grouping feature-folder endpoints directly in the runtime."},{"rank":4,"product":"Carter","domain":"github.com","score":6,"appearances":3,"modelRanks":{"Claude":4,"Gemini":4,"Grok":4},"reason":"A thin, well-liked module layer over Minimal APIs that groups related endpoints into ICarterModule classes — a natural seam for one module per slice — while adding auto-discovery, FluentValidation integration, and content negotiation without hiding the underlying ASP.NET primitives. Low-lock-in middle ground between raw Minimal APIs and a full framework."},{"rank":5,"product":"MediatR","domain":"mediatr.io","score":1,"appearances":1,"modelRanks":{"Claude":5},"reason":"Still the most widely understood way to express a slice as a IRequest/handler pair with pipeline behaviors for validation, logging, and transactions, paired with Minimal APIs or controllers as the transport. Mature, battle-tested, huge body of VSA examples built on it."}],"perModel":{"Claude":[{"rank":1,"product":"FastEndpoints","reason":"Purpose-built for the REPR (Request-Endpoint-Response) pattern, which maps almost one-to-one onto vertical slices — each endpoint is a self-contained class colocating request, validation (FluentValidation baked in), handler, and response, so a feature lives in one folder with no cross-cutting controller sprawl. Near-zero boilerplate, strong source-generated performance close to raw Minimal APIs, first-class model binding, built-in versioning, and good testing story. Best default for a team that wants VSA conventions enforced without hand-rolling them.","fix":"Opinionated class-per-endpoint structure and its own abstractions mean you're buying into a framework idiom; teams wanting to stay on stock ASP.NET primitives or needing heavy MVC-style controller features will chafe."},{"rank":2,"product":"Wolverine","reason":"JasperFx's mediator-plus-messaging library collapses the handler/dispatch layer that VSA needs — convention-based handlers with no interface ceremony, and it doubles as a real transactional messaging/outbox and durable-inbox system (pairs natively with Marten for event sourcing). Its HTTP endpoints package lets a slice's handler be the endpoint, and compile-time codegen keeps runtime overhead low. Strongest pick when slices need to emit commands/events, not just handle HTTP.","fix":"The convention-magic and codegen make debugging and onboarding harder; overkill if you only need request/response HTTP with no async messaging, and it pulls you toward the wider JasperFx (Marten) ecosystem."},{"rank":3,"product":"ASP.NET Core","reason":"The framework-native baseline — endpoint route groups, filters, and typed results give you enough to organize features as slices with zero third-party dependencies, full Microsoft support, and the best long-term stability and AOT/perf trajectory. With a light convention (a folder per feature + an endpoint-registration extension) it delivers honest VSA for teams that value owning their own structure.","fix":"Provides no VSA opinion out of the box — validation, handler dispatch, and slice conventions are all DIY, so large codebases drift without team discipline or a helper library layered on top."},{"rank":4,"product":"Carter","reason":"A thin, well-liked module layer over Minimal APIs that groups related endpoints into ICarterModule classes — a natural seam for one module per slice — while adding auto-discovery, FluentValidation integration, and content negotiation without hiding the underlying ASP.NET primitives. Low-lock-in middle ground between raw Minimal APIs and a full framework.","fix":"Deliberately minimal — it organizes routing but gives you no handler/mediation, so you still assemble the rest of the slice yourself; less momentum and feature depth than FastEndpoints."},{"rank":5,"product":"MediatR","reason":"Still the most widely understood way to express a slice as a IRequest/handler pair with pipeline behaviors for validation, logging, and transactions, paired with Minimal APIs or controllers as the transport. Mature, battle-tested, huge body of VSA examples built on it.","fix":"Went to a paid commercial license (Lulu/LamarCode) in its recent versions, changing the calculus for new projects; it's only in-process mediation, adds an indirection layer some now consider unnecessary, and does nothing for the HTTP edge itself."}],"Gemini":[{"rank":1,"product":"FastEndpoints","reason":"Purpose-built for the REPR (Request-Endpoint-Response) pattern and Vertical Slice Architecture; encapsulates request, response, validation (FluentValidation), and logic into a cohesive single-class slice per endpoint with zero mediator overhead, excellent integration testing fixtures, and minimal API performance.","fix":"Not for teams committed to multi-layered hexagonal/clean architecture with strictly decoupled, protocol-agnostic domain handlers, or enterprise environments mandating zero third-party dependencies."},{"rank":2,"product":"ASP.NET Core","reason":"Near-tie with FastEndpoints; native first-party platform capability offering maximum throughput, zero external dependencies, seamless Native AOT compilation, and native RouteGroupBuilder support for grouping feature-folder endpoints directly in the runtime.","fix":"Lacks opinionated structural conventions out of the box, forcing teams to manually invent and enforce endpoint discovery, validation pipelines, and slice isolation patterns without compiler guidance."},{"rank":3,"product":"Wolverine","reason":"Uniquely excels for vertical slices in complex, event-driven, or transactional domains; uses source generation to compile HTTP endpoints and messaging handlers into zero-allocation execution pipelines, cleanly uniting HTTP APIs with message buses and transactional outbox patterns in the same slice.","fix":"Has a steep conceptual learning curve and unconventional runtime compilation model; significant overkill for straightforward synchronous CRUD Web APIs."},{"rank":4,"product":"Carter","reason":"The simplest low-ceremony organizer for structuring ASP.NET Core Minimal APIs into vertical slices via ICarterModule; delivers automatic endpoint registration while staying completely aligned with native framework primitives and zero performance overhead.","fix":"Extremely thin scope; it only handles module discovery and registration, providing no built-in conventions for request/response typing, slice-level pipeline behaviors, or input validation."}],"Grok":[{"rank":1,"product":"Wolverine","reason":"Purpose-built for vertical-slice APIs: the HTTP method is the handler (no controller → mediator → handler hop), convention discovery finds slices without custom wiring, compound handlers keep load/validate/act in one slice, and the same pipeline covers in-process commands plus a transactional outbox if the slice later publishes. Assumption that shaped the rank: the typical practitioner is shipping feature-rich APIs that will grow past CRUD, not a three-endpoint microservice.","fix":"Steep idioms and JasperFx/Critter Stack gravity — not for teams that only want a thin HTTP layer and refuse a messaging-shaped framework."},{"rank":2,"product":"FastEndpoints","reason":"REPR (one class per endpoint) maps 1:1 onto feature folders; FluentValidation, OpenAPI, processors, versioning, and typed test helpers are built in; latency tracks Minimal APIs on .NET 10. Near-tie with #3 for HTTP-only teams that want enforced structure without inventing conventions.","fix":"Third-party HTTP stack with a public 2026 funding/bugfix-mode warning — not for teams that cannot accept community-maintained infrastructure risk."},{"rank":3,"product":"ASP.NET Core","reason":"First-party, zero extra license or runtime, Native AOT and OpenAPI are native, and .NET 10 added built-in validation — production VSA in 2026 is often just feature folders + MapGroup + a hand-rolled handler with no second framework. Wins when lock-in, hiring familiarity, and platform alignment beat opinionated structure.","fix":"No slice conventions — not for multi-dev APIs that will rot into Program.cs/lambda sprawl without team discipline."},{"rank":4,"product":"Carter","reason":"Thinnest useful module layer over Minimal APIs (ICarterModule per feature area, auto DI, FluentValidation hooks) so slices group without FastEndpoints/Wolverine opinions or a mediator.","fix":"Small community and little beyond routing modules — not for teams that need processors, outbox, REPR testing, or a batteries-included slice runtime."}]},"missedByModel":{"Claude":[{"product":"NimblePros/Ardalis Clean Architecture + Result templates","reason":"excellent scaffolding and Result-type ergonomics, but it's a template/guidance stack oriented toward Clean Architecture layering rather than a VSA-first framework"}],"Gemini":[{"product":"MediatR","reason":"Frequently used to organize slices, but it is an in-process messaging library rather than an API endpoint framework, adding unnecessary indirection and allocation compared to modern endpoint-first tools"},{"product":"Ardalis.Endpoints","reason":"Pioneered the REPR pattern in .NET, but built on heavier ASP.NET Core MVC controller abstractions that have been largely superseded by Minimal API-native solutions"}],"Grok":[{"product":"MediatR","reason":"still the tutorial VSA default with Minimal APIs/controllers, but v13+ is commercial and the extra Send hop is the ceremony #1/#2 exist to delete"},{"product":"ServiceStack","reason":"message-per-operation is slice-adjacent and strong on typed clients/AutoQuery, but it is a commercial full platform, not a VSA API framework"}]}}