At work, we currently use C#, WinForms + DevExpress with skinning (Visual Studio 2013, .NET 4.5 in near future). Our colleges from abroad don't like this too much for some reason and brought up the idea: "Hey, let's use WPF instead!".

It's up to me to investigate into WPF a bit and give a 10'000 foot overview.

One question came up: Is WPF the way to go for future-proof and shiny applications on Windows? What is the way to go on Windows platform? We will stay by Microsoft products but other suggestions are also welcome.

  • "Our colleges from abroad don't like this too much for some reason" - can you tell us what their objections were? Apr 10 '15 at 8:05
  • They didn't like the DevExpress-part. We use their controls in every application. They are much more powerfull than their WinForm-counterparts but also more complex (sometimes 3:1 in number of properties/methods). We translated it as either laziness, reluctance or someone wanted "WPF" written down in his CV. Apr 10 '15 at 11:09

I personally would strongly recommend taking a look at the wxWidgets library. It has the following features:

  • Cross platform - develop your software on windows and just recompile and test for others such as Mac OS/X, Linux or Unix,
  • Compilers under multiple compilers, including gcc,
  • Native Look & Feel,
  • Has multiple language bindings, so you can use C++, .NET, Perl and Python,
  • Lots of examples.
  • Free, both FLOSS and Libre,
  • Permissive Licence, L-GPG, allows commercial and private use at no charge,
  • Active community - so free support including directly from the developers,
  • Responsive to bug reports,
  • Mature - first release was in 1992 latest, at the time of writing, was yesterday so 22 years on.
  • Abstracts a lot of other, (non-GUI), things to make cross platform code a lot easier.

I'm wondering whether dedicated UI frameworks are a thing of the past and we're going to pure html interfaces. Think using merely a browser control hosted in your winform running your actual user interface, neatly programmed using JavaScript and hooked up to some external handlers for the system interaction.

XAML is close enough to be HTML-like, but sharing astoundingly few aspects of the common paradigm, as if nobody noticed that it is completely redundant. Same goes for WinRT, and we don't need to stop in the Windows world. Even on mobile it would make more sense to use a browser to render the interface, now that they in general have high performance and are standardized.

The possibilities of HTML5, CSS3 and the progress in web-based solutions is way too forward for any desktop GUI system to ever catch up again. Would also work better with the cloud.

Just my 2ct.

  • I don't like the cloud-aspect of this (I'm a bit old fashioned on this aspect - I like to run my application and store my data localy and only localy). But beside that - valid point. There are some examples of this out there. Apr 9 '15 at 12:18

To answer (and so close) my question:

I'm comming from the linux world and I'm somewhat stranded in the windows world. So my prefered selection would be something cross platform (probably Qt as I'm using KDE since ever ;) ). But we do not support non-windows-platforms and most likely never will. Also, the interaction of our applications is very important. So we want to stay on pure microsoft solutions:

Here are the options we see (using only microsoft products):

  • MFC: we still have one application using MFC - everyone hates to maintain it
  • WinForms: somewhat aged but still fully supported. Most of our applications use WinForms. But microsoft seems to push development in another direction.
  • WPF: should be the replacement of WinForms. Nearly everyone is telling you, wou should use WPF instead of winforms. But we have no experience with it and there are some unpleasent rumors.
  • Silverlight: okay.. no real desktop framework but somewhat related - same story
  • Windows RT: After the "great success" of Windows8, we doubt that Windows RT is the solution to pick up at the moment.

I've compared the google-trends of the last four (normalized): google trend comparison

  • blue: silverlight
  • red: winforms
  • yellow: wpf
  • green: winrt

In summary, it isn't easy to pick the right technology at the moment. After some dicussion, we decided to keep on WinForms at the moment and keep an eye on microsoft's plans for windows 10 (written 2014Q4).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.