Introduction to ASP.NET Core

By Daniel Roth, Rick Anderson, and Shaun Luttin

ASP.NET Core is a new open-source and cross-platform framework for building modern, cloud-based, Internet-connected applications, such as web apps, IoT apps and mobile backends. It was architected to provide an optimized development framework for apps that are deployed to the cloud or run on-premises. It consists of modular components with minimal overhead, so you retain flexibility while constructing your solutions. You can develop and run ASP.NET Core apps on Windows, Mac and Linux. ASP.NET Core apps can run on .NET Core or on the .NET Framework.

Why use ASP.NET Core?

ASP.NET was released over 15 years ago. Millions of developers have used ASP.NET (and continue to use it) to create web apps. ASP.NET Core is a significant redesign of ASP.NET, with architectural changes that result in a leaner and modular framework.

ASP.NET Core is not based on System.Web.dll. It is based on a set of granular and well-factored NuGet packages. This allows you to optimize your app to include just the NuGet packages you need. The benefits of a smaller app surface area include tighter security, reduced servicing, improved performance, and decreased costs in a pay for what you use model.

ASP.NET Core provides the following improvements compared to ASP.NET:

  • A unified story for building web UI and web APIs.
  • Integration of modern client-side frameworks and development workflows.
  • A cloud-ready environment-based configuration system.
  • Built-in dependency injection.
  • A light-weight and modular HTTP request pipeline.
  • Ability to host on IIS or self-host in your own process.
  • Built on .NET Core, which supports true side-by-side app versioning.
  • Ships entirely as NuGet packages.
  • New tooling that simplifies modern web development.
  • Build and run cross-platform ASP.NET Core apps on Windows, Mac, and Linux.
  • Open-source and community-focused.

Build web APIs and web UI using ASP.NET Core MVC

  • Build HTTP services that reach a broad range of clients, including browsers and mobile devices. Support for multiple data formats and content negotiation is built-in. ASP.NET Core is an ideal platform for building web APIs and RESTful apps on .NET Core. See Building web APIs.
  • Create well-factored and testable web apps that follow the Model-View-Controller (MVC) pattern. See MVC and Testing.
  • Razor provides a productive language to create Views.
  • Tag Helpers enable server-side code to participate in creating and rendering HTML elements in Razor files.
  • Model Binding automatically maps data from HTTP requests to action method parameters.
  • Model Validation automatically performs client and server side validation.

Client-side development

ASP.NET Core is designed to integrate seamlessly with a variety of client-side frameworks, including AngularJS, KnockoutJS and Bootstrap. See Client-Side Development for more details.

Next steps

For more information, see the following resources: