MSDN Documentation

Introduction to ASP.NET Core

Welcome to the world of ASP.NET Core! This tutorial will guide you through the fundamental concepts and features of this powerful, open-source, cross-platform framework for building modern, cloud-enabled applications.

What is ASP.NET Core?

ASP.NET Core is a rewrite of the ASP.NET platform. It's designed to be:

  • Cross-platform: Run on Windows, macOS, and Linux.
  • High-performance: Optimized for speed and efficiency.
  • Modular: Easily customize your application by including only the components you need.
  • Open-source: Developed in the open with community contributions.
  • Cloud-ready: Built with cloud deployment scenarios in mind.

Key Concepts

Let's explore some of the core building blocks of ASP.NET Core:

Middleware

Middleware are components that plug into the application's request processing pipeline. Each middleware has access to the incoming HttpContext and can perform actions, pass control to the next middleware, or terminate the request.

A typical ASP.NET Core application's pipeline might look like this:


app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers();
});
                

Hosting

ASP.NET Core applications are hosted by a web server. Kestrel is the default cross-platform web server included with ASP.NET Core. You can also host your application behind other web servers like IIS or Nginx.

Dependency Injection (DI)

ASP.NET Core has a built-in, lightweight DI container. This allows you to easily manage the dependencies of your application components, promoting loose coupling and testability.

To register a service:


// In Startup.cs or Program.cs
services.AddScoped();
                

To inject a service:


public class MyController : Controller
{
    private readonly IMyService _myService;

    public MyController(IMyService myService)
    {
        _myService = myService;
    }

    // ... action methods
}
                

Configuration

ASP.NET Core provides a flexible configuration system that allows you to load settings from various sources, such as JSON files, environment variables, and command-line arguments.

Razor Pages and MVC

ASP.NET Core offers two primary patterns for building web UIs:

  • Razor Pages: A page-centric model that simplifies building UI with server-side code. Ideal for page-focused scenarios.
  • Model-View-Controller (MVC): A well-established pattern for building complex, scalable applications by separating concerns into models, views, and controllers.

Next Steps

Now that you have a basic understanding of ASP.NET Core, you can dive deeper into specific areas. We recommend exploring: