Over the past few years, .NET applications have expanded significantly. Initially, .NET applications were just limited to the .NET framework and server-desktop architecture, but smart devices like convertible laptops, tablets and smartphones have played a huge role in bringing an evaluation in this field. .NET framework upgraded itself to the Xamarin platform which offered easy support from cross-platform development that included Android and IOS along with UWP (Universal windows platform). Later, .NET moved from Xamarin to .NET Core, another unique .NET framework that introduced cross-operating system development. Even after all these new developments, a .NET developer would seek some set of APIs that could offer him support for all these frameworks altogether. .NET Standard was the answer to that question.
In this article, we will be discussing the.NET Standard Compatibility with various frameworks and how it works to be compatible with a variety of frameworks.
.NET Standard Library
.NET Standard is a set of Base class libraries (BCL) that offers compatibility with a variety of technologies like .NET Framework, .NET Core, MONO, Xamarin, Mac, Android and Universal Windows Platform. .NET Standard allows libraries to build applications using an agreed set of common APIs, ensuring they can be used in any .NET application which includes mobile, desktop, IoT, web, or any platform where you have written a .NET code. The .NET Standard Compatibility is also available for all .NET implementations.
As .NET extended its capability beyond windows platforms. It was made compatible with different .NET Frameworks like .NET Core and Xamarin but there were supported by very limited base libraries. All .NET framework offered their different base libraries, Now the developers were required to learn all of these base libraries as initially there was no single platform to run and support them all together.
For instance, the .NET compact framework which was developed to support the windows phone platform in the early 2000s had no common libraries, same was the case with mono. Due to these multiple .NET frameworks, developers were now limited to one or maybe two platforms as they were finding it exhausting to learn all these different base libraries. Here .NET standard came into the picture. It was an instant hit as it just created a common uniform layer to access all these .NET flavours.
.NET Standard VS Other libraries
Despite being a significant improvement in terms of Compatibility, .NET Standard was not the only or first set of base class libraries. This was a common question for .NET developers why various other base class libraries, most Notably, PCL (portable class library) were not used to achieve compatibility with all base libraries as it was already available in . NET.
The answer was not that simple, PCL offered support for very limited APIs than the available platforms. It also requires re-compiling the applications to be compatible with PCL, whereas .NET standard Compatibility offered relatively more platforms, and as .NET standard fixes the API itself before implementation, there was no need to re-compile the applications.
The idea of using various other Base libraries such as .NET Core, or .NET framework for compatibility was also dropped because all of them had some issues that cannot be avoided. Despite offering rich API support, the .NET core framework only supported .NET core apps so NO support for the Android or Unity framework. As both of them have been heavily used for mobile applications, .NET Core does not seem a viable option. Similarly, the .NET framework class library also offered vast API support but it has been only limited to its .NET framework, which means the Apps developed on the .NET framework cannot be run on multiple platforms or Cross Operating systems like macOS or Linux.
.NET Standard offered relatively limited API support but the rich apps support was the sweet spot that made it more preferred over other base libraries. Also in recent developments, .NET standard 2.0 and 2.1 has been significantly improved with new features like Support for Visual Basic for apps development, A more diverse API support and .NET Core CLI support is also offered.
Is .NET Standard still relevant?
Despite all the features, in this extremely fast-paced industry, the .NET standard may seem to fade away and feels to get irrelevant but that is not completely true. Versions implementation, Application compatibility and code distribution are still very difficult to be done and .NET Standard still seems to be a good option as it resolves all these issues by offering API support under one roof.
There are a few notable features that still makes it a preferred tool for .NET compatibility.
– .Net Standard Versions
.NET Standard is versioned so that new APIs can be added with every new version. When a library is built for a certain version of .NET Standard, it can easily run on any .NET implementation that implements that version of .NET Standard (or higher). Developers have an option here as targeting a higher version of .NET Standard allows more APIs but it also means that it can only be used on recent versions of .NET. If developers target a lower version, it would reduce the number of available APIs but it makes the .NET standard more compatible.
– No recompilation Required
The re-compile time saved by the .NET standard is still a unique feature that makes it stand out and it also increases the cross-platform support.
– Open Source tool
Although it is not very common for Windows tools, the .NET standard is an open-source Base library and its code has been made available on GitHub. Being an open-source tool, It welcomes a whole new community of developers who wants to further explore and try out new features with its source code on a fundamental level.
– More libraries offered
.NET Standard 2.1 also introduced a compatibility shim for .NET Framework binaries. It significantly increased the set of libraries that you can reference from your .NET Standard libraries, giving more options for developers.
All these new and upcoming promising makes it a clear choice for .NET developers and they are still very interested in this base library. It makes the .NET standard quite evident that .NET is still a preferred choice for .NET developers in 2023.
In November 2020, .NET 5 was released. This new version of the framework aimed to be the unified framework for.NET. The .NET 5 offers a common set of APIs that runs on Windows, Linux, Mac, iOS, and Android. So, if your project targets .NET 5, your code will run on all those platforms. It may seem that .NET 5 has eliminated the need for .NET standards. It is somewhat true as .NET 5 can indeed be pictured as an evolution of the .NET Standard. However, .NET 5 is not a formal specification but just an actual implementation.
Wrapping it up
As we discussed, .NET Standard is a class library which contains a set of APIs (base libraries) that support .NET Framework, .NET Core and various other cross-platform operating systems. It is a good alternative to PCL (portable class library) as well due to better app support as it allowed .NET developers to develop apps that can support multiple platform applications.
We can call it an all-in-one tool to run your applications on different environments without making any changes in the source code.
Also Read: Overview Of ASP.NET Core SignalR