ASP.NET Core: What Is It?
Tags: netframework
Published: 2021-11-24 13:55:00

---
title: ASP.NET Core: What Is It?
published: true
date: 2021-11-24 13:00:00 UTC
tags: NETFramework
series: Microsoft .NET Framework
canonical_url: https://www.underthehoodlearning.com/asp-net-core-what-is-it
cover_image: https://res-5.cloudinary.com/under-the-hood-learning/image/upload/q_auto/v1/blog_images/NET-Core---What-is-it.png
---

In the [first article](https://www.underthehoodlearning.com/what-really-is-the-net-framework/) of this series, we explored the high-level overview of the .NET platform. In this and probably the next few posts of this series, we will dive deep into the ASP.NET Core platform.

## What is ASP?

**ASP** stands for **Microsoft Active Server Pages** , which is Microsoft's first server-side script engine that enabled dynamically-generated web pages. At the high level, ASP is one of the several technologies for developing **Internet Information Service (IIS)** Web applications.

> **IIS** is a web server specific to the **Microsoft .NET platform.** on the Windows OS. IIS can be used to create web content in a variety of formats: _static files, scripts, compiled DLLs, and compiled EXEs._ The _ **IIS development technologies** _ simply provide a way to perform dynamic operations that eventually build HTML output that IIS sends in response to client requests.  
> In the context of IIS, a **web server** is essentially a software that controls how web users access hosted files.

ASP is now obsolete and replaced with ASP.NET.

## What is ASP.NET Core?

Before we dive in, here is the picture of the entire .NET ecosystem that I used in the [previous post](https://www.underthehoodlearning.com/what-really-is-the-net-framework/). In this and future few articles, we will be focusing on the ASP.NET Core platform. If you are anything like me who find it confusing and convoluted with all the technical jargon floating around (.NET, .NET Core, ASP.NET, ASP.NET Core 😵), pictures speak a thousand words. 😉  
 ![ASP.NET Core: What Is It?](https://res-3.cloudinary.com/under-the-hood-learning/image/upload/q_auto/v1/blog_images/20181002-.NET-Core-Focus.png)  
As mentioned in the [previous article](https://www.underthehoodlearning.com/what-really-is-the-net-framework/), Microsoft created ASP.NET Core as a lightweight platform that runs on Windows, Linux, and macOS. .NET Core shares many of the same APIs as .NET Framework, except for it's smaller and only implements a subset of the features available in the .NET Framework.

Fundamentally, an ASP.NET Core Web app is, at its core, a console app that reads and writes information to port. The .NET Core platform provides a base console application model that can be run cross-platform using the command line interface. Adding a web server library converts it into an ASP.NET Core web app. And this is exactly what Microsoft did as shown in the image below. Additional features, such as _configuration_ and _logging_ are added by way of additional libraries.  
 ![ASP.NET Core: What Is It?](https://res-2.cloudinary.com/under-the-hood-learning/image/upload/q_auto/v1/blog_images/NET-Core-Console1.png)  
Basically, we write a .NET Core console app that starts up an instance of an ASP.NET Core web server. By default, Microsoft provides Kestrel as the cross-platform web server. Our web application logic is run by Kestrel, and libraries are used to enable additional features as needed _(logging, HTML generation)._

## What type of applications can we build with ASP.NET Core?

With **.NET Core** , you can write code for _cross-platform ASP.NET Web apps, cross-platform console apps, cross-platform libraries and frameworks, and Universal Windows Platform (UWP) apps._ But since we're only focusing on ASP.NET Core, let's see what type of web apps we can build using this framework.

1. **Web UI**  
ASP.NET Core is a complete UI framework. There are three general approaches to building modern web UI with ASP.NET Core:

2. **Web API**  
ASP.NET Core supports creating RESTful services, also known as web APIs, using C#. To handle requests, a web API uses _ **controllers** _ - _classes that derive from_ `ControllerBase`.

3. **Real-time apps**  
ASP.NET Core **SignalR** is an open-source library that simplifies adding real-time web functionality to apps. Real-time web functionality enables server-side code to push content to clients instantly _(gaming, social networks, voting, collaborative apps, maps, etc.)._

4. **Remote Procedure Call (RPC)**  
**gRPC** , an open-source Remote Procedure Call framework, can be hosted on ASP.NET Core. The idea behind RPC is that a computer program can call and execute a procedure (subroutine or service) on a remote system just like it would call a local subroutine, but the network communication details are hidden from the user.

<!--kg-card-end: markdown-->

In the next two articles, we will dive deep into all the components of a typical ASP.NET Core application using a simple **web UI** application. See you there!👋