.NET 5 merges Core and .NET Framework into one solution


Microsoft has been making big changes to .NET this year. In May, the company announced that it would be merging all of its .NET products, like .NET Core and .NET Framework, into a single .NET. 

The .NET Framework is a development platform for building web, Windows, Windows Phone, Windows Server, and Microsoft Azure apps. .NET Core is a development platform for building cross-platform device, cloud, and IoT applications. 

In September, the company released .NET Core 3.0, the last release under which the .NET products would be separated. 

Starting with .NET 5, there will be a single .NET installation. Microsoft plans on releasing .NET 5 in November 2020, with a preview coming out in the first half of 2020. 

“.NET Core was built from the learnings of building .NET Framework and has taken the best features forward, at first focusing on hyper-scale cloud scenarios,” wrote Scott Hanselman, partner program manager at Microsoft, in an email to SD Times. “With .NET Core 3.0 we have added Windows desktop support with Windows Forms and WPF which were previously only available on .NET Framework. As we move forward toward .NET 5 we will bring in the best of Mono and its support for native execution and small footprint for the smallest of devices. Having one .NET instead of three simplifies the choices and the platform for new and existing developers.”

According to Microsoft, all of the things that developers love about .NET Core will remain, such as its open-source community, cross-platform implementation, support for leveraging platform-specific capabilities, high performance, side-by-side installation, small project files, a capable command-line interface, and integration with Visual Studio, Visual Studio for Mac, and Visual Studio Code. 

But in addition, .NET 5 will also provide more choices on runtime experiences, Java interoperability on all platforms, Objective-C and Swift interoperability on multiple operating systems, and CodeFX will be extended to support static compilation of .NET, among other changes. 

.NET Core 3.0
.NET Core 3.0 was released in late September. According to Microsoft, one of the biggest improvements in .NET Core 3.0 is support for Windows desktop applications. 

According to Hanselman, .NET Core 3.0 is smaller and faster, which makes it ideal for cloud installations where density and speed are important. “Folks want their containers and microservices to start up fast and stay fast. .NET Core 3.0 is ideal for microservices environments like Kubernetes and AKS,” the team said. 

Making the framework smaller and faster was one of the team’s main goals in this release. Several of the new features in this release helped achieve this, such as fast JSON reading and writing and support for HTTP/2. 

In addition to improving performance, the team was also able to drastically reduce the memory usage of the garbage collector. “You’ll see big improvements on big machines, especially ones with >64 cores. It’s also been hardened for Docker to make it efficient and tight in containers. The garbage collector and thread pool work better when a container is configured for limited memory or CPU,” Hanselman wrote.

He also pointed out that .NET is everywhere now — allowing developers to make apps that run on IoT devices, in small containers, on Windows, or on an iPhone or Android phone, as well as create games, websites and APIs, and scale to the cloud. “From a tiny device to a massive cloud, that language you just learned or that platform you’ve been working with for years JUST GOT BETTER. You can take those skills and translate them directly to these other platforms,” he wrote.

To celebrate this fact, Microsoft has released over 80 free beginner-level courses that can be used for bootcamps, college students, tech enthusiasts, or anyone looking to brush up on their understanding of .NET.  

Hanselman explained that while .NET on Windows will be supported forever, .NET Core is what developers should be using to get ongoing innovation. Going forward, Microsoft will continue working on unifying its platforms across Windows, Linux, macOS, iOS, Android, tvOS, watchOS, and WebAssembly into a single .NET solution to reduce confusion. 

In addition, .NET Core is receiving long-term support (LTS) releases in odd-numbered years. Developers looking for a stable platform to rely on should be targeting those LTS releases. 

A full list of features in .NET Core 3.0 can be found at https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-core-3-0

.NET Core 3.1 Preview 1
In addition, in October, the company released the first preview of .NET Core 3.1, which features key improvements in Blazor and Windows Desktop. .NET Core 3.1 will be a long-term support release and it is expected to ship in December 2019. 

In addition, Microsoft revealed plans for improvements in future releases. They will be available in future previews. 

It will make it so that the .NET Core Desktop Runtime Installer installs the .NET Core Runtime, which it currently does not do. It will also introduce a developer experience in Visual Studio and SDK for C++/CLI in .NET Core 3.1 as well as Visual Studio 16.4. 

In addition, a new requirement of macOS 10.15 Catalina is that applications have to be notarized, and .NET Core SDK, .NET Core 3.1, and all other supported .NET Core releases will satisfy that requirement. 

.NET Framework October 2019
The latest release of .NET Framework is a preview version of the October 2019 release. The .NET Framework October 2019 includes quality and reliability updates for the framework. 

It fixes issues in ASP.NET, CLR, Windows Forms, and WPF.