3 ms·
For someone coming back to Windows development after 5+ years, it is so incredibly difficult to figure out what is going on. I have never had so much confusion
by grumblingdev 3y ago
For someone coming back to Windows development after 5+ years, it is so incredibly difficult to figure out what is going on.
I have never had so much confusion in my life. WinUI 2, WinUI 3, C++/WinRT, C#/WinRT, C++/CX, C++/CLI, WinRT (Windows Runtime - that's not a runtime), COM, C++ Win32, C# .NET, UWP, Fluent, Metro, .NET MAUI, PWA, React Native for Windows, WPF, Windows Forms, Windows API, Windows App SDK (which is WinUI 3), VSIX, XAML, .winmd, WebView2.
When I think about macOS: Swift + SwiftUI, Swift/ObjC + AppKit.
This article was a huge read but helped me get an idea of things: https://arstechnica.com/features/2012/10/windows-8-and-winrt-everything-old-is-new-again/ https://arstechnica.com/features/2012/10/windows-8-and-winrt...
I think the issue is that the writers are trying to be too delicate to not make people feel like their apps are using legacy technology that will be deprecated.
> Many apps for Windows are written using WPF or Windows Forms, and they remain viable tools today...looking to the future....
There should be one obvious recommended way to build new apps, and all the other docs should be moved to a separate section.
And when I install Visual Studio 2022, it has a "Workload" called "Universal Windows Platform"...but I just read this is deprecated!!
- anakaine 3y agoYou've just very eloquently listed out the Windows UI framework dumpster fire. I honestly don't think Microsoft has the balls or ability to set a singular way forward at this point. WPF/UML have both been pieces of hot garbage. So one more framework to rule them all probably isn't something they're looking to explore at this point. What should probably happen is that they make an announcement similar to that which they dis with printer drivers. "Beyond 2027, it must all look like this. Here is 4 years lead time. Get on the train."
- fassssst 3y agoLet me make it easy for you, if you want it to look and feel native on Windows 11, use WinUI 3. ChatGPT gives a decent summary of the history of all that: https://chat.openai.com/share/6478dcdd-98d3-449a-84be-be56664b03aa https://chat.openai.com/share/6478dcdd-98d3-449a-84be-be5666...
- pjc50 3y agoThat's not a bad summary for AI, but it is very funny that every step of the way gets the adjective "modern". My own personal outsider take on this is that there are really only three eras that need to be considered: - "HWND era": win16/win32 classic UI aka "WinForms". This extends all the way up to ActiveX. Microsoft get to dictate the platform without real competition. - XAML era: the second system. Classic WinForms doesn't handle high-DPI displays or GPU rendering; it relies on pixel positioning and lets you draw directly on the framebuffer. WPF is the reaction to this. - Phone era: suddenly there is real competition and users start using a lot of non-Microsoft platforms. Microsoft launch their own phone, complete with new sandboxed APIs that don't correspond to Win32 at all. This is ultimately a market failure. But Microsoft have invested too much in UWP. At this point, the winning stacks globally are, in order: web (including Electron), iOS, Android. Nobody wants to do native Windows applications that aren't games if they can possibly help it. Even Microsoft start building web-on-desktop apps like Teams. So the only thing Microsoft can do is salvage operations on UWP APIs and XAML-related techs to try to make it usable to desktop developers by getting out of the sandbox.
- grumblingdev 3y agoDoes Microsoft have a reply for declarative UIs, e.g. React / SwiftUI / Jetpack Compose? I had thought XAML was it and was ahead of the game, but it's kind of a different approach. All the new ones define their declarative UI as inline source code.
- grumblingdev 3y agoCan I use TypeScript and WinUI 3? I remember a while back there was contraversy that MS wanted people to write Windows apps for store in TypeScript. What happened to that?
- fassssst 3y agoNo, WinUI 3 supports C# and C++. You can use it with TypeScript indirectly via React Native.
- giantg2 3y agoI have no real experience. I came across this a while ago, but never got around to implementing the project I was looking at using this for. https://learn.microsoft.com/en-us/power-apps/powerapps-overview https://learn.microsoft.com/en-us/power-apps/powerapps-overv...
- fuzztester 3y ago>There should be one obvious recommended way to build new apps, and all the other docs should be moved to a separate section. Yeah. Unfortunately, Windows is not Python. Even Python is not Python these days. $ python >import this https://en.m.wikipedia.org/wiki/Zen_of_Python https://en.m.wikipedia.org/wiki/Zen_of_Python