Recently, on one of the mailing lists I read, someone wrote “With WPF, I see development and training time being bumped up (at least) a notch or two for no reason other than having a flasher UI.” I thought it worth sharing my response …
I recently [May 2008] had my first experience with WPF development, working on a conventional CRUD database application.
Nothing I was doing was in any way flashy or glossy or slick – just a normal application to capture information and save it to a database.
I found WPF a real delight to work with.
Because the programming API is consistent across all the controls. I found this really huge – something fundamental about WPF that hasn’t been trumpeted anywhere near enough.
For example, it is pretty common to have a dialog that requires certain elements to be locked (maybe the user has no rights to modify the field, or maybe business rules constrain when the field may be altered).
In Windows.Forms, only the TextBox has a ReadOnly property. So, any other field that needed to be locked has to be disabled (or, worse, I had to simulate R/O by preventing changes to a live control), jumping through hoops to end up with a look and feel that wasn’t quite right.
WPF on the other hand, everything [well, everything I checked ;-) ] had a ReadOnly property, and the “look and feel” was consistent.