Microsoft is currently in the midst of pushing a major change to the .NET platform in it's new .NET Standard Library. The .NET Standard simplifies development for any of the .NET platforms (including the .NET Framework, .NET Core, and Mono/Xamarin) by providing just one unifying base class for their myriad platforms. Microsoft bills this one .NET Standard library as "One library to rule them all", which is an easy way of understanding this change.

Why the change to .NET Standard?

Microsoft's platforms have grown and changed quite a bit recently. Microsoft made a big push for .NET Core a couple of years ago, and they recently acquired Xamarin and their cross platform development tools. The old .NET platforms of such WPF, WinForms, and ASP.NET have their own Base Class library, while newer platforms like UWP and ASP.NET Core used the .NET Core Library as their base. The addition of Xamarin with Mono at its base to Microsoft's portfolio meant that there were now three different base libraries available for the various Microsoft .Net platforms. Replacing these with the .NET Standard Library will simplify this greatly. dotnetstandard

How will this help me?

Having a single .NET Standard Base Library will make it much easier to share code across platforms. Libraries that you develop targeting .NET Standard should be able to run on all platforms, so sharing your business logic should become even easier than it's been in the past. Also since the APIs should have the same basic shape across platforms, you'll be in a better position to take knowledge about how your desktop app works, and apply it on other platforms (such as in a mobile app).

How will this help the platform?

Creating the .NET Standard heads off many potential problems that can come from having a forked platform. Having one Base Class Library will keep all of the foundational APIs consistent and have a number of benefits. This makes it easier to develop for the .NET platform as a whole, but also easier to move the platform forward without fragmentation. This should also improve versioning since this provides a unified base, and it makes everything a little clearer when moving between platforms.

Is there a Catch?

This does necessitate some changes throughout all the different .NET platforms, and does both change and somewhat deemphasize .NET Core (at least in terms of portability). Libraries should move to .NET Standard since it will replace Portable Class Libraries for targeting multiple .NET Platforms. The will be some breaking changes to .NET Core as well, and it might take a little while before developers start adopting the changes. Overall though, .NET Standard should lead to a healthier platform with less splintering and compatibility issues.

Final Words

Both Microsoft and Xamarin have already started to release material about creating Class Libraries that target .NET Standard so clearly they're excited to push adoption. This is a good move for Microsoft, and it should hopefully encourage development for all .NET platforms. It should become easier to share code and move between the different platforms, and, once everything has settled, should hopefully be a compelling reason for developers to make full use of all of Microsoft's development ecosystem.