There is stiff competition apparent across the technology and business sectors to stay competitive in the market. Industries always try to adopt new technology that promises a strategic gain for the business. Microsoft .NET is such a dynamic and efficient web development and application development tool.
Dot NET has a range of products such as .NET Core, .NET Framework and its improvised versions. The .NET Core framework includes Base Class Library, AOT, GC, ML.NET, Runtime, JIT, ASP.NET, C#, F#, VB.NET, Entity Framework, Xamarin, WinForms, and WPF.
Microsoft .NET 5 is such an improvised version. It has stepped in with amazing features and functionalities to ease out the application development process.
In this blog, let’s learn more about Microsoft .NET 5
An Overview of .NET 5
Microsoft .NET 5 intends to provide the .NET developers with a new cross-platform development experience with updated features. As it is the successor of .NET Core 3.1 and .NET Framework 4.8. It brings the latest features and puts order to the .NET universe fragmentation, which has been undergoing an evolving process.
For any developer using apps developed in the .NET framework, it’s imperative to know how .NET 5 impacts the existing enterprise app. It is to be noted that the development programs in .NET framework suggest that there will be only one .NET to target macOS, Windows, Linux, iOS, and Android in the future.
.NET Core 3.0 and .NET Core 3.1 were released in September 2019 and December 2019 respectively. .NET Core was also designed for cross-platform working. It was further intended to support new, cloud-first mobile applications as well. The tech world got the writing on the wall clear as .NET Core 3.1 became the recommended version of .NET for all new applications. Microsoft has been continuing with their researches on the next version – .NET 5, since then. From March 2020, the preview version of .NET 5 was made available for public download and testing.
The key theme of the 2020 developer strategy in .NET framework is the shift between generations. As it is widely expected, it’s a unification of old and new ways. Yet, the new technology forges ahead in all aspects, either its Project Reunion, WinUI 3, or the launch of .NET 5.
A Quick Glance at .NET 5.0 Highlights
- .NET 5.0 was hosted for months at dot.net and Bing.com to ensure competency.
- Performance is significantly improvedacross many components.
- New language improvements in C# 9 and F# 5.
- Enhanced .NET libraries performance.
- Refinements in the GC and tiered compilation.
- Dropped P95 latency.
- Better Application deployment options.
- Click Once client app publishing.
- The addition of Server Core container images and Reduced container image size.
- Expansion in Platform scope.
- Implementation through Cross-platform.
- Remain Community-oriented and open-source on GitHub.
- Continue support to leverage platform-centric capabilities.
- Retaining the native bindings to every native platform from Xamarin.
- CLI (Capable command-line interface)
- Small SDK-style project files.
- Installation through side by side .
- Visual Studio, Visual Studio Code Integration and VS for Mac.
.NET 5 – A Quick look at the updations
The first thing to notice is that .NET 5 offers you a newly unified vision of the .NET world. Those who are working with .NET are aware of its various platform fragmentation since its first release in 2002. The .NET Framework, as we know, was initially designed for Windows, yet its runtime specification was standardized as ECMA 335.
Through .NET 5.0 and 6.0, .NET platform is unified into a single product experience, enabling the users to pick just the parts of the .NET platform that they want to use. Acquiring all the .NET tools and build and runtime packs that the developer need from the command line is much easier. There is a package manager experience enabled for .NET platform components.
The biggest beneficiaries include the quick construction of a development environment and CI/CD. Blazor is the perfect example of repo consolidation and .NET unification in .NET 5. For example, Blazor WebAssembly and Blazor on the server use the same code for List<T>. It was not the case for Blazor in the previous versions of. NET.
Languages in Microsoft .NET 5
.NET 5.0 release includes C# 9 and F# 5 and is part of the .NET 5.0 SDK along with Visual Basic. There is a notable improvement to support the Visual Basic Application Framework on .NET Core, though it does not include language changes. The new C# compiler has C# Source Generators as an essential feature. Technically they are not part of C# 9 due to the lack of language syntax.
.NET 5.0 will continue hosting the same familiar set of languages, including new versions of both C# and F#. These come as part of Visual Studio 16.8 or with the updated C# Visual Studio Code extension. Microsoft has moved the framework into a single GitHub repository to ensure all versions have the same underlying features. The future shift to .NET 6 will bring in other higher-level implementations, including Xamarin.
- C#9 will obviously bring in several new language features to enable terser code in general. The introduction of the record types and improvements to pattern matching is the most notable changes.
- F# 5 continues its focus on improvements in interactive and analytical programming.
- Visual Basic will cease its development further as a language. To enhance porting of VB based .NET framework applications, more project types will work with Visual Basic in .NET 5.
Target .NET Standard 2.0
The developers have to target .NET Standard 2.0 and 2.1 when available as it’s the common API definition for .NET Framework. In simple terms, if you get code now to .NET Standard 2.0, it would build on NET 5 seamlessly.
To prepare for the runtime unification in .NET 6, .NET 5 will be released in advance with an updated approach to target framework versions. These are specified with Target Framework Monikers (TFMs). At present, every .NET runtime has its own set of TFMs.
Net5.0 will remain as the unique TFM with the new .NET 5. The net prefix instead of netcoreapp will be used as it is still under development. The relabeling is also consistent with the renaming of .NET Core 3.1 to .NET 5.
Not all supported operating systems need to need their own TFMs. The .NET runtime prefix is used in case if no platform-specific APIs are supported (current examples are Linux and WebAssembly)
Single File Applications
A new publish type will be introduced in .NET 5, giving the complete application output as a single file to be distributed. This specific feature will be supported entirely with the x64 architecture on various operating systems like Windows, macOS, and Linux. Moreover, it will run with ARM32 and ARM64. At the same time, it is to be noted that this will not be actively validated and supported.
However, the single-file goal will not be fully achieved in Windows as the executable will still need four additional files at runtime. There is an option to include these files in a single distributable file, but on the first time when the application starts they will be extracted as separate files.
But be careful that this feature doesn’t use the same approach as the single-file applications which you can build in .NET Core 3.1 as the single-file application is just a way to package binaries. During run time, they are unpackaged to a temporary folder, loaded, and then executed. The single-file application has a new internal structure in .NET 5, and is directly executed with no performance penalty.
.NET MAUI - The Universal U
.NET 5 is bringing to you state of the art way to build cross-platform user interfaces. Thanks to .NET MAUI, you will be able to build user interfaces for any platform such as Android, iOS, macOS, and Windows with a single project.
Even though this feature is still under development and will be released with .NET 6, you can still start experiencing .NET MAUI to be ready when it is officially released. .NET MAUI can be termed as an evolution of Xamarin. This new framework offers a universal model in the tech world to build UIs on mobile and desktop platforms in the future.
Along with the Model-View-ViewModel (MVVM) pattern, .NET MAUI supports the current Model-View-Update (MVU) pattern. This provides an effective way to manage UI updates and application state, as it is a one-way data flow pattern inspired by the Elm programming language architecture.
.NET 5 – Excluded Technologies
Here we will have a quick glance into what is no longer supported. It is evident that the architectural review and the effort to make a real cross-platform programming framework led to eliminating a few features supported in .NET Framework. This includes the following,
For many years, ASP.NET Web Forms has been the central technology in building dynamic web UIs. However, its lifetime was closely bound to .NET Framework’s destiny. As we know, .NET Core doesn’t support Web Forms, it is no longer supported in .NET 5 shouldn’t be news. There are still a few alternatives available to build web UIs for the developers. You may use Razor Pages for building traditional web applications and Blazor for building single-page applications.
Windows Communication Foundation (WCF)
The conventional communication framework for Windows WCF is going to be denounced. It is a real shock for the developers who have used it to build their service-oriented applications. But we need to understand that the primary goal of .NET 5 is becoming a cross-platform framework. The only alternative is to migrate to gRPC. In case if you are still nostalgic about WCF, you can attempt the CoreWCF open-source project.
Windows Workflow Foundation
Windows Workflow Foundation, the workflow engine technology available in .NET Framework, will not be available with .NET 5. You can use an open-source porting project, CoreWF, as there is no official replacement for this technology if you want to attempt to move your existing workflows on .NET 5 or create new ones.
.NET 5.0 is undoubtedly the most awaited release, which will improve many aspects of .NET platform and the growing web and app development journey. There is a wide variety of improvements in all areas, ranging from single file applications to JSON serialization usability to Arm64 enablement.
Months of testing had made it ready for the developers to run the business and power the apps. The latest language improvements in C# 9 and F# 5 will surely make the code more expressive and comfortable writing. Remember that .NET 5.0 is also a great choice for all existing apps, as you can upgrade those without much effort in most cases. So thumps up for .NET 5.