Understanding the Evolution of .NET: Framework, Standard, Core, and Beyond

2023-09-22

All articles from this blog can ONLY be redistributed on an Attribution-NonCommercial-NoDerivs basis. Please credit the source, thank you.
Twitter:@kelvinshen
Blog:Kelvin Shen's Blog

Understanding the Evolution of .NET: Framework, Standard, Core, and Beyond

In the world of .NET development, it can be confusing to understand the differences between .NET Framework, .NET Standard, .NET Core, and the numbered releases like .NET 5 and later. Let’s break it down:

Key Concepts

  • .NET Framework: The original Windows-only implementation of .NET, providing a rich set of libraries and tools.
  • .NET Standard: A specification (not an implementation) that defines a set of APIs that all .NET platforms must implement. This ensures code compatibility across different .NET flavors.
  • .NET Core: A cross-platform, open-source implementation of .NET, designed for modern cloud-based and containerized applications.
  • .NET 5 and Beyond: The unified future of .NET, merging the best aspects of .NET Framework, .NET Core, and Xamarin into a single, versatile platform.

Unification and Simplification

.NET 5 marked a turning point. Microsoft’s goal was to streamline the .NET ecosystem and provide a single platform for all types of .NET development. Here’s what this means:

  • No more separate .NET Core: .NET 5 and later builds on the cross-platform foundation of .NET Core.
  • Embracing .NET Framework’s Reach: The unified .NET platform aims to provide compatibility with the extensive range of libraries and APIs offered by the .NET Framework when possible.
  • Cross-Platform by Design: .NET 5 and beyond supports Windows, Linux, macOS, iOS, Android, and more – enabling you to build apps for a variety of devices and operating systems.

So, what should I use?

Generally, for new development projects, the latest versions of .NET (currently .NET 8) are recommended. They offer the best performance, features, and cross-platform capabilities. In certain cases you might need to target older .NET Framework versions if your project depends on libraries that haven’t been ported to newer platforms.

Leave a Reply

comments powered by Disqus


Table of Content