Why WPF for LOB applications?

Published on October 29, 2007

Glenn Block announces some details on P&P's plans for the new WPF Composite Client. In general this is great news.  Unfortunately it comes one day after I bitched to him about how P&P were neglecting WPF based smart clients :-)

What specifically I want to comment on is the following quotes

Win Forms is the recommended breadth solution for LOB application development for the foreseeable future

I see so many developers moving to WPF  for no better reason than that it is the new thing.  They are unable to articulate a business need.

Here are my reasons why we are migrating from a WinForms app to a WPF application:

  • Scaling the UI.  Since the rise in popularity of LCD monitors, we have seen a huge number of problems relating to screen resolution.  Users who don't know better set their LCD's to non-native resolutions and get fuzzy displays.  Some use 17" monitors at 1280 x 1024 and sit the monitor on the front edge of the desk so that they can see it.  Some actually try and change the resolution to 120% and then find half of their applications don't resize properly!  The sales value of an application that a 60 year old company president can actually read is invaluable.
  • Themes and styles.  Our users don't really care too much about skinning their ERP application, but it does need to look good and it should be consistent.  Stock Winforms controls look like crap and once you start using third party toolkits you get to choose from a whole array of styles: Office 2003, Office 2007, Visual Studio 2005, ad nauseam. Applying those styles consistently across an entire application is a major pain.
  • Maybe I'm just not very talented but I think handling CTRL-C and CTRL-V is just way harder than it needs to be in WinForms.  WPF seems to have the capability to handle this stuff properly.
  • Databinding - .Net 1.1 was horrible.  .Net 2.0 was just about usable in most scenarios and WPF seems to have taken it to a level that I probably will not write my own binder.
  • Design time experience -  Expression Blend is an incredible product for a V1.  It is rock solid in comparison to the WinForms Designer in VS2005.  No more white screen of death!
  • Run time performance.  My informal performance comparisons have shown a significantly better experience with displaying WPF controls over Winforms controls.  Try running the WPF sample from the SCSF May 2007.  When you resize the window, the shaded graphical treeview based org chart, with reflections, scales smoothly and the five Winforms textboxes flicker like a 1920's movie.
  • The problem with WinForms was that as soon as you wanted any capability beyond the standard controls you had to commit to a third party toolkit.  And because it is not really realistic to pick and choose controls from different toolkits, you sort of get bound to the future of that toolkit.  WPF makes it realistic for mere mortals to make changes to the behaviour and appearance of standard controls.

I have to agree with Glenn's sentiment that moving to WPF will not be easy.  It is not something that can be easily "migrated".  I am glad that Microsoft are not pushing this technology down our throats and are advising caution.  However, I don't believe that WinForms has any more value than providing a stopgap until we learn how to use WPF properly.