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
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:
- C# syntax and basic programming
- Conditions and loops
- Methods
- Classes and objects
- Interfaces and abstraction
- Collections
- Exception handling
- LINQ
- Async and await
- Git fundamentals
- SQL fundamentals
- ASP.NET Core
- Web APIs
- Entity Framework Core
- Authentication and authorization
- Testing
- 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.