.NET Core 3 and Support for Windows Desktop Applications
blogs.msdn.microsoft.com
blogs.msdn.microsoft.com
Regardless, I'm working on a way to build Qt/Qmp apps with .NET Core.
Considering the amount of work being done in public on React-Native-Windows [2], it looks like this is turning into one of their (intended or not) version of cross-platform (using web technologies) dev stack.
[1] https://github.com/Microsoft/reactxp [2] https://github.com/Microsoft/react-native-windows
Silverlight or Moonlight never worked for me on Linux desktop.
Cross platform does not mean it works in all OS ever written.
To be clear:
* On top of Win32 and Direct2D for Windows.
* On top of GTK3 and Skia for Linux.
* On top of MonoMac (and Skia?) for macOS.
* Experimental support for Android.
* Experimental support for iOS.
One can see Avalon Studio as a sort of proof of concept, an Avalonia-based IDE for C#, C++, and Core2D development. https://github.com/VitalElement/AvalonStudio
What is the cross platform .NET?
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.
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.
I'd still really like a desktop UI flavor of some sort to make it into cross-platform .NET, mind you. Let me run my desktop apps on a Linux machine.
I have to have a UI, but the UI is not sophisticated, and could likely be migrated to another UI framework without too much pain.
Although... Xamarin still doesn't play nice with VB does it? Fun: https://docs.microsoft.com/en-us/xamarin/cross-platform/plat...
So much wasted development effort. They are building Xamarin.Forms AND this new Windows Desktop Application stuff.
WPF is still pretty much alive in applications that need to target Windows 7 and lower.