During the latest edition of Microsoft Build, Microsoft's .NET program manager Scott Hunter published an article stating that .NET Core is the future of .NET.
Last year Microsoft had already affirmed that .NET framework would be discontinued in favor of .NET Core, in a Visual Studio Live! Conference keynote. The first announcement of .NET Core as an open-source development stack was in 2014, but the first major release of .NET Core wouldn't be announced until mid-2016, along with the correspondent versions of ASP .NET Core and Entity Framework Core. Open-sourcing .NET Core was an initiative towards laying the foundation for a cross-platform .NET and building a stronger ecosystem.
The first major version of .NET Core was focused on high-performance web and microservices. One year later, with the announcement of version 2.0, multiple APIs and components were added to facilitate the migration of web applications to .NET Core. InfoQ discussed the release of .NET Core 2.0 and its future with veteran developers from the community. The key takeaways included recognizing the .NET Core as an already stable platform suitable for new application development, providing significant performance benefits over the .NET Framework . One of the developers, Jeff Amons, said that one of the .NET Core strengths was its server-centric design model:
Originally .NET was optimized for one user on one Windows computer. (...) Core gave Microsoft a chance to reset the base to a server centric model.
The highlight of the .NET Core 3.0 announcement was the support for Windows desktop applications, focused on Windows Forms, Windows Presentation Framework (WPF), and UWP XAML. At the moment of the announcement, the .NET Standard was shown as a common basis for Windows Desktop Apps and .NET Core. Also, .NET Core was pictured as part of a composition containing ASP.NET Core, Entity Framework Core, and ML.NET. Support for developing and porting Windows desktop applications to .NET Core would be provided by "Windows Desktop Packs", additional components for compatible Windows platforms.
Image source: https://devblogs.microsoft.com/dotnet/net-core-3-and-support-for-windows-desktop-applications/
Hunter's article was published simultaneously with the announcement of .NET 5 as ".NET Core vNext", the next release after .NET Core 3.0. In this announcement, Microsoft shows .NET 5 as a unifying platform for desktop, Web, cloud, mobile, gaming, IoT, and AI applications. It also shows explicit integration with all Visual Studio editions and with the command line interface (CLI). The goal of the new .NET version is to produce a single .NET runtime and framework, cross-platform, integrating the best features of .NET Core, .NET Framework, Xamarin, and Mono (the original cross-platform implementation of .NET). .NET 5 also features Java interoperability on all platforms and interoperability with Objective-C and Swift on multiple operating systems.
Image source: https://devblogs.microsoft.com/dotnet/introducing-net-5/
The community reacted to the .NET 5 announcement with some skepticism related to the branding and backwards compatibility. For example, user lol768 said:
vNext has already been historically used in the context of ASP.NET to refer to ASP.NET (not to be confused with ASP.NET MVC) v6. We restarted the versioning back with ASP.NET Core, now on version 2. Entity Framework used to be a .NET framework component but is now standalone, and has a Core version? (...) I remember many years ago when we also had Microsoft .NET Passport... which was completely unrelated to everything else that I've mentioned related to the .NET brand. And now we have .NET 5 which is neither Framework nor Core - so will ASP.NET drop this Core branding too? Is it just me, or is this all incredibly convoluted?
Still, it is clear that all future investments in .NET will be related with .NET Core, and that .NET 5 is the next step forward with .NET Core. All related development will continue to be open-source and community-oriented. The production release of .NET Core is scheduled to later this year, in September, and .NET 5 is expected on late 2020. The current .NET Core roadmap is available here.
Image source: https://devblogs.microsoft.com/dotnet/introducing-net-5/
Community comments
Buggy
by Ian Marteens,
Re: Buggy
by Obinna Okafor,
Re: Buggy
by Ian Marteens,
Re: Buggy
by Obinna Okafor,
Back to the future
by Mac Noodle,
Buggy
by Ian Marteens,
Your message is awaiting moderation. Thank you for participating in the discussion.
I can only guess the reasons, but WinForms in .NET Core (preview 5) is still full of bugs. I suspect it has something to do with the lack of support for the old asynchronous model using delegates. This is an outsider opinion, of course, but it matches with their inability to get the WinForms designer ready on time. Let's cross fingers...
Re: Buggy
by Obinna Okafor,
Your message is awaiting moderation. Thank you for participating in the discussion.
That's why it is preview. It is in progress. Even some released softwares have bugs.
Re: Buggy
by Ian Marteens,
Your message is awaiting moderation. Thank you for participating in the discussion.
We're only three months from release. That's my point. And remember: no form designer yet for WinForms. More than a Preview 5, it looks like an alpha. We're not trying important functionality that should be in a RC/RTM.
Re: Buggy
by Obinna Okafor,
Your message is awaiting moderation. Thank you for participating in the discussion.
Mind you that WPF and WinForm support in .Netcore 3 did not start with preview 1? They are working on it and are always communicating the progress of things.
Back to the future
by Mac Noodle,
Your message is awaiting moderation. Thank you for participating in the discussion.
So, it is back to being the future? Wonder what it will be next year.