In a previous post, I was deliberating about whether to elect windows forms or WPF for an application I was writing. In the end I chose to use the products from Component Factory. The proprietor of said company (Philip Wright) has recently elected to construct a disquisition into WPF adoption. I have chosen to go a little further into reasons Philip states as problematical.
I agree whole-heartedly with Phil, it is immediately perspicacious upon opening up the Visual Studio 2008 toolbox, that the controls available are like “Old Mother Hubbard going to the cupboard and finding that it was bare”. Tim Sneath, a Group Program Manager for WPF has a comprehensive listing into the latest improvements in the WPF space, and you can see that controls are still the last thing being considered, as performance and graphics have been the priority.
The best example of WPF tooling is WPF/E, better known as Silverlight. The first release candidate is now available but why is this significant? The significance lies in the fact that Silverlight is a cut down version of WPF, and it is only now that it is beginning to reach completion. If a cut down 4MB version of something that is currently about 80MB (WPF assemblies) is only just nearing completion, you can safely assume that it will be some time before “completion” is reached for the far larger WPF libraries. That is the prime indicator of the work still left with WPF.
I must however disagree a bit with Phil on a minute point. Resource Dictionaries make it a breeze to skin or template all the controls in your application, so as more and more controls become available, then it is very easy to affect your complete applications look with literally a “switch”. The issue with WPF, is new types of controls. At present most vendors are recreating controls already available in windows forms, and augmenting them with WPF. Until the WPF toolbox reaches parity with Windows forms and new types of controls start to be created with WPF that are unachievable in windows forms, then WPF will be seen as playing catch-up.
This is such an important point. I have lengthy but related posts here and here. Microsoft have always been in the Operating System and Server business, and relied on third parties to produce the eye-candy. The lack of applications is directly linked to why Vista (A WFP bedrock) has been received so poorly. As I’ve said in the links above, the same 100% of applications I used on XP, are the same 100% I use on Vista.
Probably the most widely talked about WPF application is the Lawson Mango application. It is important that my following remarks are not misconstrued so I must clarify that I would love to have worked on such an application.
The prime evocation to take from this application is that it is beyond beauty, and present applications do not compare one iota. This is a huge application, with the form count being around 10 000. It is very clear then that this was
- A money no object commission
- Technology and not business need driven (or mostly technology and a bit of business need)
For the average business application, resolving business need is the prime requirement. I am developing a Scheduling and BI application for a company, and the quite frankly, they couldn’t care less whether it was Windows Forms or WPF. Their prime requirements are
- Can you bring this project in under budget?
- Does it solve the business requirement?
One of the key factors that determines a software projects failure or success, is going over budget, and or not solving the business requirement. WPF is positioned disadvantageously here, because it is really very expensive at present to develop applications with the technology. If you get an accountant to do your requirements gathering and costing for a new or existing application, you will be shocked at how much more it costs to develop a WPF application, for no return on investment.
Another key factor in launching a business application is how easy it is to learn. An application that looks like Office 2007, will be far easier to train staff to use because the user interface is familiar hence intuitive. When you take the Lawson Mango application, and look at a company with 500 people and consider the ongoing training costs, then your budget for training goes into the many thousands, where with an Office user interface, that will be significantly reduced. Some might say this is boring, and you will always be stuck in the past, but to run a business you always have to look at the skills your current workforce have, and the return on investment that a specific technology will give you. It is for these reasons, that your typical business will prefer the Office 2007 UI in windows forms, to the Lawson Mango.
Supply Side Push
WPF will only gain popularity and mainstream recognition when Microsoft themselves release a WPF product. Obviously Windows 7 should contain more WPF applications and that will be a key factor in WPF adoption. What they need is a new Media Player done in WPF, or an application that is ubiquitously used in the operating system written “top down” in WPF. They also need to create managed wrappers available for both Windows Forms and WPF for the OS, unlike Vista at present.
Windows forms has already proven that it can create a good 60% to 80% of what is achievable in WPF, but as anyone that has ever developed a project of a decent size will tell you, writing software is very expensive, and unless WPF can start to negate the expense associated with it, for reasons aforementioned, it will continue to have a tardigrade uptake.