(Adding this here as @jeromelaban challenged me. 😅)
ALL THE WPF!!! ALL THE WPF RIGHT NOW!!!
WPF had the heart, soul, and power of MSFT developers while UWP... not so much.
Truly, here's one example:
https://github.com/microsoft/xaml-standard/issues/20
And, really, going through all the comments of that (now defunct) repo you can read issue after issue for all the asks that are really based in WPF (and not UWP).
In fact, a simple search of "WPF" shows that half the issues found in that repository mention it:
The ideal is to have the power and expressiveness of WPF with the performance-mindedness of UWP/.NET Core.
Of course, the biggest nugget of power in WPF was its markup extensions. Many imiators of WPF's Xaml have attempted to pull it off, but none have quite yet achieved it as designed. It's almost becoming a whiteboard/developer IQ test at this point. 🙄
WPF's Markup Extensions had access to the application's IServiceLocator which provided access to all the document's services and components right there in the markup extension. You had cool elements such as the IAmbientProvider, NavigationService, or AnyKindOfService you would like. 😁
It's basically punching a hole right in the middle of XML and making it an extension of your codebase RIGHT THERE IN THE DOCUMENT.
Very powerful concept, yet to be accurately duplicated -- except by me, of course. 😏
MarkupExtensions are currently a captured issue in WinUI but based on the lack of activity on the issue, you can tell there is already a bit of a struggle to adequately and accurately implement this sucker.
https://github.com/microsoft/microsoft-ui-xaml/issues/741
Maybe Uno will be different? :)
I half-heartedly added WebSocket support above like Blazor has... that would be cool, too. 😁
I arrest my case. 😆
https://twitter.com/UnoPlatform/status/1225864756701081601

“What is your dream UI syntax (language + pattern) for app dev? Regardless if it's #WinUIEverywhere, #XamarinForms or any other UI library. #devdiscuss Please RT to get sizeable sampling 🙏”
Thanks for opening this issue! Yes, markup extensions are indeed very much needed, this is going to add some weight to the discussion.
I thought markup extensions were already in? At least UWP's version of them. I saw a lot of commits about this a few months ago.
https://platform.uno/blog/dark-mode-and-markupextensions-now-available-in-uno-platform/
Anyway, UWP should have been based on WPF and we would be in a much better place. UWP did make some really good additions such as x:Bind and easier built-in transalation, etc. I'm not sure it makes any sense to adopt WPF support in Uno at this point. Don't get me wrong, I understand where you are coming from. Just WPF was designed for desktop not mobile and it shows in little areas all over the place.
Uno Platform
In the past few weeks we’ve had a couple big additions to Uno Platform which you should be aware of as your Uno development just got easier – and cooler. Dark Mode by @mzikmunddev You have probably heard of ‘dark mode’ – a UI option which displays light text on a dark background, as opposed to the default dark text on a light background. The reduced brightness of the screen has brought many benefits – such as courtesy in situations when a screen’s bright light creates a distraction (i.e. movie theatres). Also, users report it reduces strain on their eyes when using the ‘dark mode’. Finally, ‘dark mode’ has great advantages for the battery lifetime of your devices. Now, Uno Platform supports ‘dark mode’ as well! Thanks to the introduction of {ThemeResource} markup extension by Uno Platform core team member, Carl de Billy, you can add the Dark and High Contrast themes and automatic OS dark/light theme detection capability when the Application.RequestedTheme is not specified. The ‘dark mode’ works on iOS, Android, Windows and WebAssembly (WASM). Your app can now switch to dark theme automatically, without any additional code! The user will be able to switch between light …
@robloo In most cases, UWP and WPF are very close, the differences are in some specific areas, such as more advanced markup extensions, triggers, relative sources or multi-bindings.
For markup extensions, the UWP feature set is still a bit behind, particularly with regards to IProvideValueTarget.
In the case of relative source, the implementation is pretty straightforward, and I'm pretty confident once WinUI is open source, that kind of additions will happen. We'll add those in Uno as those start to appear.
@jeromelaban Ok, thanks for the clarification! I realize now you are talking about making UWP/Uno markup extensions as powerful as WPF. (As opposed to just adding the UWP markup extensions to Uno which was already done a few months ago -- awesome!).
FWIW OpenSilver proving that it is possible to provide proper MarkupExtensions:
GitHub
This repository contains the source of both OpenSilver and CSHTML5. More information is available at: www.opensilver.net and www.cshtml5.com - cshtml5/CSHTML5
(Adding this here as @jeromelaban challenged me. 😅)
What would you like to be added:
ALL THE WPF!!! ALL THE WPF RIGHT NOW!!!
ALL THE UWP!!! ALL THE UWP RIGHT NOW!!!
Because UWP is all WPF except in some excelent but minor details (like better Markup Extensions implementation in WPF).
And because WPF is not ALL UWP.
UWP is as powerful as WPF for traditional WIMP desktop applications, while WPF is not as powerful for applications with new features that customers are starting to ask: not only on mobile devices but also on desktop and office environments.
WPF's treatment of new mobile stuf is only a patch that does not harmonize with its essence, and becomes a real nightmare of frequent hangups when used in touch devices (google for WPF issues with touch devices, for example, you'll find many and some of mine).
As for new features in new devices, WPF's patch only simulates WIMP behavior on touch devices: if you want to take advantage of features like gestures, you have to program it yourself with great difficulty.
In addition, UWP has a long list of improvements like x:Bind that allow bindings to functions, x:Load, VisualState Setters, adaptive interfaces, etc., that have not yet been incorporated into WPF.
The problem with UWP is that it was too tied to the success of Windows Phone and the Windows Store at a time when it was much more profitable to program for Android or iOS. I understand how frightening it is because many people confuse this commercial failure with a technical failure and that is not the case: give UWP a chance, and you'll find that it takes little time to master the basics, because it's almost identical to WPF with many improvments and few absences. At the same time you will be giving a chance to WinUI and the UNO Platform :)
Regarding Markup Extensions on platform UNO, I also miss having access to the root object as in WPF. But I believe UNO Platform should keep the UWP standard until we definitely know how WinUI will implement them.
PD. Sorry for my bad english.
Most helpful comment
@jeromelaban Ok, thanks for the clarification! I realize now you are talking about making UWP/Uno markup extensions as powerful as WPF. (As opposed to just adding the UWP markup extensions to Uno which was already done a few months ago -- awesome!).