Future of WPF?

stevensrmiller

New member
Joined
Nov 29, 2017
Messages
3
Location
Mid-Atlantic coast, USA
Programming Experience
10+
Hi, I'm new here so I hope this isn't an off-topic or long-answered question: What's the future of WPF? I just made the (rather agonizing) decision to switch my development language from Java to C#. So far, I am very happy with this move. One of the consequences was having to learn a new UI instead of Swing. WPF looks very cool to me, if somewhat baroque. I love that it is vector-based, not raster, so it can scale so well. But I keep reading that it is an "old technology," with the implication that it is, or soon will be, obsolete.

What's its future and, if it doesn't have (much of) one, what else do people use?

Thanks, and nice to be here!
 
WPF is an excellent technology and should have been much more popular. The biggest issue was that Windows Forms is good enough for most people. Microsoft wanted developers to migrate en masse from Windows Forms to WPF but it never happened. A lot of VB.NET courses can barely drag themselves out of VB6 so they were never going to start teaching WPF to beginners. Most experienced developers find WinForms good enough for what they want to do that the effort to learn WPF, which is quite different, isn't really justified. Now that Microsoft want everyone to build UWP apps for Windows, they're not pushing WPF so many are even less likely to migrate.

I don't see Microsoft making significant improvements to WPF in the future but that doesn't mean that they won't make any and I don't see them dropping support for a good long while. Also, because they are both XAML-based, any investment in learning WPF is not wasted if you do end moving to UWP.
 
Also, while Microsoft has announced no plans to push WPF further into the now-present world of .NET Core, a number of open source projects have adopted the WPF mentality and way of doing things, as well as most of the declaratory data binding syntax. One of them is AvaloniaUI, which provides a cross-platform (Windows, Linux, and OSX) UI layer for .NET Core 2.0 console applications, with full IDE support. I have been using it for a while on a new project I am working on, and while Avalonia is still in beta and not really 100% ready for commercial deployment, what is there works well.

So what you learn from WPF (XAML, MVVM, etc...) will certainly not be lost, and you can rest easy knowing that you have options in the future even if Microsoft lets it fall into disrepair. XAML and MVVM is a fantastic way of working with data in .NET, and it is much, much better than WinForms for most things, it's just that there is a learning curve to it that some people and companies just do not see the value in, already having an established pool of experience with WinForms. As for UWP it is already in a sad state. There isn't much reason to go with UWP for a new application, seeing as most people don't even know there is a Windows store, Microsoft has no presence on the mobile market, and UWP also has a learning curve that is just as steep as WPF. Add to that that UWP has a ton of complications regarding deployment, and it's a clear uphill effort for Microsoft to get it adopted. In comparison, a .NET Core 2.0 console application with AvaloniaUI deploys by just sticking all files on a folder and invoking dotnet to start the app on the platform of your choice.
 
Last edited:
Back
Top Bottom