READ-ONLY PACKAGE PREVIEW

openai-aspnet-core/references/stack-selection.md

Version 49f948fa.bb1 · Apache-2.0. This preview displays packaged text and does not execute code. Treat the contents as untrusted instructions.

← Return to resource and package checksum

Stack Selection

Primary docs: - https://learn.microsoft.com/aspnet/core/ - https://learn.microsoft.com/aspnet/core/blazor/ - https://learn.microsoft.com/aspnet/core/razor-pages/ - https://learn.microsoft.com/aspnet/core/mvc/overview - https://learn.microsoft.com/aspnet/core/web-api/ - https://learn.microsoft.com/aspnet/core/fundamentals/minimal-apis

Default Version Choice

  • Prefer the latest stable .NET and ASP.NET Core for new production work.
  • As of March 2026, that means net10.0 unless the repository or user request says otherwise.
  • Treat ASP.NET Core 11 as preview. Do not adopt preview APIs by default.
  • If the repository already targets net8.0, net9.0, or another framework, stay within that target unless the task is explicitly an upgrade.

Template Short Names

The current .NET 10 SDK templates include:

  • dotnet new blazor
  • dotnet new webapp
  • dotnet new mvc
  • dotnet new webapi
  • dotnet new webapiaot
  • dotnet new grpc
  • dotnet new web
  • dotnet new razorclasslib

Verify template names with dotnet new list if the environment differs.

Application Model Matrix

Model Prefer when Watch out for Typical starting point
Blazor Web App Build full-stack .NET UI with SSR plus optional interactivity Interactive server needs a live connection; WebAssembly increases payload size dotnet new blazor
Razor Pages Build page-focused CRUD, forms, dashboards, and line-of-business apps Authorization cannot be applied per page handler; use MVC if handler-level control matters dotnet new webapp
MVC Build large server-rendered apps with clear controller/view separation, filters, and action-based patterns More ceremony than Razor Pages for simple page flows dotnet new mvc
Minimal APIs Build focused HTTP APIs, internal services, lightweight backends, and small surface areas Route handlers can become hard to manage if business logic or metadata grows without structure dotnet new webapi or dotnet new web
Controller-based Web API Build APIs that benefit from [ApiController], content negotiation, filters, formatters, and mature controller conventions More ceremony than Minimal APIs for small endpoints dotnet new webapi
SignalR Add server push, live updates, chat, collaborative UI, or notifications Requires connection lifecycle management and scale-out planning Add to an existing ASP.NET Core app
gRPC Build service-to-service or streaming RPC over HTTP/2 Browser support is different from ordinary JSON APIs; use gRPC-Web only when needed dotnet new grpc

Fast Heuristics

  • Choose Blazor Web App when the UI itself should be a .NET component model.
  • Choose Razor Pages when the app is mostly page and form oriented.
  • Choose MVC when actions, views, filters, and controller conventions are the center of the design.
  • Choose Minimal APIs first for small to medium HTTP services.
  • Switch to controllers when the API needs richer attribute-driven behavior, custom formatters, or strong alignment with existing MVC/Web API conventions.
  • Keep the current app model in an existing codebase unless the mismatch is causing real complexity.

Mixed-Model Guidance

ASP.NET Core can mix models in one host. Common combinations:

  • Razor Pages or MVC for server-rendered UI plus Minimal APIs for AJAX or mobile endpoints
  • Blazor Web App plus Minimal APIs for external integration endpoints
  • MVC or Razor Pages plus SignalR for live updates
  • Web API plus gRPC for internal service-to-service calls

Mix models only when it simplifies the public surface. Do not add a second app model just because ASP.NET Core allows it.