What to expect from .NET 5

net_logo-1.jpg

What is the Future of .NET?

At the Microsoft Build conference in May this year, the technology giant announced the new .NET 5. To date, .NET frameworks have been Windows-only, but .NET 5 is paving the way for the future. The latest release to the .NET family will be a single united platform for building applications that run on all platforms and devices. 

What is .NET?

.NET is Microsoft’s free, cross-platform, open source developer platform. Its aim is to allow developers to build many different types of applications using multiple languages, editors and libraries. .NET is a  strong competitor to Java, and central to development on all Windows platforms. The controlled programming environment of the .NET frameworks include the following key design features:

  • Language interoperability - .NET programs are able to access functionalities and code written in other languages outside of the .NET frameworks.

  • Framework Class Library - a collection of reusable classes, interfaces and value types operating as code for the most common functions.

  • Common Language Runtime - programs developed in .NET have common behaviours in relation to security, memory management and exception handling.

The .NET frameworks, boast ease of deployment, with a set of tools to ensure programs are easily installed without interference from other applications. Programs developed in .NET are also based on a common security model. 

Where is .NET Now?

Microsoft began developing the .Net Framework back in the late 1990s. Since its inception, they’ve added around fifty thousand .NET Framework APIs to the platform. As we’ve touched on, the distinguishing features of the .NET frameworks are their base class libraries, which allow developers to tap into a wide range of functionality. However, currently, developers have to choose between different frameworks, .NET Framework, .NET Core or Mono, depending upon which platform they’re developing for.

The most recent framework is .NET Core 3.0, also announced at the Build conference this year with preview releases available. The new release, .NET Core 3.0 Preview 6, is due to be officially released in September. It will finalise Windows Presentation Foundation (WPF) and other functionality. The focus now is for the development team to work on quality, bug fixing and performance improvements. .NET Core 3.0 will be the last update to the Windows-only .NET Framework. The aim for next year is to create a unified framework, and that is where .NET 5 comes in. 

What is .NET 5?

In short, .NET 5 is the next big release in the .NET family. The big aim is for it to simplify the process of using .NET frameworks. Instead of having to choose between .NET Framework, .NET Core and Mono, these frameworks will be unified under a single .NET offering. With just one .NET going forward, developers will be able to use it for Windows, Linux, macOS, iOS, Android and more. 

Microsoft has purposely skipped version 4 to avoid confusion. The .NET Framework has been using the 4.x series for some time, which could confuse the message. The company aims to simplify not only the process but the naming. .NET 5 will have uniform capabilities and behaviours. 

.NET 5 will unify the existing frameworks while including the best libraries from within them. In this way .NET 5 will be a single platform that can be used for all modern .NET code. In the meantime, the release of NET Core 3.0 in September, will bridge the gap between .NET Core and the .NET Framework. 

What changes will .NET 5 Bring?

.NET 5 will deliver a lot of existing features from .NET Core and the existing .NET frameworks. Like its predecessors, the new framework will be open source, cross-platform and will support platform-specific capabilities. It will be fully supported by Visual Studio, Visual Studio for Mac, and Visual Studio Code editors.  .NET 5 will also have the native user interface features and hardware access that is available when using Xamarin and Mono. 

However, .NET 5 will also offer several improvements over earlier frameworks:

  • More choice on runtime experiences

  • Java interoperability on all platforms

  • Objective-C and Swift interoperability on several operating systems

  • CoreFX will support static compilation of .NET, smaller footprints and more operating systems

With these changes, the new framework is a definite game-changer for .NET. The hope is that code and project files will look the same regardless of the type of app that is being built. Developers will have access to the same runtime, API and language capabilities. 

What Still Needs to be Done

There’s still a little work to be done before .NET 5 is ready. Design leaders from .NET teams, including Mono, Xamarin and .NET Core, are working together as a single team. They have one set of deliverables and are currently making progress. Recent developments include creating a minimal layer that defines runtime, ensuring MonoVM can use CoreFX and its class libraries, and running all COReFX tests on MonoVM using the CoreFX implementation. 

There are still questions surrounding what the target framework will be, whether NuGet package compatibility rules will be the same, and which workloads should be supported out of the box. However, the team are working through the issues, will be getting feedback in due course, and hopefully they will all be resolved before .NET 5 is officially released.

When will .NET 5 be Released?

The intention is to release .NET 5 in November 2020, so we have a little while to wait. However, .NET Core 3.0 will be out this September and a preview .NET 5 will be out in early 2020. Once it has been released, Microsoft aims to ship a major update to .NET annually, every November. 

.NET 5 looks set to be an exciting new direction for Microsoft. The framework will become simpler yet broader with a more expansive capability and utility. Hopefully, this means a positive future for development in which the same .NET APIs and languages can be used regardless of application type, operating system or chip architecture.