The Road to Microsoft's .Net
I was thinking of what I should write as my first post and struggled to narrow down on a subject that will be interesting to me and, hopefully, others too. This blog will cover a range of technologies from open source to proprietary. However, I felt that since I will be covering a lot of subjects on Microsoft's .Net, it will be prudent to provide a historical whirlwind of how the platform has developed over the years to where we are (.Net 7 release candidate).
With no further ado, I will highlight the key features released under each major version of .Net Framework and .Net.
What is .Net and .Net Framework
Microsoft defines .Net and .Net Framework as follows:
.NET Framework is the original implementation of .NET. It supports running websites, services, desktop apps, and more on Windows.
.NET is a cross-platform implementation for running websites, services, and console apps on Windows, Linux, and macOS. .NET is open source on GitHub. .NET was previously called .NET Core.
Microsoft .Net Framework 1.0
- The original version of .Net Framework was released in 2002.
Microsoft .Net Framework 2.0
This was a major upgrade to the previous version and brought the following features:
Generics - the need to write once and use everywhere as well as improving performance by avoiding boxing and unboxing
Debugger edit and continue feature that every developer has come to love
64-bit support, improvements to ASP.NET and ClickOnce deployment
Microsoft .Net Framework 3.0
Windows CardSpace - Microsoft's attempt to address issues with password security and user identity
Windows Communication Foundation - aimed client-server communication models
Windows Workflow Foundation - ability to implement business processes using a visual workflow.
Windows Presentation Foundation - for developing desktop applications using declarative language syntax called XAML
Microsoft .Net Framework 3.5
- The main features included expressions trees, HashSet collection, and LINQ
Microsoft .Net Framework 4.0
Garbage Collection - improved performance by introducing background garbage collection replacing concurrent garbage collection
Dynamic Language Runtime - enabled runtime type binding.
Other features included
System.TimeSpan
BigInteger and Complex Numbers
Tuples
Microsoft .Net Framework 4.5
Support for arrays larger than 2 gigabytes (GB) on 64-bit platforms
Background just-in-time (JIT) compilation
Improvements to:
Windows Presentation Foundation (WPF)
Windows Communication Foundation (WCF)
Windows Workflow Foundation (WF)
Microsoft .Net Framework 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, and 4.8
- These are in-place updates to .Net Framework 4.5. Version 4.5 is in itself an in-place upgrade for .Net Framework 4.0. What this means is that all these versions use the same runtime despite new versions of assemblies with new features. Application targeting a lower runtime version than what is installed on the target machine will run without needing recompilation. However, if an application targets a higher version of the framework than what is on the machine, it may run just fine if it does not reference any APIs that are not present in the old version of the Framework
Microsoft .Net Core 1.0
- Released in 2016 as an open-source project and the start of a new journey to bring Microsoft .Net to other platforms such as Linux and Mac. Support for this version ended in 2019
Microsoft .Net Core 2.0
- This version brought improvements around tooling e.g. implicit running of restore during project build, support for C# 7.1 and Visual Basic and support for .Net Standard 2.0
Microsoft .Net Core 3.0
- Added support for .Net Standard 2.1, C# 8.0, and introduced new types such System.Index.
Microsoft .Net 5.0
Improvement to System.Text.Json and Relational pattern matching
Introduced Records, top-level statements
Microsoft .Net 6.0
Support for C# 10
Minimal APIs
Single page applications
Unified platform across browser, cloud, desktop, IoT, and mobile apps
Performance improvements
Improvements to Blazor and Blazor WebAssembly (Wasm)