What is .NET Core?
Why need .NET Core?
- Cross-platform support: .NET Core can be used to build applications for multiple platforms, including Windows, Linux, and macOS. This allows developers to build applications that can run on a wide range of devices and operating systems.
- Lightweight and modular: .NET Core is designed to be lightweight and modular, with a smaller runtime and fewer external dependencies than the full .NET framework. This makes it easier to deploy applications built with .NET Core, as it allows developers to include only the specific components that their application needs.
High performance: .NET Core includes a just-in-time (JIT) compiler, which converts intermediate language (IL) code into native machine code at runtime. This allows .NET Core applications to take advantage of the performance of native code while still being platform-agnostic.
Wide range of supported languages: .NET Core supports a number of programming languages, including C#, F#, and VB.NET. This allows developers to choose the language that best suits their needs and skillset.
Active developer community: .NET Core has a large and active developer community, which means that there is a wealth of knowledge and resources available online for learning and using the platform.
.NET Core Architecture
Common Language Infrastructure (CLI) is nothing but a set of some features to convert Intermediate Language (IL) to Machine Code.
Virtual Execution System (VES) and Standard Libraries are the main part of CLI in .NET Core.
1. Virtual Execution System (VES)
A virtual Execution System (VES) provides a runtime system and virtual environment that executes managed code. It also provides direct data type support.
In a virtual execution system, CoreCLR works as a full runtime and virtual machine. This time it uses the RyuJIT compiler (Just-In-Time compiler).
Also, .NET Core has CoreRT which uses Ahead-Of-Time (AOT) compiler for native performance which is mainly used in Xamarin.
2. Standard Libraries
Here, CoreFX uses to share a subset of .NET framework APIs. Although It has its own APIs but is not part of the .NET Framework.