Are desktop developers ignoring WPF at their peril?
So is 2010 the year when WPF finally starts to make the big-time? Having spent some time now working with the new desktop framework, I find it unlikely that I will find a compelling enough reason to choose Windows Forms for a desktop UI technology choice again.
So what’s holding it (WPF) back? I have read and listened to a lot of stuff online suggesting it’s so complex that it’s turning people off the idea. So what about the issue of so called complexity? Of all the ‘W’ technology stacks to come out from Microsoft, I count WCF as the most complex and there certainly hasn’t been any overwhelming discussion about how that complexity has raised the barrier of entry, to the point where it’s slowed adoption. There seems to be an consistent message coming from the scribes, with constant reference to a new division of labour, shared by the trusty old developer and the so called ‘turtle necks’ (designers), a term that seems to be sticking and one I’m sure designers find amusing a pejorative one. And lets not forget the newest addition to the vernacular, the ‘Devigner’! There seems to be a lot of opinion and chatter that holds the opinion that UI design is no longer within our grasp as developers, unless we have enough right brain activity going on that we might be precluded from committing outrageous sins of the desktop.
So here’s my take – I have written a few UI’s now in XAML based technology (SL and WPF) and I do not count myself as a designer or devigner. Perhaps I have some artistic flair (yeah I’m an arty type) in a general sense, but when it comes to graphics, I am pure stick figures all the way. I have been known to classify myself in the past as the patron saint of the graphically challenged! And yet I have now developed a couple of XAML User Interfaces where the User’s and my peers considered them to be ‘attractive’, self describing, efficient, simple to use, etc. Oh, and I still managed to do this all with my trusty old supervising controller in tow.
So why didn’t I cower in corner somewhere at the prospect of building a XAML UI? Well it’s not in my nature for starters, but secondly I wasn’t prepared to believe the hype. Sure I did quite a bit of prototyping and experimentation but in the wash up, learning is doing and each time I do it I get better at it – sound familiar? By the way, I don’t think I was doing anything graphically amazing per`se, but some nice simple animations will go a long way even from the king of the stick men.
Here is what I advise: don’t be afraid of the technology. If you ever developed desktop applications in the past and considered yourself capable in designing a good user experience, then don’t buy into the scare mongering and be prepared to jump off the cliff.
I don’t doubt that there will be some small percentage of software teams that will bring on a dedicated designer(s) but I would hate to think that the small development teams out there will be put off venturing out into the brave new world. Yes there is a lot of complexity (particularly in WPF) and the learning curve is certainly not shallow by any means, but nothing good in life is easy.
6 Comments so far
Leave a reply









Just because you can’t believe it doesn’t make it so. If you are talking to developers then know your audience. Even if WCF required you to manually decrypt some secret code every time you used it, it would still be easier. It is easier for a developer to figure out how to build a rocket than fly to the moon than use go th eWPF route, why? because WPF requires to much graphics knowledge. You can’t throw together something in WPF. You need to break open Expression and design buttons, boxes, etc for anything to look decent.
So no, developers don’t have trouble with WPF they have trouble with Expression studio. Sure there are those who are great at coding and designing but the best presentation i have seen comes for a UI guy supplying graphics to a dev guy.
Plus on top of that WCF leverages existing thought. WPF doesn’t have a label. (read between the lines)
[Reply]
Jonathan
A good designer cannot be replaced but that holds true for any presentation technology, however I have seen enough successful WPF smart client applications put together by NON designers to suggest that a designer is not a requirement for success. Also, I cant conceive that WPF was designed on the gamble that Microsoft customers would feel compelled to ante up for the cost of a designer every time they wanted to develop for the desktop.
WCF is easier to get started with and build simple messaging systems - no question. On the flip side, there have been plenty of complex messaging systems I have seen and heard of that got into trouble through a lack of understanding when it comes to WCF. Messaging systems that required more asynchronous stateful designs, leveraging pub-sub with long running workflow, require solid architecture ‘thought’ which is not built into WCF by default, it’s just an enabling technology.
At any rate the core of my assertion here was not about WCF vs. WPF and which one is more complex, it was a simple message of encouragement to developers not to fear WPF just because it has a steep learning curve.
[Reply]
Having done several applications in WPF now, I have to agree that the learning curve although steep is not insurmountable. For LOB applications which I would assume most of us are developing, I almost never see a designer involved (which may explain some really bad Winforms applications :)). However, it is certainly easier to build a good looking WPF application than a Winforms one. This is without going into Blend to restyle every control. After all businesses are not looking for applications that have a radically different look and feel from standard Windows or their current apps.
I find a few useful tips here are;
1. This is not Winforms - learn something new, it won’t kill you.
2. Don’t use the designer in Visual Studio - write the XAML directly. The intellisense is great. If you’ve written any amount of HTML this is not a difficult transition. If you haven’t written any HTML, well XAML will get you away from drag-and-drop coding.
3. Databinding’s confusing - take it slowly and check the Output window (it’ll help). Don’t forget, you don’t *have* to use databinding to use WPF.
4. Use learning WPF as a springboard to writing better applications. Get rid of all those enormous methods in your click events. Think about Separation of Concerns. Look at MVVM, MVP, MVC, etc.
BTW, I started my developer career 30 years ago writing COBOL and Assembler programs on IBM mainframes - learning something new (again!) is exciting. WPF is here - embrace it. So it’ll be replaced by something else in a few years - who cares - it’s the journey that’s fun!
[Reply]
I think blend being so bad is keeping WPF back. There are so many great ways to do things that blend just doesnt understand. So many designers are afraid of the angle brackets and dont want to dig into the markup.
[Reply]
Richard
Agree with everything you say here. I was glad to see you listed MVP and MVC along with MVVM. MVVM seems to becoming the defacto standard and default choice (not mine) and I have heard it suggested that even having MVVM as the defacto standard is better than nothing. Jeremy Miller has an excellent series posts called ‘Build your own Cab’ which discusses some of the many options with presentation patterns.
[Reply]
Blend and Visual Studio they kind of go hand in hand. Simple things that Blend does well Visual Studio sucks at and vice verse.
That being said I think its a case of developers being lazy to get out out of the comfort zone and learn something new.
Just my TC
[Reply]