In the first article 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.
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.
Before we dive in, here is the picture of the entire .NET ecosystem that I used in the previous post. 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. 😉
As mentioned in the previous article, 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.
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).
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.
ASP.NET Core is a complete UI framework. There are three general approaches to building modern web UI with ASP.NET Core:
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
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.).
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.
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!👋