On Day 2 of Microsoft’s Build 2016 conference, Microsoft program managers Scott Hunter and Scott Hanselman presented a talk on the current state and future plans for the .NET platform. Titled “.NET Overview”, they spent an entertaining hour describing the company’s goals for .NET and what developers can expect. As the opening day keynote alluded to, there are many positive changes coming to the entire .NET platform.
Their presentation began with their view of how the .NET Framework serves as the basis for two main application areas. The first was called “Modern Device Experiences” and basically consists of the familiar app model – UWP and Xamarin apps on any device (desktop, mobile, etc.) The second is “Modern Cloud Experiences” which consists of .NET Core and ASP.NET Core.
The problem with targeting these application areas is that it can require using up to 3 different .NET-based libraries: the traditional Microsoft .NET Framework, the relatively new .NET Core, and now Xamarin. Hunter and Hanselman stated their team’s goal is to build a single .NET Standard Library that is then accessible as needed by those three .NET domains.
By moving to this new standard library, Microsoft hopes to realize the following benefits:
- Same APIs available on all platforms
- Master one library not a platform
- Big surface area – no small common denominator
- .NET Standard can grow without updating platforms
- Fast innovation on libraries, common infrastructure, and tools
One side-effect mentioned from this focus is that Mono is now MIT licensed, so licensing concerns should not be a concern as it relates to refactoring the code or when choosing which platforms to use in your project. On a related note, Mono and the Xamarin SDK are now part of the .NET Foundation. As new library features are created, they will be added to .NET Standard Library versus one of the 3 domains—so this is the library to learn to maximize your training investment.
Hanselman made the point that even though the .NET code is open source, support is still available from Microsoft. This is can be an important business consideration for those concerned about who to call in the event critical help is needed. Another distinction that Hanselman wanted to make was regarding the release cycle of .NET: despite being developed in the open, this does not mean it is continuously shipped.
Those interested in viewing or participating in the development of .NET can do so via Microsoft’s public GitHub repository.