Introduction to ASP.NET Core Framework

Introduction to ASP.NET Core Framework

In this article, I will give you a brief introduction to ASP.NET Core Framework. Nowadays, when it comes to software development, everyone is talking about Free, Open-Source, and Cross-Platform Development. As we all know, Microsoft is well known for its Windows-based products. Now, we are in the new age of software development. For this, Microsoft came into the market with a revolutionary product called ASP.NET Core. As part of this article, we will discuss the following pointers in detail.

  1. History of ASP.NET
  2. What is ASP.NET Core
  3. Why ASP.NET Core?
  4. Where can we Develop Applications using .NET Core?
  5. What the ASP.NET Core doesn’t have?
  6. .NET Core vs. ASP.NET Core
  7. Language Support
History of ASP.NET

As we know, ASP.NET is the framework used to develop Data-Driven Web Applications for many years. Since then, the ASP.NET Framework has gone through a steady evolutionary change, and finally, the most decent evolution is ASP.NET Core (you can also call it .NET).

  1. The ASP.NET Core (.NET) is not a continuous part of the ASP.NET 4.x Framework. Instead, it is a completely new framework.
  2. This Framework is an actual rewrite of the current ASP.NET 4.x Framework but with a much smaller and a lot more modular.
  3. Some people think many things remain the same, but that is not completely true. The ASP.NET Core is actually a big fundamental change to the ASP.NET Framework.
What is ASP.NET Core?

According to Microsoft, ASP.NET Core is the open-source version of ASP.NET that runs on Windows, Linux, macOS, and Docker.

ASP.NET Core is the new version of the ASP.NET Web Framework, which is mainly targeted to run on the .NET Core PlatformASP.NET Core is a FREE, OPEN-SOURCE, HIGH-PERFORMANCE, LIGHTWEIGHT, AND CROSS-PLATFORM Framework for building Web Applications on the .NET (.NET Core) Platform. It is designed to run on the cloud as well as on-premises. 

Performance is a key focus of ASP.NET Core. It’s faster than other popular web frameworks. ASP.NET Core was architected as modular with minimum overhead, and other more advanced features can be added as NuGet Packages as per application requirements. This results in high performance, requires less memory and deployment size, and is easy to maintain.

.NET (.NET Core) is open source and cross-platform and is maintained by Microsoft and the .NET community on GitHub. All aspects of .NET are open source, including class libraries, runtime, compilers, languages, ASP.NET Core web framework, Windows desktop frameworks, Entity Framework Core data access library, and more.

.NET is open source on GitHub and has over 100,000 contributions, and 3,700 companies have already contributed. You can also contribute or download the source code from the ASP.NET Core Repository on GitHub

https://github.com/dotnet/aspnetcore

ASP.NET Core 3.x and later version applications can be targeted to develop and run on top of the .NET Core (Cross-platform) only, whereas ASP.NET Core 1.x and 2.x applications can be targeted to develop and run on top of the .NET Core (Cross-platform) as well as .NET Framework (Windows only).

The latest version of .NET Core is .NET 7, released in November 2022. Beginning with .NET 5.0, Microsoft .NET core has been re-branded as .NET. So from now on, the word “Core” will not be used, and they will be called .NET 6, .NET 7, etc.

A new major release of .NET Core is published every year in November. Even numbered releases are LTS releases with free support and patches for three years. Odd-numbered releases are STS releases with free support and patches for 18 months.

Starting with the .NET core, Microsoft will release a .NET framework once every two years with Long-Term Support (LTS) of 3 years. Between those two years, Microsoft will release a framework with Short-Term Support (STS), which is 18 months. For a better understanding of the .NET and .NET Core release lifecycle, please look at the image below.

.NET and .NET Core release lifecycle

Please check the below URL for more detailed information:

https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core

Note: ASP.NET Core was initially launched as ASP.NET 5, but later, it was renamed ASP.NET Core, and now it is called .NET.

Why ASP.NET Core?

Nowadays, the ASP.NET Core framework is becoming more and more popular among developers. There are a number of reasons why modern developers are using it, and some of them are listed below:

Open Source:

The ASP.NET Core framework is open source, which is the main reason for its popularity. The entire source code for this .NET Core Framework is available at https://github.com/aspnet, and you can download the source code. Even if you want, you can also modify and compile your own version.

The .NET Core team is always there to support your effort in developing the application seamlessly. It receives bug fixing and improvement updates on a regular basis, usually within a short time period. You don’t have to wait longer for updates. The flexibility in framework code keeps it at the top of the developer’s choice. Depending upon the project’s requirements, libraries and framework components can be added later.

Cross-Platform: 

The ASP.NET Core Framework is designed from scratch to keep in mind to be Cross-Platform for both development and deployment. So, we don’t need to build different applications for different platforms using different frameworks. Let us discuss what Cross-Platform is from the ASP.NET Core point of view by comparing it with the earlier versions of the ASP.NET Framework.

The earlier versions of ASP.NET Framework applications can only run on Windows platforms. In contrast, the ASP.NET Core applications can be developed and run on different platforms such as Windows, Mac, or Linux operating systems. We can host the earlier ASP.NET Framework 4.x applications only on IIS, whereas we can host the ASP.NET Core applications on IIS, Nginx, Docker, Apache, or even self-host deployment.

To develop ASP.NET Core applications, you have multiple options. You can use either Visual Studio or Visual Studio Code. You can also use any third-party editor of your choice, such as ATOM, Sublime, etc.

CLI Support: Using CLI (Command Line Interface) commands, you can develop, build, and publish .NET applications. Our upcoming articles discuss developing, building, and running .NET Core Applications using CLI.

Fast: ASP.NET Core no longer depends on System.Web.dll for browser-server communication. ASP.NET Core allows us to include packages that we need for the application. This reduces the request pipeline and improves performance and scalability.

IoC Container: One of the most important design patterns in real-time applications is the Dependency Injection Design Pattern. It includes the built-in IoC (Inversion of Control) container for automatic dependency injection, making it maintainable and testable.

Unified MVC and Web API Framework: 

The ASP.NET Core provides a unified programming model for developing Web Apps and Web APIs. That means a single controller class can be used to handle both. The Controller we create in ASP.NET Core (either Web APPs or Web APIs) application will inherit from the Controller base class and return the IActionResult interface. The IActionResult interface provides several implementations. The built-in results types, such as the JsonResult and the ViewResult (like this, there are so many result types available that we will discuss later), implement the IActionResult interface.

In the ASP.NET Core Web API application, the controller action method will return JsonResult. If it is an ASP.NET Core Web application, the controller action method’s return type will be ViewResult. 

Testing and Maintainability:

Applications developed using the ASP.NET Core MVC framework can easily be tested and maintained. This is possible because it allows you to separate different parts of your application into independent pieces and test them independently. Testing frameworks such as MSTtest, xUnit, and MOQ can be easily integrated into ASP.NET Core MVC applications to simulate any scenario.

Integration with Modern UI Framework: It allows you to use and manage modern UI frameworks such as AngularJS/Angular, React JS, Bootstrap, etc…

Handling Request and Response Pipeline: 

We can handle the request and response in the ASP.NET Core application using the new Middleware Components. In earlier ASP.NET 4.x, we generally use Handlers and Modules to handle the Request and Response pipeline. The ASP.NET Core Framework provides a lot of built-in Middleware Components, and we can use those Middleware Components to handle the request and response pipeline. If you want, you can also create your own middleware components and use them in the request-response pipeline. In a later article, we will discuss the Middleware Components in detail. We will also discuss how to create custom Middleware Components and how to use them in ASP.NET Core applications.

Hosting:

ASP.NET Core web applications can be hosted on multiple platforms with any web server, such as IIS, Apache, etc., and they are not dependent only on IIS as a standard .NET Framework.

Code Sharing: It allows you to build a class library that can be used with .NET Frameworks such as .NET Framework 4.x or Mono. Thus, a single code base can be shared across frameworks.

Side-by-Side App Versioning: ASP.NET Core runs in .NET Core, which supports the simultaneous running of multiple versions of applications.

Extensible Framework:

The ASP.NET Core MVC Framework is designed to be highly extensible. That means you can create an application today that can be extended to any level in the future. Some of the key features this framework provides that give it extensible power are as follows.

  1. View Components
  2. Tag Helpers
  3. Routing

In our upcoming articles, we will discuss each feature in detail.

Smaller Deployment Footprint:

ASP.NET Core application runs on .NET Core, which is smaller than the full .NET Framework. So, an application that uses only a part of .NET CoreFX will have a smaller deployment size. This reduces the deployment footprint.

Excellent developer tools:

ASP.NET Core comes with a lot of preloaded tools. Anybody would love to work with these tools due to their simplicity and ease. Using Libmam (Libmam allows the installation of Bootstrap and JQuery easily), ReSharper (ReSharper provides on-the-fly code analysis and eliminates errors in C#, VB.NET, XAML, ASP.NET, and XML), and other tools, it is very easy to build tests and other extraordinary applications. 

Versatility: Apart from modern data-driven Aeb Applications, users can also develop mobile and desktop applications. They can switch whenever they want.

What the ASP.NET Core Doesn’t Have?

If you come from ASP.NET 4.x, you will not find the following things in ASP.NET Core. 

  1. The Global.asax file
  2. Web.Config file
  3. HTTP Handlers and HTTP Modules
  4. ASP.NET Page Life-Cycle model
Differences Between .NET Framework and .NET Core
.NET Framework
  • .NET framework is compatible only with the Windows Operating system. It relies on Windows-only components and APIs and is tightly integrated with the Windows ecosystem.
  • .NET Framework is proprietary software developed and maintained by Microsoft
  • .NET Framework is suitable for a wide range of application types, including desktop applications (Windows Forms, WPF), web applications (ASP.NET Web Forms, MVC), and services (Windows Services, WCF).
.NET Core
  • .NET Core is designed to be platform-independent or cross-platform and run on multiple operating systems. This cross-platform capability makes it suitable for building applications that can be deployed on Windows, macOS, and Linux environments.
  • .NET Core is open source on GitHub and has over 100,000 contributions, and 3,700 companies have already contributed.
  • .NET Core primarily focuses on modern application development, such as Web Applications (ASP.NET Core), Microservices, and Cloud-Native Applications.
.NET Core (.NET) vs ASP.NET Core:

Many people are confused between ASP.NET Core and .NET Core. Please note that ASP.NET Core and .NET Core are not the same. They are different, just like ASP.NET and .NET Framework are different. ASP.NET Core is a fast, lightweight, modular, and open-source framework for creating Web Applications, Mobile Applications, and Web Services that run on Windows, Linux, and macOS. .NET Core is a software platform or you can say Runtime Environment on which ASP.NET Core applications run.

.NET Core (.NET) vs ASP.NET Core

.NET Core (.NET):
  1. .NET Core (.NET) is an open-source and cross-platform. It provides the runtime environment where the ASP.NET Core Web Applications will run.
  2. .NET Core is a runtime that executes applications that are built on it.
  3. Install .NET Core Runtime to run applications and install .NET Core SDK to build applications.
  4. .NET 7 is the latest stable version. .NET 8 is in Preview.
ASP.NET Core:
  1. ASP.NET Core is an open-source, Cross-Platform Framework using which we can develop different types of Web Applications, such as MVC, Web API, Razor Pages, etc.
  2. ASP.NET Core is a web application development framework that builds Web, IoT, and Mobile Applications that will run on top of the .NET core platform. If you are developing an application using ASP.NET Core 1.x or 2.z, you can run the ASP.NET Core Application using both the .NET Framework and the .NET Core Platform.
  3. If you want to develop and run .NET Core Applications, you need to install the .NET SDK, including the .NET Runtime. If you only want to run .NET Core Applications, you need only install the .NET Core Runtime.
  4. ASP.NET Core 7 is the latest stable version, and ASP.NET Core 8 is in Preview.

Note: There is no separate versioning for ASP.NET Core. It is the same as the .NET Core versions.

Language Support:

The Dot Net Core Framework supports the following languages, which can be used to develop .NET Core applications. In this course, we will use C# as the programming language.

  1. C#
  2. F#
  3. Visual Basic (VB)
.NET Core GitHub Repository:

.NET Core Runtime: https://github.com/dotnet/runtime
.NET Core SDK: https://github.com/dotnet/sdk
ASP.NET Core GitHub Repository: https://github.com/dotnet/aspnetcore

The Latest version of .NET Core is 7.
The latest version of ASP.NET Core also is 7.
There is no separate versioning of ASP.NET Core. It is the same as the .NET Core Versions.

.NET Core is named “Core” because it includes core features of .NET Framework. The main objective of .NET Core is to make .NET Framework open-source and cross-platform compatible so that it can be used in resource-constrained environments. It includes minimum features that are required to run a basic .NET Core application and other advanced features that can be as a package from NuGet.

Summary:

With ASP.NET Core, you can:

  1. Build web apps and services, Internet of Things (IoT) apps, and mobile backends.
  2. Use your favorite development tools on Windows, macOS, and Linux.
  3. Deploy to the cloud or on-premises.
  4. Run on .NET Core.

In the next article, I will discuss the ASP.NET Core Environment Setup Required for Developing ASP.NET Core Web Applications using Visual Studio. In this article, I will try to give a brief introduction to the ASP.NET Core Framework. I hope this Introduction to ASP.NET Core Framework article will help you with your needs. 

20 thoughts on “Introduction to ASP.NET Core Framework”

  1. Sometimes you say, ASP.NET is .NET, and other times you say its a framework on top of .NET. Very confusing.

    EXAMPLE:
    Note: ASP.NET Core was initially launched as ASP.NET 5, but later, it was renamed to ASP.NET Core, and now it is called .NET.

    ANOTHER EXAMPLE:
    ASP.NET Core:
    1. ASP.NET Core is Open Source and Cross Platform Framework.
    2. ASP.NET Core is a Web Application Development Framework to build Web Applications, IoT Applications, and Mobile Applications, which is going to be run on the top of the .NET Core Platform. If you are developing an application using ASP.NET Core 1.x or 2.z, then you can run the ASP.NET Core Application using both .NET Framework and .NET Core Platform.

    #2 above says ‘ASP.NET Core is a web application development framework……. which is going to be run on the top of the .NET core platform’.

    A simple one liner explanation would be great.

    1. .NET Core (.NET) and ASP.NET Core are two different things. .NET Core (.NET) provides the runtime environment where the ASP.NET Core Web Applications are going to be run. ASP.NET Core is the Web Application Development Framework using which you can develop different kinds of Web Applications.

      Both .NET Core (.NET) and ASP.NET Core are cross-platform and Open Source.

  2. This article started pretty well but became very confusing at the end with terminologies of .NET,.NET Core,ASP.NET and ASP.NET core. Would like to have more simple explanations.
    I actually liked this article but needs a little brush up.

Leave a Reply

Your email address will not be published. Required fields are marked *