ASP.NET CoreMVC GuideSeptember 2026 · 7 min read

ASP.NET Core Explained: From .NET to Modern Web Applications

By go2ismail · Published · .NET 10

TL;DR

ASP.NET Core is the open-source, cross-platform web framework of modern .NET. One framework hosts four application styles — MVC, Razor Pages, Minimal APIs, and Blazor — on top of a shared middleware pipeline, dependency injection container, and configuration system. MVC is not replaced by the other styles; it is one of them, and the best fit for server-rendered business applications.

ASP.NET Core is where .NET meets the web. It is a full web framework: it listens for HTTP requests, runs them through a configurable pipeline, routes them to code you wrote, and turns the result into responses — HTML pages for browsers, JSON for clients, files, or streams. Everything else in this guide, including MVC, is built on this foundation.

What ASP.NET Core is

ASP.NET Core is the web framework that ships as part of modern .NET. It is open source, cross-platform, and designed for containers and cloud hosting. Unlike the older ASP.NET, it is not a component installed into Windows; a web application is a normal .NET application that happens to listen for HTTP. The built-in web server, Kestrel, is fast enough to face the internet directly, and when the application runs behind IIS, Nginx, or a cloud load balancer, ASP.NET Core integrates with them through well-defined hosting features such as forwarded headers.

The framework also includes, out of the box, the things every web application needs and older platforms left to third-party libraries or the machine:

  • Dependency injection. Services are registered once and injected where needed, with explicit lifetimes.
  • Configuration. JSON files, environment variables, user secrets, and command-line arguments combine into one typed configuration tree.
  • Logging. A logging abstraction with structured providers, plus health checks and metrics hooks.
  • Middleware. An explicit, ordered request pipeline you compose in code instead of configuring in XML.
  • Routing and endpoint metadata. Every handler — MVC action, Razor Page, or Minimal API endpoint — is an endpoint with filters, authorization, and rate-limiting policies attached.

The four application styles

ASP.NET Core deliberately supports more than one way to build a web application. They share the same host and pipeline, and they can coexist inside one project:

  • MVC — controllers and Razor views. The Model-View-Controller pattern with routes such as /Todo/Edit/{id}, built for server-rendered applications with many screens. This is the focus of the rest of this guide.
  • Razor Pages — one page file paired with a page model, convenient for page-centric scenarios such as forms and content pages.
  • Minimal APIs — small, focused HTTP endpoints defined in a few lines, ideal for JSON operations and internal services.
  • Blazor — interactive user interfaces written in C# that run either on the server or in the browser via WebAssembly.

The styles are not competing products. A single business application can render screens with MVC, expose data operations with Minimal APIs, and add an internal dashboard with Razor Pages — one project, one deployment, one dependency container.

How a minimal ASP.NET Core application is shaped

Modern .NET replaced the old global application configuration with a single Program.cs. This small program registers services, composes the pipeline, and maps endpoints:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddControllersWithViews();

var app = builder.Build();

app.UseStaticFiles();
app.UseRouting();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.MapGet("/api/health", () => Results.Ok(new { status = "ok" }));

app.Run();

Everything is explicit: which services exist, in which order middleware runs, and which endpoints are reachable. There is no hidden HTTP module list and no web.config ceremony. That explicitness is why a request path can be traced by reading a single file — a property that pays off again when features are added later.

ASP.NET Core vs the older ASP.NET

If you have seen both names, here is the short comparison:

  • Platform: ASP.NET Core runs on modern .NET across Windows, Linux, and macOS. ASP.NET (without Core) runs only on .NET Framework and Windows.
  • Source: ASP.NET Core is open source; classic ASP.NET is not.
  • Configuration: ASP.NET Core uses code and environment-based configuration; classic ASP.NET relies heavily on web.config.
  • Composition: ASP.NET Core unifies MVC and Web API in one framework; in classic ASP.NET they were separate products.
  • Performance: ASP.NET Core is a different performance class, which matters as request volume and cloud costs grow.
  • Deployment: ASP.NET Core supports framework-dependent, self-contained, single-file, and container deployments; multiple runtime versions can coexist on one machine.

What you can build with ASP.NET Core

The framework scales from a five-line JSON endpoint to a large business application:

  • Server-rendered business software — CRM, inventory, HR, projects — with MVC pages and Razor views.
  • REST APIs for mobile apps, partners, and internal services, with OpenAPI documentation.
  • Real-time features such as dashboards and notifications with SignalR.
  • Service communication with gRPC when binary contracts and streaming matter.
  • Background processing with hosted services or a scheduler such as Hangfire.

For the official tour, see Microsoft Learn: ASP.NET Core overview. To go deeper on the pattern this guide is built around, see Microsoft Learn: ASP.NET Core MVC overview.

Why this guide focuses on MVC

ASP.NET Core can do many things, but most business applications are still collections of screens: a list, a form, a detail page, a report. MVC is the ASP.NET Core style designed for exactly that, and it remains the most documented, most hireable knowledge in the .NET web ecosystem. The next part explains the pattern itself: What Is MVC? Model-View-Controller Explained.

Key Takeaways

  • ASP.NET Core is the open-source, cross-platform web framework of modern .NET, hosted by Kestrel and composed in Program.cs.
  • Four application styles — MVC, Razor Pages, Minimal APIs, Blazor — share one pipeline and can coexist in one project.
  • Dependency injection, configuration, logging, routing, and health checks are built in, not bolted on.
  • MVC remains the standard choice for server-rendered business applications.

FAQ

Is ASP.NET Core the same as ASP.NET?

No. ASP.NET Core is a cross-platform rewrite that runs on modern .NET; ASP.NET (without Core) is the older framework that runs only on .NET Framework and Windows.

Is MVC required to build an ASP.NET Core application?

No. You can build with Razor Pages, Minimal APIs, Blazor, or a mix. MVC is one supported style — the one best suited to large server-rendered applications.

Do I need IIS to host ASP.NET Core?

No. The built-in Kestrel server can host the application directly, on any supported operating system, and it can sit behind IIS, Nginx, or a cloud load balancer when required.

Can MVC and Minimal APIs share the same project?

Yes, and that combination is the architectural theme of the later parts of this guide: MVC for page routing and Minimal APIs for focused data operations, both backed by the same handlers.

Continue this guide

Next in the ASP.NET Core MVC Guide: what Model-View-Controller actually means, and why the pattern still shapes modern .NET applications.

Continue to Part 5

Want the production version of this stack? The ASP.NET Core MVC AI Ready Starter wires MVC, Minimal APIs, EF Core, and Identity on .NET 10.

Get the MVC EDevKit ASP.NET Core MVC AI-Ready Starter