Understanding Difference Between .NET Core vs .NET Framework vs .NET Standard

Last Updated: Nov 09, 2025
7 min read
Legacy Archive
Legacy Guidance: This article preserves historical web development content. For modern .NET 8+ best practices, visit our Tutorials section.

When it comes to developing software applications, there are different .NET frameworks you can use. Two of the most talked about are .NET Core and .NET Framework. While they share similarities, there are key differences that affect which one you should choose for your projects.

This article will help you understand .NET Core, .NET Framework, and .NET Standard—what each one is, how they differ, and when to use each. By the end, you'll have a clear picture of the .NET ecosystem and be able to make informed decisions for your applications.

What is .NET Core?

.NET Core is a cross-platform, open-source, and modular .NET platform for creating modern applications. It works on Windows, Linux, and macOS, making it ideal for web apps, microservices, cloud applications, and IoT solutions.

Microsoft built .NET Core from the ground up to be lightweight and flexible. It includes the runtime, framework libraries, compiler, and other tools you need to build and run applications. The platform is distributed as NuGet packages, which means you can include only what you need—keeping your apps lean.

Key characteristics of .NET Core:

  • Cross-platform—runs on Windows, Linux, and macOS
  • Open-source with community contributions
  • Modular design for customization
  • Supports modern application types (web, microservices, IoT)
  • Side-by-side installation allows multiple versions on one machine

What is .NET Framework?

.NET Framework is Microsoft's original Windows-only platform for building desktop apps, web applications, and services. It's been around since 2002 and includes a massive class library called the Framework Class Library (FCL). This library provides pre-built functionality for common programming tasks.

.NET Framework runs only on Windows and is closed-source. It's deeply integrated with Windows, which makes it powerful for Windows-specific development but limits its reach to other operating systems.

Key characteristics of .NET Framework:

  • Windows-only platform
  • Closed-source (though some components are open)
  • Targets desktop, web, and server applications
  • Deep Windows integration
  • Mature with extensive library support

Key Differences Between .NET Core and .NET Framework

Platform Support

.NET Core runs on multiple platforms (Windows, Linux, macOS), while .NET Framework only runs on Windows. If you need your application to work on non-Windows systems, .NET Core is your only choice.

Open Source vs Closed Source

.NET Core is fully open-source with active community involvement. You can view the source code, contribute fixes, and even fork it for custom needs. .NET Framework is closed-source, though some parts have been open-sourced over time.

Installation Model

.NET Core supports side-by-side installation—you can have multiple versions installed on the same machine, and each app can use its own version. .NET Framework uses a machine-wide installation, which can cause compatibility issues when different apps need different framework versions.

Application Types

.NET Core is best for modern apps: web applications (ASP.NET Core), microservices, cloud apps, and cross-platform solutions. .NET Framework is ideal for traditional Windows apps: WinForms desktop applications, WPF, Windows Services, and ASP.NET Web Forms.

Performance

.NET Core is generally faster and more efficient than .NET Framework. Microsoft has optimized it for modern workloads and cloud environments, resulting in better throughput and lower memory usage.

What is .NET Standard?

.NET Standard isn't a runtime or a way to write code—it's a specification. Think of it as a contract that defines which APIs all .NET platforms must support. When you target .NET Standard, your code can run on any .NET platform that implements that version of the standard.

Before .NET Standard, code written for .NET Framework wouldn't necessarily work on .NET Core because they had different APIs. .NET Standard solved this problem by creating a common set of APIs that all platforms agree to support.

Why .NET Standard matters:

  • Write libraries once, use them everywhere (.NET Framework, .NET Core, Xamarin, Mono)
  • No need to rewrite code for each platform
  • Provides compatibility between different .NET implementations

Using .NET Standard

To use .NET Standard, you target a specific version when creating your library. The current version is 2.1, which includes many features that weren't in earlier versions like support for ASP.NET Core and Entity Framework Core.

Higher .NET Standard versions include more APIs but work on fewer platforms. Lower versions have fewer APIs but broader compatibility. You need to balance the features you need against the platforms you want to support.

Quick Comparison

.NET Core

  • ✓ Cross-platform (Windows, Linux, macOS)
  • ✓ Open-source
  • ✓ Modular and lightweight
  • ✓ Better performance
  • ✓ Side-by-side installation
  • ✓ Best for: Modern apps, microservices, cloud, IoT

.NET Framework

  • ✓ Windows-only
  • ✗ Closed-source
  • ✓ Mature and stable
  • ✓ Deep Windows integration
  • ✗ Machine-wide installation only
  • ✓ Best for: Desktop apps, Windows services, existing .NET apps

.NET Standard

  • ✓ API specification, not a platform
  • ✓ Enables code sharing across platforms
  • ✓ Works with .NET Core, .NET Framework, Xamarin, and more
  • ✓ Best for: Class libraries that need maximum compatibility

Which Should You Choose?

Choose .NET Core (Modern .NET) When:

  • Building new applications from scratch
  • Need cross-platform support
  • Creating microservices or cloud applications
  • Want the latest features and best performance
  • Prefer open-source development

Choose .NET Framework When:

  • Maintaining existing .NET Framework applications
  • Using libraries that only support .NET Framework
  • Building Windows-specific desktop apps (WinForms, WPF)
  • Have dependencies on Windows-specific technologies

Use .NET Standard When:

  • Creating class libraries for maximum reuse
  • Want your library to work across different .NET platforms
  • Sharing code between .NET Framework and .NET Core projects

Summary

.NET Core is the modern, cross-platform, open-source evolution of .NET. .NET Framework is the Windows-only, mature platform that's been around for decades. .NET Standard is the specification that allows code to work across both.

For new projects, Microsoft recommends using .NET Core (now called just ".NET" from version 5 onward). It gets active development, runs anywhere, and provides the best performance. Use .NET Framework only when you have specific requirements that demand it, such as maintaining legacy code or using Windows-specific features not available in modern .NET.

FAQ

What's the main difference between .NET Core and .NET Framework?

.NET Core is cross-platform and open-source, running on Windows, Linux, and macOS. .NET Framework is Windows-only and closed-source. .NET Core supports side-by-side installation and is more modular, while .NET Framework targets traditional Windows applications.

What is .NET Standard and why does it matter?

.NET Standard is a set of APIs that all .NET platforms must implement. It allows you to write code once that works across .NET Framework, .NET Core, Xamarin, and other .NET platforms without modification, solving the compatibility problem between different .NET implementations.

Which .NET platform should I choose for new projects?

For new projects, use modern .NET (formerly .NET Core). It's cross-platform, gets active updates, has better performance, and is Microsoft's recommended path forward. Only use .NET Framework if you have specific dependencies that require it or need Windows-specific features unavailable in modern .NET.

Back to Articles