Telerik blogs

Creating a desktop application and need to decide between the long-time reliable WPF and the up-and-coming cross-platform .NET MAUI? This post will help you explore the features that matter.

What technology to use is a question that should be considered before starting any new application. It’s even more relevant nowadays when starting a new desktop app, as .NET offers several solutions for a .NET developer to create such. In this post, we will focus on WPF and .NET MAUI and how to choose between them.

We will consider the following criteria:

  • Targeted OS
  • Future plans for the application
  • Developer background
  • Customization ability
  • AI capabilities
  • Deployment options
  • State of the framework

Targeted OS

This is perhaps the first thing to consider when you have to make such a decision, as it is one of the major differences between the two frameworks.

Windows Presentation Foundation (WPF) is a UI framework for Windows-based desktop applications. While WPF is a Windows-only framework, .NET Multi-platform App UI (.NET MAUI) is designed to be cross-platform and target Windows, macOS and mobile devices working with iOS and Android.

So if you need to target both macOS and Windows for your desktop app and reach more end users, .NET MAUI gives you this.

On the other hand, if you want to target Windows only, WPF is designed exactly for this job. WPF is also the choice if you need to target versions of Windows older than Windows 10.

Future Plans for the Application

If your answer to the previous question is yes, your current goal is Windows only—stop and think again about future plans. Take into consideration whether the business need will push you to add a mobile version soon.

In this case, .NET MAUI is a viable solution as it wins here with source code reusability. Developers can reuse code and easily update apps across different platforms.

Background

When creating a new desktop application and choosing the right toolset and framework, it is important to have the background and learning curve in mind.

If you are familiar with WinForms or have experience with web development and do not have experience with any XAML technology, .NET MAUI may seem more attainable for you with the abilities of CSS, dependency injection and others. On the other side, .NET MAUI does not offer Visual Studio Designer, typical for other .NET frameworks like WinForms, ASP.NET or WPF.

If you are familiar with WinUI or Xamarin, note that the XAML language is almost the same for .NET MAUI and learning it will be straightforward. .NET MAUI XAML is actually the 2009 XAML Specification.

However, if your experience is with Silverlight XAML, which follows 2006 XAML Specification, you will have no issue with WPF, but you will meet some differences with .NET MAUI. I have listed several of these differences in another .NET MAUI vs. WPF post.

Styling and Customization Ability

Customized .NET MAUI app and customized WPF app

A good-looking UI is very important for any application, right? 😊

The good news is that both frameworks offer a lot of possibilities to achieve this, such as Implicit, Explicit,Global Styling and Theming.

The image above illustrates how a style can be applied to change the default look of a button in both frameworks. (Find the code for any of the platforms in the specific section.)

WPF

Style settings in xaml for WPF

Button settings in XAML for WPF

One major difference between the two frameworks is the default look on Windows. While WPF is expired from older versions of Windows OS, .NET MAUI UI creates a WinUI app when targeting Windows. This means that your .NET MAUI app will provide the same user experience on Windows as Windows 11 fluent apps.

Of course, both can be customized. My personal vote here goes for WPF as I find the approach of customization simpler—you rely on XAML. On the other hand, .NET MAUI offers several approaches. This is powerful but may add an additional layer of complexity.

WPF MVVM patterns offer clear separation between the UI (the View), the application logic (the ViewModel) and the root data (the Model).

On top of that, Progress Telerik UI for WPF also offers more than 20 ready-to-use themes that you can use directly or personalize with Telerik Color Generator.

Another important thing to notice is that WPF offers Visual Studio drag-drop designer, while such is not available for .NET MAUI.

.NET MAUI

.NET MAUI UI offers a native look and feel by default—Windows 11 styling on Windows. The UI can be also customized in several ways:

  • Using XAML
  • Using CSS, although it’s not possible to fully style a .NET MAUI app using CSS; however, XAML styles can be used to supplement CSS
  • Using Handlers (read more here: Xamarin Renderers to .NET MAUI Handlers)

The XAML code to style a button, for example, looks like this:

Style settings in XAML for maui

button settings in xaml for maui

One more thing to notice is the Dark and Light support and the skinning mechanism that the platform offers. Telerik UI for .NET MAUI also has theming support on their roadmap.

AI Capabilities

Both platforms, as part of .NET family, can have integration with ML.NET when AI features like image recognition, text classification and others are needed.

Telerik UI also offers Conversational UI and is planning a AI Prompt component for both platforms to give one more tool to .NET devs for building modern apps.

Deployment Options

WPF

WPF has multiple deployment options, including:

  • XCopy deployment.
  • Windows Installer deployment to produce exe, msi or msix. You can also deploy the application on the Microsoft Store once you package it as MSIX.
  • ClickOnce deployment, which enables web-style application deployment for non-web applications. (Learn more.)

.NET MAUI

.NET MAUI apps are configured through a single-project system for managing features across platforms, including settings for deployment per platform. For Windows, we can rely on two options—an MSIX app package (known as a packaged app) or creating an executable file (known as an unpackaged app).

State of the Framework

WPF

WPF Toolbox list

Microsoft developed WPF in 2006 and it remains an essential part of the .NET Framework. So it is very mature and has a lot of resources, articles and courses available.

Tooling is also complete with Hot Reload support, VS Designer, Microsoft UI Automation support and a rich UI toolbox.

The Telerik UI suite also adds 160+ components that save time when you need complex UI, like Scheduling, DataGrid or Charts. You can find a full list of components here.

Microsoft and Telerik are still adding functionality to keep WPF up to date with the latest .NET capabilities. One of the interesting things in Microsoft’s roadmap is Windows 11 theming, while Telerik UI will add new components like an AI prompt.

.NET MAUI

.NET MAUI toolbox list

.NET MAUI is a 3-year-old framework and the desktop features are still being developed. However, they are one of the main goals of Microsoft as well as improving the tooling. See more details in the .NET MAUI roadmap here.

Some of the .NET MAUI desktop capabilities added recently are:

  • Multi-windows support
  • Context Menu
  • Tooltip
  • Menu
  • Pointer gestures

On top of that, Telerik UI for .NET MAUI is also another tool that you can rely on to build powerful desktop applications with 60+ components, AI and theming capabilities planned.

Conclusion

It is great that nowadays .NET developers have more than one stable solution for building desktop applications. If you have already made your choice, you can share it in the comments.

And no matter what your choice, Telerik UI DevCraft is here to support you with both Telerik UI for WPF and Telerik UI for .NET MAUI including all kinds of desktop components, a free trial, tons of resources, demos and forums where you can discuss any technology challenges you may have.

Try DevCraft


Rossitza-Fakalieva
About the Author

Rossitza Fakalieva

Rossitza Fakalieva is a Technical Manager, Microsoft MVP in Developer Technologies and a Director of the Bulgarian chapter of the global Women Who Code organization. She previously worked on the Telerik engineering team and defines herself as .NET enthusiast. She loves to empower others to grow in their career and in the tech field—by teaching, by delivering courses and presentations, and as part of her daily job.

Related Posts

Comments

Comments are disabled in preview mode.