microsoft / WindowsAppSDK

The Windows App SDK empowers all Windows desktop apps with modern Windows UI, APIs, and platform features, including back-compat support, shipped via NuGet.
https://docs.microsoft.com/windows/apps/windows-app-sdk/
MIT License
3.78k stars 319 forks source link

Proposal: Support for Windows Forms apps for all kinds of apps on all editions of Windows #91

Open fisforfaheem opened 4 years ago

fisforfaheem commented 4 years ago

I really want the next version of windows forms for modern devices with easier event driven coding and UX drag and drop UI

jonwis commented 4 years ago

To answer your original question, you'll be able to use Project Reunion functionality in all applications. That includes Windows Forms, WPF, UWP-XAML, WinUI 3.0, custom rendering, Electron, and more.

I retitled this question as a "can we get Windows Forms to work in UWPs as well?" The core issues are Windows Forms' reliance on HWNDs and precise coordinate positioning, while modern apps on many editions use CoreWindow and relative coordinate spaces. We certainly recognize the sheer volume of WinForms/WPF apps out in the world on Windows and want to get them a path to move forward as well using technology from Project Reunion.

For now, please check out WinUI 3.0 for a modern markup-oriented UX that works across lots of different kinds of apps and Windows editions.

fisforfaheem commented 4 years ago

Why cant we use windowds forms like event driven on latest en framewroks

On Mon, Jun 29, 2020 at 9:44 AM Jon Wiswall notifications@github.com wrote:

To answer your original question, you'll be able to use Project Reunion functionality in all applications. That includes Windows Forms, WPF, UWP-XAML, WinUI 3.0, custom rendering, Electron, and more.

I retitled this question as a "can we get Windows Forms to work in UWPs as well?" The core issues are Windows Forms' reliance on HWNDs and precise coordinate positioning, while modern apps on many editions use CoreWindow and relative coordinate spaces. We certainly recognize the sheer volume of WinForms/WPF apps out in the world on Windows and want to get them a path to move forward as well using technology from Project Reunion.

For now, please check out WinUI 3.0 https://docs.microsoft.com/en-us/windows/apps/winui/winui3/ for a modern markup-oriented UX that works across lots of different kinds of apps and Windows editions.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/microsoft/ProjectReunion/issues/91#issuecomment-650901425, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIRXJSAZM2QH5Q5X2E5RKTDRZAL3JANCNFSM4OIHKZRQ .

fisforfaheem commented 4 years ago

I am overwhelmed with too much options, here , xamarin, winui, .net 6 maui, WPF windows forms and too much

MattBDev commented 4 years ago

I don't see this being possible because that would mean support for IoT and XBox. I know that XBox can't run Windows Forms and it should probably stay that way.

fisforfaheem commented 4 years ago

There are 50,000 flutter apps in both the iOS and Android store. What you saw was your own ignorance (not meant as an insult) of the technology. It works VERY well for iOS, Android and now macOS (with the majority of those apps getting ported to macOS almost immediately giving macOS the major win that Windows needs right now)

Web is about to go mainline and works very well too. As of June 25th you can write for iOS, Android, macOS and Web from one environment by simply learning Dart. (And yes, it supports essentially everything that Xamarin Forms does but with a pixel perfect renderer on all platforms)

The weaknesses of flutter are:

Some plugins haven't yet been ported to Web. They're coming quickly however. Dart is not nearly the language that C# is. Flutter doesn't have the Xamarin eco-system for Simulators, and compile to store etc. that Xamarin does. Windows support is still lacking. Linux support is still lacking. There literally are no other downsides. I've built the same app in Xamarin and flutter and the flutter app looks way better, functions way better and is more stable. The development environment though limited is also way more stable.

1 is just a time thing.

2 The flutter rendering engine is C++ code and ANY language can be hooked to it. @SteveSandersonMS did a POC of Blazor running against flutter. That work needs to be taken seriously and made into a full project. There's 0 reason why C# can't be used with flutter and it would give flutter a vastly better development experience.

3 All of Xamarin tools could come over easily with the remote simulators etc. This is just a decision by MS. If you recall they had these working for Cordova before they dumped cordova support in VS.net. So it's already there and could easily be extended and publish to the stores is already there and just needs the blazor tooling.

4 This is on MS. Google has asked in a blog post for help from Microsoft. Microsoft has provided support for Duo in Flutter recently. If MS added Windows support and the ability to write plugins in C# UWP instead of having to use win32 and C++ Flutter's Windows ecosystem would flurish quickly because of the massively larger developer pool.

5. Not sure this even matters.

I'm a Microsoft guy. I love C#. It's by far the best development language made. XAML is another story but I'm going to ignore it for now. I would much rather never have touched Dart. It's a lame language that google created to compete with C# and Typescript and prove that they could make it more simple and in the process made most things more difficult.

I would very much love to see Microsoft succeed. But their current approach of project reunion is a fool's errand. With the exception of games and some highly specialized tools that require realtime responsiveness/low level hardware, Windows development on its current track is an ever shrinking market and reunion doesn't change that or give MS any new opportunities to expand that. Windows has quickly become a web browser with Office. Office is literally the only reason why most companies haven't switched to chromebooks or linux on desktops. Maui is just more of the same Xamarin that has proven to be a complete flop. Xamarin forms in specific is a mess. It's so bad that in 2019 they went 3 months without a build of visual studio that could compile to all 3 stores at the same time because of bugs. Exactly 3 people even watched the bug reports. Changing the name and providing a syntax more similar to Flutter without the rendering engine that flutter provides is a pointless waste of resources because it still won't be used.

By adopting the flutter rendering engine and bolting on C# like dart is right now and then providing all of the tools necessary so that a dev never needs to own a Mac Microsoft has the opportunity to win BIGLY. And they have the opportunity to have their competitor do work for them. That means Duo and Neo get an app ecosystem and become relevant, and it means that Windows app development has a chance again.