ASP.NET Core Fundamentals
ASP.NET Core is Microsoft's cross-platform framework for building web applications and APIs on .NET. It provides a modular HTTP pipeline, dependency injection, routing, and tooling for creating server-side applications that run on Windows, Linux, or macOS.
itWeb development | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic: ASP.NET Core Fundamentals
ASP.NET Core is the .NET framework for turning an HTTP request into useful application work and then returning a response before the browser, mobile client, or another service becomes impatient. It does this with a host, a server, a pipeline, and endpoints. That sounds like a committee designed it. In this case, the committee left you a usable map.
The host owns the runtime furniture: Kestrel, configuration, logging, dependency injection, middleware, and lifetime signals. Kestrel accepts the connection and creates an HttpContext, the per-request bundle containing the request, response, current user, selected endpoint, and request-scoped services. From there, the request enters middleware, which is code arranged around the next step. It can inspect the request, call onward, inspect the response on its return journey, or end the trip early. Static files and rejected requests are allowed to leave before meeting an endpoint. They have places to be.
Routing chooses an endpoint from the URL and HTTP method. The endpoint then binds request data into .NET values, checks declared input rules, applies authorization, and coordinates application services. These are separate questions. A value can have the right shape, a caller can have an identity, and the operation can still be forbidden or invalid for the current business state. Computers enjoy this distinction because it gives them several places to say no.
Order is the surprise waiting in the corridor. Middleware order is application behavior, not decoration. An exception handler can only contain failures from components it wraps. Authentication establishes identity before authorization decides access. A proxy in front of Kestrel may describe the original scheme and client address, but the application must trust only known proxies. Otherwise, an incoming header has promoted itself to a witness, which is not how evidence works.
Pick an endpoint model for the boundary you need. Minimal APIs fit focused HTTP services. Controllers add class conventions. MVC and Razor Pages render server HTML. SignalR handles persistent real-time connections, while Blazor builds interactive .NET interfaces. They share the same host and request machinery, so this is a choice of shape, not a choice of separate universes.
Next, read the Intro for the complete request flow and the Cheatsheet when you need the names and order close at hand. Use the Practice tab to make a route, middleware, scoped service, and result observable on a local host. The Quiz checks the boundaries that are easy to blur. The Reference tab is the route onward when the framework starts asking for exact configuration rather than a mental model.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://dotnet.microsoft.com/en-us/apps/aspnet
Supports
- ASP.NET as the .NET web platform
- Official product-level application types and learning entry points
- https://learn.microsoft.com/en-us/aspnet/core/overview?view=aspnetcore-10.0
Supports
- ASP.NET Core as an open-source cross-platform .NET web framework
- Kestrel, integrated dependency injection, configuration, logging, tracing, and metrics
- Web apps, APIs, real-time apps, and supported deployment contexts
- https://learn.microsoft.com/en-us/aspnet/core/fundamentals/?view=aspnetcore-10.0
Supports
- Host ownership of server, middleware, logging, dependency injection, and configuration
- Kestrel and reverse-proxy deployment
- Default configuration sources, environments, logging, routing, errors, and static files
- WebApplication and WebApplicationBuilder as the modern hosting model
- https://learn.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?view=aspnetcore-10.0
Supports
- Middleware request and response behavior
- Calling the next component and short-circuiting
- Run, Map, Use, branching, and ordering guidance
- Exception handling, routing, authentication, and authorization order
- https://learn.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-10.0
Supports
- Routes as patterns mapped to handlers
- Endpoint selection and endpoint metadata
- Parameters, constraints, catch-all patterns, names, groups, and link generation
- https://learn.microsoft.com/en-us/aspnet/core/fundamentals/apis?view=aspnetcore-10.0
Supports
- Minimal APIs and controller-based APIs as the two HTTP API approaches
- Minimal APIs as Microsoft's recommendation for new HTTP API projects
- Controllers as a class-based alternative
- https://learn.microsoft.com/en-us/aspnet/core/tutorials/min-web-api?view=aspnetcore-10.0
Supports
- Minimal API project structure and route mapping
- Minimal APIs as a low-dependency fit for HTTP APIs and microservices
- Official executable beginner progression used in the links path
- https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/responses?view=aspnetcore-10.0
Supports
- Minimal API return-value and result choices
- Status codes and response body behavior
- https://learn.microsoft.com/en-us/aspnet/core/mvc/overview?view=aspnetcore-10.0
Supports
- MVC separation among models, views, and controllers
- Controllers, actions, views, and related MVC conventions
- https://learn.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-10.0
Supports
- Razor Pages as a page-focused server-rendered application model
- Shared MVC primitives such as model binding, validation, and action results
- https://learn.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-10.0
Supports
- Built-in service container, registration, injection, object graphs, and disposal
- Transient, scoped, and singleton registration
- Middleware injection and risks of resolving scoped services from longer-lived objects
- https://learn.microsoft.com/en-us/dotnet/core/extensions/dependency-injection/service-lifetimes
Supports
- Transient instances per resolution
- Scoped instances per web request
- Singleton instances for the application lifetime and thread-safety requirements
- Scoped service ownership and lifetime mismatch guidance
- https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-10.0
Supports
- Ordered configuration providers and override behavior
- JSON, environment variable, command-line, and development secret sources
- Configuration key structure and deployment override behavior
- https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration/options?view=aspnetcore-10.0
Supports
- Typed options binding and separation of configuration concerns
- Options validation and startup validation
- IOptions, IOptionsSnapshot, and IOptionsMonitor behavior
- https://learn.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-10.0
Supports
- Development, Staging, and Production environment behavior
- Environment selection at application startup
- Environment-specific diagnostics and configuration
- https://learn.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-10.0
Supports
- ILogger categories, levels, providers, filters, message templates, and scopes
- Structured log arguments and exception logging
- Security guidance for sensitive log data
- https://learn.microsoft.com/en-us/aspnet/core/mvc/models/model-binding?view=aspnetcore-10.0
Supports
- Binding request data to action, handler, and model values
- Binding sources and conversion failures
- Model state as the record of binding and validation errors
- https://learn.microsoft.com/en-us/aspnet/core/mvc/models/validation?view=aspnetcore-10.0
Supports
- Validation after model binding
- ModelState handling in MVC and Razor Pages
- Automatic HTTP 400 behavior for API controllers with ApiController
- Distinction between conversion errors and validation rules
- https://learn.microsoft.com/en-us/aspnet/core/security/authentication/?view=aspnetcore-10.0
Supports
- Authentication as identity determination
- Authentication services, handlers, schemes, challenge, and forbid behavior
- https://learn.microsoft.com/en-us/aspnet/core/security/authorization/introduction?view=aspnetcore-10.0
Supports
- Authorization as a separate access decision after authentication
- Role-based and policy-based authorization
- Requirements, handlers, claims, and resource-aware checks
- https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-10.0
Supports
- WebApplicationFactory and TestServer for hosted integration tests
- Controlled test configuration and service replacement
- HTTP testing through the application framework boundary
- https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/?view=aspnetcore-10.0
Supports
- Published output and supported hosting paths
- Reverse proxies, process management, containers, web farms, and health checks
- Deployment concerns beyond application compilation
- https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-10.0
Supports
- Forwarded client address, scheme, and host headers
- Known proxy and network trust configuration
- HTTPS redirection failures behind incorrectly configured proxies
- https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks?view=aspnetcore-10.0
Supports
- Health Check Middleware and mapped health endpoints
- External monitoring, load balancer, and orchestrator use
- Dependency checks and health status responses
- https://devblogs.microsoft.com/dotnet/announcing-asp-net-core-1-0/
Supports
- ASP.NET Core 1.0 release on 2016-06-27
- The modular, cross-platform foundation and unified MVC and Web API stack
- https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-2.0?view=aspnetcore-10.0
Supports
- Razor Pages in ASP.NET Core 2.0
- Kestrel limits and service-container configuration changes
- https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-3.0?view=aspnetcore-10.0
Supports
- Endpoint Routing, Health Checks, Generic Host, and ASP.NET Core 3.0 request observability changes
- https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-5.0?view=aspnetcore-10.0
Supports
- ASP.NET Core 5.0 Web API templates and OpenAPI support
- https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-6.0?view=aspnetcore-10.0
Supports
- Minimal APIs and the minimal hosting model in ASP.NET Core 6
- https://devblogs.microsoft.com/dotnet/announcing-asp-net-core-in-dotnet-7/
Supports
- ASP.NET Core in .NET 7 release on 2022-11-08
- Built-in rate limiting and output caching
- https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/
Supports
- NET 8 release on 2023-11-14
- Native AOT and container deployment improvements
- https://learn.microsoft.com/en-us/aspnet/core/fundamentals/native-aot?view=aspnetcore-10.0
Supports
- Native AOT support for Minimal APIs in .NET 8 and later
- AOT template constraints including generated JSON metadata and Minimal APIs only
- https://learn.microsoft.com/en-us/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-10.0
Supports
- IIS hosting for ASP.NET Core on Windows Server
- ASP.NET Core Module and in-process hosting
- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_NET.html
Supports
- Deployment, management, and scaling of .NET Windows web applications on Elastic Beanstalk
- https://cloud.google.com/run/docs/quickstarts/build-and-deploy/deploy-dotnet-service
Supports
- Building and deploying a .NET web service to Cloud Run
- https://learn.microsoft.com/en-us/azure/app-service/quickstart-dotnetcore?tabs=net80
Supports
- Deploying ASP.NET Core applications to Azure App Service
- https://learn.microsoft.com/en-us/azure/container-apps/quickstart-code-to-cloud?tabs=bash%2Ccsharp%2Cazure-portal
Supports
- Deploying a .NET application to Azure Container Apps
- https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-10.0
Supports
- Reverse-proxy deployment concerns, forwarded headers, and trusted proxy configuration for ASP.NET Core
