Well! Time for me to follow up on this rambling, confusing, mess of a thread.

Rather than diving into WinUI 3, I'm going to stick with WPF for right now. I also won't really be using XAML Islands. Moving forward, I'll probably make the jump over to Avalonia and .NET Maui. https://twitter.com/JaykeBirdCoding/status/1327129245806698497
WinUI 3, unlike what I previously thought, is essentially UWP under a new name. Just like how Xamarin Forms is being upgraded and renamed to .NET Maui, it's a similar thing here. UWP is no more, but WinUI 3 is born from its ashes, open-source and decoupled from Windows updates.
There's two versions of WinUI 3: WinUI 3 on UWP, and WinUI 3 on Desktop.

WinUI 3 on UWP simply seems to be the upgrade path for current UWP apps/developers. WinUI 3 on Desktop is the entire UWP/WinUI library being opened up to Win32 and C++ apps and developers.
I'm sure WinUI on UWP will still be subject to most of the same limitations UWP itself has (no direct file access, for example). No idea if WinUI will support UWP's other platforms though, like HoloLens or Xbox. I would guess not though, giving UWP one last reason to still exist.
With WinUI 3, though, UWP itself is going into maintenance mode, just like the .NET Framework. Unless you're making a cross-platform app (Windows + Xbox, or Windows + HoloLens, for example), there's going to be essentially no reason to choose UWP over WinUI (or WPF on .NET 5).
The exciting thing, I think, for WinUI is that it should provide C++ desktop developers a new modern, powerful Windows UI platform (without being limited to UWP's sandbox). Previously, on Windows, you'd have to use Win32 directly (or via MFC or something, I dunno).
Or, you could use C++/CLI to get access to WinForms/WPF, but that brings its own downsides and a bit of a learning curve with additional syntax and such.

(Obviously, there's other UI platforms out there too, like Qt or GTK, but I'm talking about only what Microsoft offers here.)
For me, as a developer who currently uses WPF as my library of choice... I don't have much to get excited about for WinUI 3.

Yes, WinUI 3 means I have access to all the WinUI/UWP controls, all using Windows 10's modern Fluent UI design.

Buuuuuuut...
1. WinUI 3 is missing a number of features at launch, including a visual designer and media controls. I know a designer isn't essential, but part of my workflow is being able to type out some UI and seeing the result right there, so I can adjust as I go.
2. In either .NET Core 3.1 or .NET 5, I can already access the Windows 10 APIs in my WPF apps that I'd also get access to via WinUI. In fact .NET 5 makes it pretty darn simple.

This also means I'd never adopt UWP, as the Windows 10 APIs was the only thing that tempted me before.
3. WinUI 3 doesn't support XAML Islands (at launch). Meaning I couldn't use any of the WinUI/UWP controls in my WPF apps anyway.

XAML Islands is/was a way to access UWP controls and features in WinForms/WPF apps, but I'll discuss my issues with it a bit later on.
4. Not really many WinUI 2.5/UWP controls interest me to want to jump ship or put up with XAML Islands. Any basic/essential ones not already in WPF, I can re-create or already did. And most of the others I have no desire to (they're mobile UI designs or just unnecessary IMO).
There are a few WinUI/UWP controls I'll miss out on though, like the nice InkCanvas/InkToolbar controls to easily add ink/pen support, or the WinUI version of the TabControl which looks very slick. I'm building my own TabControl though, and other WPF inking solutions exist.
So that's my situation with that. WinUI 3 sounds nice, but I don't really have a reason or desire to use it. Especially considering I'm probably going to jump ship soon to .NET Maui or Avalonia anyway, both of which are multi-platform, making all of this a moot point.
I also talked about XAML Islands in my previous thread (and mentioned them above here). I tested it out again recently, but it wasn't a great time. See my thread here: https://twitter.com/JaykeBirdCoding/status/1352102887069986817
However, there's another thing on my mind both before and since that thread, and which I only very lightly touched upon there. But basically put, I think I'm getting ready to jump off WPF as well.
Microsoft open-sourced WPF and made it a part of .NET Core 3, which was an awesome move. It's great to see the UI platform I use be put out in the open so myself and others can see its quirks and learn from it. I was looking forward to this being a new era for WPF.
But it hasn't really been that way. Since .NET Core 3, there hasn't been much movement to bring the platform forward with new features, or even some basic niceties. Meanwhile, WinForms - open-sourced at the same time - has gotten new features/enhancements and seems pretty active.
First, Microsoft said the WPF team was too small and didn't have the tools to deal with it all. Then they said they're focused on making bug fixes for .NET 5. Now .NET 5 is out, but they're still just doing tweaks or bug fixes.
It isn't a lack of the wider community trying either. PRs exist, there's been comments and requests and more, but they just end up unresponded to or debated over. Granted, I speak as someone who is doesn't truly consider myself a part of that community, but that is how it looks.
Meanwhile, there's other platforms that use the same XAML technology as WPF (and UWP/WinUI). Avalonia is a cross-platform (Windows/Mac/Linux) solution out *right now*, and I'm liking how it looks. Their "flavor" of XAML includes changes/additions that make sense & make it easier.
Also, .NET Maui (the rebranded Xamarin Forms) is coming up, another cross-platform solution (Android/iOS/Windows/Mac/Linux?/HTML5?). It's not here yet though, hopefully it will be later in 2021, we'll have to see. I wonder if a lot of WPF devs are going to jump over to this?
Either way, both solutions are advancing XAML and both are cross-platform as well! So using those is the direction I'm probably going to go in.

Once Avalonia 0.10 comes out, I want to dive right into it and port my UI library over to it. Also excited to try .NET Maui too.
(Also, like I said in the previous thread, my support plan moving forward is just Windows 10, and not support 7 and 8.1 on all new projects. I'm excited to use the Windows 10 APIs in my .NET apps, and like I said back then: Windows 10's been out since 2015, all new PCs have it.)
So this is my thoughts more organized and more informed, and this is what the future looks like to me.

Later in 2021, I'm going to start drifting away from WPF (and not touching WinUI 3), and I'll instead start with Avalonia, .NET Maui, and dropping Windows 7/8.1 support.
You can follow @JaykeBirdCoding.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.