What is the cross platform .NET?
What is the cross platform .NET?
Windows-specific features are not really "creeping into .NET Core". WPF and Windows Forms will be components that layer on top of the .NET Core runtime. If you want to use them, you will get them. If you don't want to use them, you will not. We already have precedent for that with the Windows Compat Pack [1]. We also have significant platform-specific implementations already [2].
We think developers will like the idea that they can take advantage of OS-specific functionality. We will look for more opportunities to do that on macOS and Linux, too. If we were ever to support the macOS Cocoa API, it would layer on top of the .NET Core runtime, too.
Does that help?
[1] https://blogs.msdn.microsoft.com/dotnet/2017/11/16/announcin... [2] https://user-images.githubusercontent.com/2608468/39717763-1...
Second: is the goal of Core 3 to be “feature complete” for the desktop APIs in the sense that existing .NET 4.7 Windows Forms apps (for example) should work without change in .NET Core 3, or is it a less ambitious plan initially?
We've already shifted to putting more effort into the .NET Core project. The last few .NET Framework releases have been pretty targeted. That trend will continue. We'll continue adding existing .NET Framework APIs on Core to make it so that devs can move more and more apps to .NET Core. That's the basic plan.
From the post:
* Desktop applications will need to target .NET Core 3 and recompile.
* Project files will need to be updated to target .NET Core 3.
* Dependencies will not need to retarget and recompile. There will be additional benefits if you update dependencies.
And what about actually reading and taking in account what people are writing in your blog post comments, here or User Voice, sometime for _years_? It's seems rather clear that there is demand for a cross platform UI API and that the lack of it is hindering .net core proposition value and adoption.
I understand that it is not a decision your team can made only, but please stop dropping the "we're hearing you" meme when some important demands like that are automatically dismissed.
The goal here, I think, is to inevitably ensure regardless of platform you're targeting or format your application is used in, it can rely on the same .NET as every other.
Whereas .NET Framework was a Windows-based design where the OS was an assumption, .NET Core is moving to add Windows-specific capabilities as an add-on.
The problem is that the majority of .NET developers aren't moving away from .NET Framework unless we can take our tooling with us.
Lack of GUI tooling, missing 1:1 feature parity with EF 6, DB drivers are holding many back.