I have been involved with WPF for over a year and a half now. I’ve seen it grow from shaky CTP builds into a great v1 platform. Ask anyone who has worked with WPF in a non-trivial way, and you are bound to hear that it is leaps and bounds better than Windows Forms. The platform is publicly released now and is a truly great technology, but its adoption rate is still quite low. I’ve read numerous reports that WPF is not gaining much traction in the software world yet, and a quick search for open WPF jobs verifies it (no, I’m not looking to change jobs!). Why is WPF not being rapidly adopted? Here are my thoughts on the issue.
Beta? We don’t use no stinkin’ Beta!
Working with WPF currently requires you to use a beta version of Visual Studio, either VS2005 with the “Orcas” extensions or a beta build of VS2008. Most companies don’t want their development staff building products with beta versions of Visual Studio. Even though WPF v1 has been publicly released, the tools for working with it are still in beta. That’s probably the biggest deterrent for most shops. At this point, only AlphaGeeks are willing to install beta builds of VS2008 on their home machine and play with WPF in their free time.
DataGrid? We don’t have no stinkin’ DataGrid!
WPF v1 is missing a lot of the bread and butter support for most line-of-business (LOB) apps. The canonical example is the fact that there is no out-of-the-box DataGrid control. Beyond that, there is no masked editor, no date/time picker, and others. For a lot of people this is a major turnoff. WPF v1 is just not “there yet” as a platform for developing LOB apps, many would say.
Graphic Designers? We don’t have no stinkin’ Graphic Designers!
In my opinion, Microsoft’s marketing team pushed the “designer-developer workflow” aspect of WPF way too much. The whole idea that WPF allows graphic designers and developers to work closely together, with XAML as the common format they share, is not that important to many software shops/IT departments. Many shops don’t have graphic designers, so this whole aspect of WPF is completely unimportant to them. The marketing around WPF makes the platform seem to be important for companies that create highly specialized user interfaces (i.e. Times Reader), but not standard LOB apps. That’s an unfortunate misperception, and couldn’t be further from the truth.
Tomorrow, tomorrow, I’ll love you tomorrow.
Now that I’ve set up all the ducks in a row, let’s blow their little heads off. 🙂
The obvious answer to the Beta problem is simply to wait for VS2008 to be officially released. I predict that once VS2008 hits the market, WPF will start to gain a lot of momentum. As shops start installing the new Visual Studio on their dev machines, and developers start exploring WPF there will be a surge of interest in the platform. People will start considering WPF for their next app. I think that will be the most important catalyst for WPF adoption.
The DataGrid problem has already been solved somewhat. There are third-party WPF grid controls out there today, by companies such as Infragistics and Xceed. In fact Infragistics has also created a masked editor, date/time picker, and other common controls that WPF does not have by default.
I’ve heard rumors that Microsoft is going to develop a DataGridView replacement for WPF, but who knows when/if that hits the street. The more general problem of WPF not being LOB-friendly is the main thrust behind the next release of WPF; which is part of the .NET 3.5 Framework. Since 3.5 will be included in VS2008, the first non-beta version of Visual Studio which natively supports WPF will have all the new LOB-friendliness in it.
Lastly we have the Graphic Designer problem. There is not much that Microsoft can do to remedy the fact that many companies don’t have such people around to make WPF apps look great. However, I think that third-party vendors can save the day here. Basically they have their graphic designers create eye-pleasing themes and then wrap them up in resource dictionaries which can be used by any WPF application. Infragistics already has created what they call “ThemePacks” which allow you to do this. I think this is a great idea!
In conclusion, I think there is still a ways to go before WPF is the de facto UI platform for most .NET shops. Until then, I think it is wise to keep learning about WPF. When there starts to be high demand for WPF developers it will be the people involved with the platform now who will be the highly paid experts. 😉