What Is .NET? A Beginner's Guide to .NET and C#

Learn what .NET is, how it works, its main components, .NET vs .NET Framework, C#, CLR, SDK, runtime and common application types.

If you're beginning C# development, you'll quickly encounter terms such as .NET, .NET Framework, .NET Core, CLR, SDK, and ASP.NET Core.

These names can make the .NET ecosystem seem more complicated than it really is.

In this beginner-friendly guide, we'll look at what .NET is, how C# fits into it, what happens when a .NET application runs, and the difference between modern .NET, .NET Core, and .NET Framework.

What Is .NET?

.NET is a development platform for building and running different types of applications.

It provides developers with a runtime, libraries, development tools, language support, and application frameworks.

Developers can use .NET to build applications such as:

  • Web applications
  • REST APIs
  • Console applications
  • Background services
  • Desktop applications
  • Cloud applications
  • Mobile applications
  • Microservices
  • Command-line tools

Is .NET the Same as C#?

No. C# and .NET are related, but they are not the same thing.

C# is a programming language. .NET is the development platform on which C# applications commonly run.

Technology Purpose
C# Programming language used to write application code
.NET Development platform for building and running applications
ASP.NET Core Framework for building web applications and HTTP APIs

C# is the language you'll see most frequently in .NET development, although .NET also supports other languages such as F# and Visual Basic.

What Happened to .NET Core?

This is especially important because many older tutorials—including the original version of this article—use the name .NET Core.

.NET Core was Microsoft's modern, open-source and cross-platform implementation of .NET.

The major releases included:

.NET Core 1.0
.NET Core 2.0
.NET Core 2.1
.NET Core 2.2
.NET Core 3.0
.NET Core 3.1

After .NET Core 3.1, Microsoft continued the platform under the simplified name .NET, beginning with .NET 5.

.NET Core 3.1
      ↓
    .NET 5
      ↓
    .NET 6
      ↓
    .NET 7
      ↓
    .NET 8
      ↓
    .NET 9
      ↓
    .NET 10
Important: Modern versions are called .NET, not ".NET Core". However, the name ASP.NET Core is still used for the modern web framework.

What Is .NET Framework?

.NET Framework is the older Windows-focused .NET implementation. It has been used for many years for existing Windows applications, including technologies such as ASP.NET, Windows Forms, and Windows Presentation Foundation applications.

It should not be confused with modern cross-platform .NET.

.NET vs .NET Framework

Feature Modern .NET .NET Framework
Primary direction Modern .NET development Existing Windows-focused applications
Cross-platform Yes Primarily Windows
Open source Yes Parts are open source
New server/cloud development Generally preferred Mostly for compatibility and existing applications

What Does Cross-Platform Mean?

Modern .NET is designed to run across major operating systems including Windows, Linux, and macOS.

For example, a developer can create an ASP.NET Core API on Windows and deploy it to an appropriate Linux environment.

That cross-platform capability was one of the major changes introduced with .NET Core and continues in modern .NET.

Main Components of .NET

You don't need to understand every internal component before writing your first application, but knowing the major pieces makes the platform much easier to understand.

1. Runtime

The .NET runtime provides the environment required to execute .NET applications.

It handles important runtime responsibilities such as memory management, garbage collection, exception handling, and execution of managed code.

2. CLR

CLR stands for Common Language Runtime.

The CLR is a core part of the .NET execution environment and provides services required while managed .NET applications are running.

These include areas such as:

  • Memory management
  • Garbage collection
  • Exception handling
  • Type safety
  • Thread management
  • Code execution

3. Base Libraries

.NET provides a large collection of reusable libraries.

Instead of implementing common functionality yourself, you can use built-in APIs for operations such as:

  • Working with strings
  • Reading and writing files
  • Collections
  • Networking
  • JSON processing
  • Asynchronous programming
  • Cryptography
  • Date and time operations

4. .NET SDK

The .NET SDK contains tools needed to develop .NET applications.

It includes the .NET CLI and other components needed to create, build, test, and publish projects.

You can check your installed SDK with:

dotnet --version

5. .NET CLI

The .NET command-line interface allows developers to perform common development operations from a terminal.

For example:

dotnet new
dotnet restore
dotnet build
dotnet run
dotnet test
dotnet publish

SDK vs Runtime

Beginners often confuse these two.

Component Purpose
.NET Runtime Provides components needed to run compatible .NET applications
.NET SDK Provides tools needed to develop, build, test and publish applications

If you're going to develop applications, you generally need the SDK.

How Does a C# Program Run?

At a simplified level, the process looks like this:

C# Source Code
      ↓
C# Compiler
      ↓
Intermediate Language (IL)
      ↓
.NET Runtime
      ↓
Native Machine Code
      ↓
Application Runs

When you build a C# application, the compiler normally compiles the source into Common Intermediate Language (CIL), commonly referred to simply as IL, along with metadata.

At runtime, .NET can use just-in-time compilation and other runtime mechanisms to execute the application on the target system.

The runtime is more sophisticated than this simplified diagram, but this model is enough to understand the basic development flow.

What Is Managed Code?

Code executing under the management of the .NET runtime is commonly called managed code.

The runtime provides services such as memory management and garbage collection for managed applications.

What Is Garbage Collection?

Applications create objects and use memory while running. .NET includes a garbage collector that automatically manages memory used by managed objects.

When managed objects are no longer reachable, the garbage collector can reclaim the memory associated with them.

This means C# developers usually do not manually free managed object memory in the same way required by some lower-level programming models.

However, developers still need to manage resources such as files, database connections, streams, and network resources correctly.

What Can You Build with .NET?

Web APIs

ASP.NET Core can be used to create HTTP APIs consumed by web, mobile, desktop, and other applications.

Web Applications

ASP.NET Core supports server-side web development and technologies such as Razor Pages, MVC, and Blazor.

Console Applications

Console applications are useful for learning C#, creating command-line tools, processing data, and running automation tasks.

Background Services

.NET can be used to create long-running worker applications and background processing services.

Desktop Applications

The .NET ecosystem includes technologies for creating desktop applications, including Windows-focused frameworks.

Cloud Applications

.NET applications can run in cloud environments and can be packaged into containers for deployment where appropriate.

What Is ASP.NET Core?

ASP.NET Core is the modern web framework in the .NET ecosystem.

It is commonly used to build:

  • REST APIs
  • Web applications
  • Backend services
  • Microservices
  • Real-time applications

Although ".NET Core" became ".NET", Microsoft retained the ASP.NET Core name for the web framework.

What Is Entity Framework Core?

Entity Framework Core (EF Core) is a data-access technology commonly used by .NET applications.

It allows developers to work with databases using .NET objects and LINQ while still supporting direct SQL and other lower-level database techniques when required.

Your First .NET Application

If you have the .NET SDK installed, you can create a console application from the terminal.

dotnet new console -n HelloDotNet

Move into the project:

cd HelloDotNet

Run it:

dotnet run

A modern console template contains code similar to:

Console.WriteLine("Hello, World!");

That is enough to create and execute your first C# application.

Understanding a .NET Project File

A C# project normally contains a .csproj file.

A simple project file may look like:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net10.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

</Project>

The exact target framework depends on the version you're developing against.

What Is a Target Framework?

The target framework tells the .NET tooling which framework your project is intended to build against.

Examples include:

net8.0
net9.0
net10.0

The appropriate target depends on factors such as support requirements, deployment environment, dependencies, and organizational standards.

Why Developers Use .NET

Some of the reasons developers and organizations choose .NET include:

  • Cross-platform development
  • Open-source development
  • A mature C# ecosystem
  • Strong tooling
  • Built-in dependency injection in ASP.NET Core
  • Support for asynchronous programming
  • Web API and cloud development capabilities
  • Container support
  • A large collection of libraries and NuGet packages

Common .NET Terms Beginners Should Know

Term Meaning
C# Programming language
.NET Development platform
CLR Common Language Runtime
SDK Tools used to develop .NET applications
Runtime Components required to run compatible applications
ASP.NET Core Web framework for .NET
EF Core Data-access framework
NuGet Package ecosystem and tooling used by .NET projects

What Should a Beginner Learn First?

If your goal is to become a .NET developer, a practical learning order is:

  1. C# syntax and basic programming
  2. Conditions and loops
  3. Methods
  4. Classes and objects
  5. Interfaces and abstraction
  6. Collections
  7. Exception handling
  8. LINQ
  9. Async and await
  10. Git fundamentals
  11. SQL fundamentals
  12. ASP.NET Core
  13. Web APIs
  14. Entity Framework Core
  15. Authentication and authorization
  16. Testing
  17. Deployment and cloud fundamentals

Don't try to master every topic before creating applications. Build small projects while learning each stage.

Frequently Asked Questions

Is .NET Core the same as .NET?

Modern .NET is the continuation of .NET Core. The ".NET Core" name was used through .NET Core 3.1, after which the platform continued as .NET 5 and later versions.

Is .NET the same as .NET Framework?

No. Modern .NET and .NET Framework are different implementations. Modern .NET is cross-platform and is the primary platform for new .NET development, while .NET Framework remains important for many existing Windows applications.

Is C# only used with .NET?

C# is closely associated with the .NET ecosystem and is one of its primary programming languages. C# language implementations and related ecosystems can have other contexts, but for most application developers, C# and .NET are learned together.

Is .NET free?

Modern .NET is free and open source. Development tools and third-party products used alongside .NET can have their own licensing terms.

Can .NET run on Linux?

Yes. Modern .NET is cross-platform and supports Linux as well as Windows and macOS for supported workloads.

Do I need Visual Studio for .NET?

No. You can use the .NET CLI with a compatible editor. Visual Studio provides extensive development tooling, but it isn't required to create a basic .NET application.

Should beginners learn .NET Framework or modern .NET?

For new development, beginners will generally benefit from learning modern .NET. You may still need .NET Framework when maintaining older Windows applications in existing organizations.

Conclusion

.NET may initially appear confusing because its ecosystem contains several related names and technologies. The key distinction is simple: C# is a programming language, while .NET is the platform used to build and run applications.

.NET Core was the predecessor to modern .NET, while .NET Framework remains an older Windows-focused implementation used by many existing applications.

You don't need to understand every part of the runtime before beginning. Install the .NET SDK, learn the fundamentals of C#, build a console application, and gradually progress toward technologies such as ASP.NET Core and Entity Framework Core.

Hello! My name is Aniket Shahane and I am a senior software consultant. I hold a post-graduate degree (MTech) in Computer Science and Engineering, and I have a passion for using my technical expertise to solve complex problems. I am excited to be here and eager to share my knowledge and experience with you.

Post a Comment