.NET History - from .NET Framework 1.0 till .NET 6

Microsoft started working on the .NET framework in the late 90s. The plan was to create a platform based on managed code, code that can be executed under a runtime environment. The objective was to improve the development experience and reduce the effort for the engineers from handling security operations, active memory management, and other low-level efforts that C/C++ developers had to bother with. .NET is a framework given by Microsoft for building desktop, mobile and web-based applications. It provides runtime, libraries, tooling and structures that allow you to develop any applications by using .NET framework.

.NET Framework History

  • In around 2002, Microsoft released version 1 of the .NET Framework, a language for writing managed code that had a design similar to C++.The framework was specifically aimed for Windows OS and servers.
  • The initial release was called .NET framework 1.0. The framework has progressed significantly from that point forward, and the current version is 4.8. Refer the version history in detail of .NET framework.
  • It had WinForms, a GUI library for desktop applications, ASP.NET, a framework for Web; and ADO.NET for data access. All these components were driven by Common Language Runtime (CLR) to compile and execute managed code. Each version of .NET Framework contains the common language runtime (CLR), the base class libraries, and other managed libraries. Refer .NET Framework Introduction for CLR architecture
  • .NET framework has undergone multiple iterations crossing runtime updates, new desktop graphical systems (WPF), APIs for service-oriented applications (WCF), and more.
  • Developers went on using .NET, especially after the introduction of Silverlight and Xamarin. However, they ran into portability issues when expanding the compatibility of .NET to other platforms. Despite all these improvements to the framework, achieving a true cross-platform environment was far away. 
  • The problem of cross-platform led to the development of .NET Core.
  • After .NET 4.8 was released in the year 2019, Microsoft planned moving towards open source technology and introduced .NET Core which is a platform-independent technology to develop web, desktop and mobile applications.
.NET CORE
  • Microsoft announced a dramatic shift in the way .NET exists by presenting .NET Core in 2016, a new cross-platform, cloud-friendly, and open-source version of the framework. 
  • The new framework has a modular design. Also, it comes with lighter versions of the core development components. As a result, a developer has the option choose to add modules.
  • .NET Core made it to a release in 2016, becoming the main technology to consider for new .NET projects. Gradually, Microsoft started porting existing services to work with Core. Some that didn’t receive official ports, like Windows Communication Foundation (WCF), were substituted by alternatives sourced from the community.
  • In 2016, Microsoft acquired Xamarin, previously a proprietary technology for cross-platform mobile development, making it open source as well.
  • Microsoft continued moving towards "transparency between the product team and the community," and released open-sourced Windows Presentation Foundation (WPF), Windows Forms, and WinUI frameworks in December 2018.
.NET Ecosystem Before .NET Standard
.NET Standard
  • Different runtimes use different class libraries. For example, .NET Framework uses the .NET Framework class library, while .NET Core contains its own class library, as well as Xamarin with its own class library. In this way, it's hard to share code between different runtimes, as they don’t use the same APIs. 
  • Microsoft's solution to this is the .NET Standard library, released in 2016. It represent a set of (formal) specifications that say which APIs you can use and its implemented by all runtimes. It is an evolution of Portable Class Libraries (PCL). Specific runtimes implement specific version of .NET Standard (implementing a specific set of APIs). For example, .NET Framework 4.6.1 implements .NET Standard 2.0 and .NET 5 implements .NET Standard 2.1 (link).
NOTE :
  • .NET 5 and later versions adopt a different approach to establishing uniformity that eliminates the need for .NET Standard in most of the scenarios. However, if you want to share code between .NET Framework and any other .NET implementation, such as .NET Core, your library should target .NET Standard 2.0. 
  • No new versions of .NET Standard will be released, but .NET 5, .NET 6, and all future versions will continue to support .NET Standard 2.1 and earlier
.NET Ecosystem after .NET Standard

.NET 5 Era :
  • In May 2019, the company announced the big release that would tie the ecosystem together: 
  • All .NET elements were supposed to be bundled in the .NET 5 development platform. While changes were made to the schedule because of COVID-19, the .NET 5 unified development platform was finally introduced in November 2020. 
  • .NET 5, Microsoft merged .NET Core and .NET Standard, which means that we now have a shared code base for all .NET workloads, whether it’s desktop apps, cloud services, or mobile apps. However, .NET 5 does not replace .NET Standard. .NET 5 may run on phones and Windows desktop apps. The new TFM net5.0 will represent the API set that's available on all platforms.
  • .NET 5 will be a single product with a uniform set of capabilities and APIs that can be used for Windows desktop apps, cross-platform mobile apps, console apps, cloud services, and websites.
  • The successor to .NET Core 3.1 and .NET Framework 4.8, .NET 5 puts order into the fragmentation of the .NET world and provides a lot of features to build applications on Windows, Linux, macOS, iOS, watchOS, Android, tvOS, or using WebAssembly. 
  • The platform comes with new APIs, language features, and runtime capabilities. Also, .NET 5 includes ASP.NET Core, Xamarin, Entity Framework Core, WPF, WinForms, and ML.NET.

.NET 6 Era :
.NET 6 delivers the final parts of the .NET unification plan that started with .NET 5. .NET 6 unifies the SDK, base libraries, and runtime across mobile, desktop, IoT, and cloud apps. In addition to this unification, the .NET 6 ecosystem offers:
  • Simplified development: Getting started is easy. New language features in C# 10 reduce the amount of code you need to write. And investments in the web stack and minimal APIs make it easy to quickly write smaller, faster microservices.
  • Better performance: .NET 6 is the fastest full stack web framework, which reduces compute costs if you're running in the cloud.
  • High productivity: .NET 6 and Visual Studio 2022 provide hot reload, new git tooling, intelligent code editing, robust diagnostics and testing tools, and better team collaboration.

References :
https://docs.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-1-0
https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-6
https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-5
https://docs.microsoft.com/en-us/aspnet/core/introduction-to-aspnet-core?view=aspnetcore-

Post a Comment

Previous Post Next Post