Welcome to the .NET Core documentation. This section provides a deep dive into the fundamental concepts that underpin the .NET Core platform.

Understanding the .NET Ecosystem

.NET Core is a free, cross-platform, open-source framework for building many different types of applications. It's a modular platform that supports Windows, macOS, and Linux operating systems.

Runtime and Base Class Library (BCL)

At the heart of .NET Core is the runtime, which includes the Common Language Runtime (CLR) and the Base Class Library (BCL). The CLR provides memory management, thread management, and exception handling, while the BCL offers a rich set of classes for common programming tasks.

Key components of the runtime include:

Intermediate Language (IL) and Metadata

When you compile .NET code, it's not compiled directly into machine code for a specific processor. Instead, it's compiled into Intermediate Language (IL), also known as Microsoft Intermediate Language (MSIL) or Common Intermediate Language (CIL).

IL is a CPU-independent, platform-independent representation of your code. This allows .NET applications to run on any platform that has a compatible .NET runtime. Along with IL, metadata is generated, which describes the types, members, and dependencies of your code.

Managed vs. Unmanaged Code

Managed code is code that is executed by the CLR. The CLR provides services such as automatic memory management (garbage collection) and type safety, simplifying development and improving reliability. Most .NET applications are written as managed code.

Unmanaged code is code that runs outside the CLR, such as native C++ code or code from COM components. You might interact with unmanaged code when you need to access platform-specific APIs or integrate with existing libraries.

Cross-Platform Development

.NET Core's commitment to cross-platform compatibility means you can develop and deploy applications on Windows, macOS, and Linux. This is achieved through a consistent runtime and a unified set of core libraries.

Key .NET Core Features

Modern Application Development

.NET Core is designed for modern development scenarios, including microservices, cloud-native applications, and containerized deployments. It offers high performance, scalability, and flexibility.

Command-Line Interface (CLI)

The .NET CLI is a powerful tool for creating, building, running, and publishing .NET applications. It's a core part of the .NET Core development experience, enabling developers to work efficiently from the terminal.

dotnet new console -o MyConsoleApp
cd MyConsoleApp
dotnet build
dotnet run

Package Management (NuGet)

NuGet is the package manager for .NET. It allows you to easily discover, install, and manage third-party libraries and tools. The dotnet add package command is commonly used to include new dependencies.

dotnet add package Newtonsoft.Json

Performance and Scalability

.NET Core is known for its high performance. Through continuous optimizations and features like Kestrel (a cross-platform web server), it can handle demanding workloads efficiently.

Extensibility and Open Source

Being open-source, .NET Core benefits from a vibrant community. You can contribute to the platform, view the source code, and leverage a vast ecosystem of libraries and tools.

« Previous: Overview Next: Getting Started »