Is WPF really RAD?

Our flagship application is a hybrid of VB 6.0, ATL and straight C++ and we are well into the development of a new version that will have many UI enhancements. Since it is a major realease and we have some time available we decided to use WPF. In a way it will help us future proof the UI by synchronizing with Microsoft’s own direction. This is all good but after spending nearly all day trying to make the WPF’s ListView match the behaviour of a WinForms or VB 6.0 ListView with CheckBoxes I am starting to have doubts about the whole thing. I can’t bring myself to ditch WPF completely as some of the features are pure goodness but there are two areas that are letting it down big time. First is the absence of all the controls available in WinForms and second is the performance and usability of the WPF designer.

Build your own?

Looking through the newsgroups it seems that the standard response to my first point is that it is very easy to put together complex controls with WPF. So if you need, like I do, a ListView with checkboxes then just build it. This does not fly because replicating all the behaviours that are expected is not trivial. I found a very good post that does just what I need here. This blog entry is very well put together and the code works. I managed to add a fully data-bound ListBox with CheckBox support in a few minutes. But then my ListBox needs to support the checking and un-checking of multiple items simultaneously. No luck. I will have to do it myself. Probably not very difficult even with the data binding code but contrast this with a simple drag and drop of a control onto the WinForms design surface and some bog standard .NET code. The latter is a much better development experience and a lot less code for me to debug and test. The solution is to host the WinForms but I find myself reverting to this solution too frequently with all the problems that this brings.

Slow going

The second problem is the WPF designer and to some extent Visual Studio. I have two main development PCs, one is an x86 running XP and the other an x64 running Vista x64. In both of them Visual Studio has a very decent performance except in it comes to the WPF designer. There are frequent hold ups and even a crash every now and then. It is usable but barely. Ten years after VB 6.0’s “death” Visual Studio designers aren’t still as responsive and stable as they were then. I don’t know what to make of this. The solution has been to drop the designer and use XAML which is very inefficient since I have to compile the application every time I need to see the resulting UI.

I don’t want this post to be gratuitous bashing but I am struggling and so are many other developers out there. I hope this helps the Visual Studio/WPF teams understand the real problems we are facing and maybe get some relief in the form of a Service Pack.

3 Responses to “Is WPF really RAD?”


  1. 1 Chris Smith January 16, 2009 at 1:38 pm

    Hi Jose

    I spent 9 months recently doing data-driven WPF and we ditched the designer after about a month. As you say, we just used pure XAML and ran the app every time we wanted to see the effect.

    One of the problems is that if you’re using M-V-VM or a similar framework then you are writing DataTemplate’s for particular types and there’s no way of visualising this.

    Still, the power of something like M-V-VM is worth the pain at the moment in my opinion. Put an object in a ContentControl and watch the fun!

  2. 2 codefornothing January 16, 2009 at 4:55 pm

    Hi Chris,

    Yes, I guess that hand crafted XAML is the only option. I am also having a problem with Visual Studio which every now and then simply vanishes when I select Properties for a project. I haven’t been able to pin point the actions that lead to the problem but I think it is related with the WPF designer Properties Window. The solution is to delete the .suo file.

    I am using MVP instead of the M-V-VM but my Presenter is bound to the window context so I guess the difference is in the name and not in the concept. I am planning to blog on that at some point in the future.

  3. 3 arconaut January 17, 2009 at 3:41 pm

    Hey there!
    I think everyone who switches to WPF after WinForms or some other platforms should be ready to switch their mind to a new way of developing UI. It might be a little easier, although, if you come from web-development. I’m developing UI using WPF for more than 1.5 years now, and I gotta say I’ve had similar issues at first – lack of controls (this is still partly actual), lack of designer support etc. But now I’m really like a fish in water, everything seems simple and beautiful. I write UI almost completely in XAML, and it doesn’t take a lot of time if you do it right. But still I use Expression Blend quite often to experiment with brushes, or generate animation code.
    Sure, WPF still seems to have a lot of problems, but there are so many good things in it, so it’s worth it :)


Leave a Reply