It was in 2006 that Windows Presentation Foundation (WPF) was released with .NET framework 3.0. Over the years it got improved and it is still now in the market in 2019. With more than a decade passed by, it now raises a question about being relevant in 2019 and is a good choice or not.

What is WPF?

WPF is a very rich UI framework which is used by developers to build Windows desktop applications. It comes with built-in support for graphics, resources, data binding and much other. It makes use of Extensible Markup Language to define views and it does it in a declarative way.

WPF is Open Source

Microsoft open-sourced WPF, WinForms and WinUI on the same day it planned to announce the Preview 1 of .NET Core 3.0. Open source is nothing but an arrangement where the community can contribute towards the technology in the form of bug fixes and features. Microsoft has proved to be on the side of open source with this approach and by open sourcing WPF it has indicated that it cares about its future. The existing WPF implementation to GitHub does not have any sources published from Microsoft but it has reacted to a repository there in which is named as WPF for .NET Core. This clearly means that the codebase in there, targets the .NET Core platform.

Microsoft Roadmap For 2019

The Microsoft has come up with a roadmap for WPF in 2019 and it is stating equality in terms of performance and function compared to .NET Framework and the goals for the same are set with the release of .NET Code 3.0. The roadmap has plans which focus on work to be done so as to ensure all the components are made available. For the same, they are working on to validate the pull requests from the community and merge it.

The Impact of .NET Core

The Microsoft new release of .NET Core 3.0 is focused on adding WPF support to the new generation of .NET. This update will offer you an opportunity where you can have your application with a specific version of the .NET framework instead of relying on the version which is present on the devices of your customers.

Now this is a big thing coming from Microsoft where it is making a move from WPF to .NET Core. This move clearly explains that Microsoft sees a future in WPF and considers it as a UI framework for the .NET platform. Microsoft has really invested a lot in WPF by making it open source and making it work on .NET Core.

One of the clear benefits of this move is that if you want to build a WPF application, you no longer have to stay within the .NET framework. This means like the choices backend developers had for frontend technologies since .NET core 1.0, now you have the same for WPF application development.

WPF applications run only on Windows as it makes use of a lot of Windows-specific features. This works the same for WPF applications that work on .NET core platform. As .NET core is better known for cross-platform framework, it is somewhat unintuitive. But if you look at the history of WPF, you will understand that things make sense here.

About The Existing Applications

When it comes to existing applications we have a doubt regarding whether we need to move it to the .NET core or not. It is not necessary rather a choice. As per the suggestion of Microsoft, new projects should be built on the newly formed .NET Core platform. Here the existing legacy apps which are not important for the business and are in the maintenance mode can be kept. The (full) .NET framework will still be made available to the developers to use.

Advantages of .NET Core For Desktop

Your applications will perform well as they run on the newest .NET technology which has been built from the scratch. The .NET Core does not possess some of the legacy things which could not be removed from the (full) .NET framework. This all makes it even more efficient.

By using different .NET Core versions, you can run your applications alongside one another. This way, your application becomes independent of the framework of .NET, which is either installed on your or your customer’s device.

The new features in the Visual Studio which were developed for the applications that are making use of the .NET Core platform, can be accessed this way for your SDKs, tools and new project file format.

Here you can build applications using less efforts and it will eventually save you a lot of time and money. When you are looking for continuous delivery and continuous integration, this especially works well.

Alternatives

There is a community which is creating alternatives for the .NET Core platforms. Some of the alternatives are:

  • Platform Uno
  • Avalonia
  • Blazor
  • Ooui

Conclusion

No doubt WPF is considered still as a relevant and valuable framework which can be used to build .NET application development in 2019. It can be used both for the .NET Framework as well as .NET Core. If you have right developer or team for the same with knowledge of tools, you can take advantage of the situation. If you are planning to make a migration from old to new, just be sure it is worth the efforts. Keep in mind, whether there is a need to go for WPF or not completely depends on the need of the project in hand.