What is ASP.NET Core? Explain how it's different from the ASP.NET framework.

ASP.NET Core is an open-source web application framework developed by Microsoft. It’s cross-platform and runs on Windows, Mac, and Linux. Though Microsoft primarily develops it, many developers worldwide contribute to it. It’s completely free to use for commercial or hobby applications, and there are no fees or licensing costs.

ASP.NET is used to build high-performance, dynamic, and scalable web applications. You can also use it to create web APIs that can be consumed by client applications, such as mobile or embedded devices, or even web applications.

ASP.NET makes building web applications easy by providing a structure around which you can build your applications. It includes helper classes and functions that do a lot of routine processing for you, which saves you from writing a lot of this code yourself. This allows you to focus on the business logic of your applications without worrying about boilerplate code that’s common to all web applications. Using ASP.NET Core, you can write web applications or web APIs faster and more secure than if you try to build everything from scratch.

A standard ASP.NET application consists of various layers. When a client such as a browser makes an HTTP request, the framework accepts that request, processes it, and then forwards the data from the request to the application code. This application code can be a controller (for an MVC app or a web API) or a Razor page (for Razor apps). These handlers then use the application’s domain logic to build the response. The framework finally sends the response to the client.

ASP.NET Core provides you libraries that handle the following responsibilities:

  • Accept HTTP requests, process them, and send a response.
  • Create dynamic web pages i.e., pages that display different data depending on various factors such as current users or input.
  • Provide a structure for your application, easing the development and maintenance
  • Serve static files such as images or other documents.
  • Handle logging, caching, authentication, and authorization.

Microsoft first released the ASP.NET framework in 2002 as part of version 1.0 of the .NET framework. Since then, it has gone through many iterations and evolutions. ASP.NET Core is the latest evolution which was released in June 2016. It is fundamentally a new framework and contains significant architectural changes than the original ASP.NET framework. Microsoft rewrote the whole technology stack to enable various optimizations, speed improvements, and cross-platform support.

ASP.NET Core runs on the .NET Core platform, a lightweight, cross-platform, high-performance version of the original .NET framework. Going forward, Microsoft will be developing solely on the ASP.NET Core framework. The legacy ASP.NET framework will still receive bug fixes and security patches, but no new features will be added. Microsoft recommends that you should use the new ASP.NET Core framework for all new web development.