When will WPF become a mainstream platform?

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.😉

30 Responses to When will WPF become a mainstream platform?

  1. Patrick Sears says:

    Great post Josh! I’ve been mulling this issue myself lately now that I’ve chosen to get into WPF development. Mostly I’ve been thinking about it in the context of “How to convince my managers that it is a worthwhile platform to adopt”, that is, convince them to buy VS2008😛

    When I think of it in that context, I’m forced to tell them “Well, the 3.0 framework is in full release, but the development tools are still in Beta.” This makes convincing them that WPF development is a good idea, pretty hard.

    As for the graphic designers issue.. I see where you’re coming from. I think that for most of software development’s history, it has been a field dominated by the nitty-gritty coders, and graphic artists and UI specialists have only recently come onto the scene. Even still, their input is limited because the only thing they can do is tell the programmer how they want something to look (for example, by mocking it up in Photoshop) and the programmer has to implement it. This still ultimately leaves the design power in the programmer’s hands.

    That’s about to change, but it will take a few years for companies to really catch on that they can actually hire someone to design an application and it will actually LOOK LIKE THAT. The developer now gets to worry about data structures and databases and UI interaction and they don’t necessarily have to have anything to do with the visual representation of the data.

    I think the best paid developers though will be the ones who can do both tasks. Many developers are horrid at designing an application, but the visual design does need to keep some aspects of the programming in mind. An individual who can marshall both skill sets will be very valuable.

    Finally, I agree that WPF is a vast improvement over WinForms. By unshackling .NET from the Win32 world, you open up a vast world of possibilities that simply were impossible before.

    I’m hoping that my early investment of mental time and energy will be worth it; I’d hate to think I spent all this time learning a new platform just for nobody to care that I know it.

  2. Josh Smith says:

    Patrick,

    I think one big hurdle regarding the integration of graphic designers into the application development world is the fact that most designers prefer to use Macs. The MS Expression suite doesn’t work on Macs. That is a HUGE issue, imo.

    Regarding your last point, I know what you mean. I’m not worried about WPF going away, though. It is the future of Windows UI programming, but the world needs time to assimilate it. A lot of time.

    Josh

  3. Andrew Flick says:

    Did I miss something with Mac support:

    http://www.microsoft.com/expression/products/sysreq.aspx?key=studio

    I think the issue isn’t that it works on Mac’s more than it is brand loyalty. A simplistic view of the market could show that graphic designers love the Adobe/Macromedia products and there hasn’t been a wealth of demand for them to abandon the tools they’ve trained on to jump into the Microsoft boat. There is more to it than that, but that’s a single aspect to the shortage of talent.

  4. Josh Smith says:

    Andrew,

    I stand corrected, thanks for pointing that out. I didn’t know that they released a version of Expression for Macs. However, it doesn’t seem that Blend can be run on the Mac:
    http://www.microsoft.com/expression/products/sysreq.aspx?key=blend

    Your point about loyalty makes sense. Inertia is a tough opponent.

    Thanks,
    Josh

  5. Neil Weber says:

    You didn’t mention how complex and large WPF is. It doesn’t take much effort to start cranking out WinForms UIs, but a lot of study and learning are required to produce the same screens with WPF.

    Even so, though, the biggest competitor to WPF is probably ASP.NET. Nearly all the .NET developers I know are working on ASP.NET projects.

  6. Gavrilovici Corneliu says:

    I can’t wait to develop my next application at work in WPF. I’ll cry a lot if that won’t happen. I don’t like Windows.Forms anymore :((

    I’m like a baby😛

  7. Patrick Sears says:

    Neil:

    You’re definitely right that it takes alot more effort to produce the same screens in WPF, at least, at the beginning. The framework is so sophisticated and the details are so complex that there are many new things you have to learn to replicate even the simple things you did in WinForms.

    That’s always the tradeoff though; the more flexible the system, the more complex it necessarily is.

    Josh:

    Don’t alot of graphic designers also use Photoshop? Am I missing something? I wouldn’t say Blend is up to Photoshop’s caliber, but I figure if one is used to using Windows to do design, Blend can at least be a complimentary tool.

  8. Josh Smith says:

    Patrick,

    Photoshop runs on the Mac. That’s the setup many designers prefer.

    Josh

  9. Christopher Boyd says:

    Another blocking factor for companies who distribute mainly over the internet is the large runtime download that they need to get clients to accept. If I have created a ~10MB app that I would like my clients to try, I think it is a hard sell to require them to also download a ~50MB runtime.

    Have you guys gotten many complaints about the runtime download in the Times Reader installer?

  10. Josh Smith says:

    Christopher,

    I agree that the size of the .NET framework installer is getting out of hand. I don’t know if I’m at liberty to discuss what Times Reader customers say about such things, so I’m going to play it safe and say “no comment.”😀

    Josh

  11. I’d suggest another, related, reason that adoption is slow is the lack of effort put into selling the core goodness of the platform. Most presentations I’ve seen focus on things like “look, I can host 3D” or “look, I can make a button twirl around” and these were at developer events. But if you learn the real goodness in the platform, how key lessons were learned from both WinForms and ASP.NET, that they attempted (and succeeded by and large) to bring the best from those two into this platform, and that this is all on top of the new designer-dev workflow and on top of the new graphics capabilities. Heck, animations/storyboards themselves are almost worth the switch…

    But this stuff wasn’t sold, at least as far as I noticed. And I don’t think it’s being sold now, but as of late I’ve been hearing more and more devs saying they’re checking it out, so hopefully, especially once VS 2008 is out, we’ll see more folks checking it out and finding out that there’s a lot more to WPF than the new graphics capabilities and designer-dev workflow.

    Of course, if Silverlight 1.1 pans out as well as I hope it does, most of those ASP.NET devs Neil mentioned will be switching to it. The funny thing is that if they start tweaking with WPF now, it’ll make that switch a lot easier later. I expect (and hope) we’ll get more WPF goodness packed into Silverlight as it develops, so there’s no harm in getting familiar with it now even if you’re an ASP.NET/Web dev. In fact, in some ways, WPF is less of a learning curve for Web heads than Win heads.

  12. Josh Smith says:

    J Ambrose Little,

    I totally agree with your opinion about the MSFT failure to appropriately market WPF. It’s frustrating when I hear people say that WPF is “just a bunch of fancy glitter” and that it’s not appropriate for building typical apps. I don’t blame them for having that opinion, I blame the marketing folks at MSFT for pushing the things that don’t really matter much to most devs. Just some baaaaad decisions in that department.

    Part of the reason I blog and write articles about WPF is to combat Microsoft’s WPF marketing campaign! I want WPF to succeed so that I can get paid to work in it, so I need others to recognize the goodness it contains!!😀

    Josh

  13. Mike Brown says:

    Hey Josh,
    Nice post. I agree that the tool support is the biggest impedance to widespread WPF adoption. I had a chance to talk with a few members of the Cider team not too long ago, and they acknowledged that even with VS2008, WPF will still be targeting the “Early Adopters” market. And they are fine with that. However having a designer that makes it just as easy to drag and drop your UI as the Winforms designer does is crucial to adoption. They definitely hit the mark there.

    I still do a lot of XAML coding by hand, but it’s nice to have a tool to do the rough layout for my UI rapidly. Using my favorite analogy, a web designer will do their rough layout using a graphic tool (such as dreamweaver) and go back to touch up the html/css by hand after the main layout is done.

    As far as LoB adoption goes, we probably won’t see WPF going mainstream until Rosario is almost out the door.

  14. Josh Smith says:

    Mike,

    That’s interesting feedback. Thanks. I didn’t think the Rosario era is when they expect WPF to really take off. Wow. That’s quite a ways off!!

    Thanks,
    Josh

  15. ligao101 says:

    We are doing early adoption of WPF technology mixed with Win Form 2.0. From my experiences so far, I wish the cider designer in VS2008 can match, at least visually, what Win Form designers offers now in VS 2005. This will be a huge time-saver.

    IMHO, without XAML intellisense, Expression Blend is not much useful to advanced XAML developers.

  16. Mike Brown says:

    When I thought about it, it actually made sense to me. The floodgates weren’t open for .Net adoption in general until VS 2003. And surprising as it may sound, there are still people who haven’t migrated to 2.0 let alone 3.0 yet.

    Makes you feel like one of the lucky ones to be working with WPF already no?

  17. Josh Smith says:

    Mike,

    I looked at some WinForms code recently, and thought to myself: “I am so glad that I left that world for WPF!”

    Josh

  18. Josh, this is nice analysis. I’d like to add that design-time support, VS.NET designer (Cider) is one of the key pieces that is slowing down the adoption. I looked into the VS.NET 2008 Beta 2 and I agree with Mike, it does not look like designer will be very useful even in final release. It will still be for early adopters only. That leaves the complete useful designer implementation appearing in VS.NET version after the 2008, Rosario. That is probably more or less 2 years away.

    The another factor slowing down the adoption is that Windows Forms is good enough technology. We did some amazing things with it and for LOB applications it is working great. There is large market of third-party components for almost anything you can imagine. They are tested and battle proven and they work.

    While WPF is better UI technology and platform no doubt, it introduces limitations that WinForms do not have:

    – Additional run-time deployment
    – Works on Windows Vista, XP or 2003 only. Lot of LOB applications must support W2K or even Windows 98 so WPF is out of luck there. People will choose WinForms.
    – The WPF UI seems heavy on slower systems and Windows Forms GDI+/Win32 seems to work better there. Again for lot of LOB apps.

    With that being said, I am confident that WPF will be adopted, it is only question of time. I am fully behind it as well. Shameless plug, we just released the new DotNetBar for WPF 2.0 that includes Wpf-Ribbon and Wpf-Dock controls that will help you create these professional LOB applications easily.🙂 Give it a try. http://www.devcomponents.com/

  19. Josh Smith says:

    Denis,

    You raise some very good points about why WinForms will not die without a fight. The operating system requirement is an impossible challenge for WPF. The rest of the obstacles you listed are either inconveniences or just things which will happen over time, such as the availability of time-tested WPF controls. I’m very interested to see how WPF is adopted by the software world, and how long it takes.

    Thanks,
    Josh

  20. Peter Zajic says:

    Hi, Josh, very nice post.

    I belong to those lucky people who work with WPF. I was able to satisfy my boss that WPF is good way of developing new apps. So I spent every day of last 6 months with this technology.

    I learned one thing. People desperately needs their “winforms like” designer. We started to work with WPF when no tools were avaiable and now we have no need of designer in visual studio.

    For design purposes we use expression blend, for coding visual studio. For powerfull technology you need powerfull environment. Expression blend is powerfull environment for designing in WPF. Forget about designing in VS, WPF is not winforms, it is far more complex technology and you will not be able to create good application in winforms way.

    My English skills are limited, so I hope I was able to make my point.

    Thanks, Peter

  21. Josh Smith says:

    Peter,

    That’s an interesting perspective. I have heard some say that Blend is not a good tool for developing applications (but is good for graphic designers), and others say it is great for developing. I’ve never really worked with Blend much beyond tinkering, so I don’t know what to believe.🙂

  22. Great post!

    I’ve been working with WPF for 2 years now. Before that I did ASP.net, WinForms and before that I was a Macromedia Flash developer.
    The experience I had with WPF reminded me much more of that using Flash than doing WinForms.
    IMHO WinForms does a few things extremly well for LOB apps – it’s easy to bind it to data, you don’t have to worry that much about design and you can use a great familiar tool within visual studio… these are strong arguments from a ROI perspective.

    Otto Store, the first big WPF app I was working on is a totaly different story – consumer are much more demanding great look and feel. It’s not only the app, it’s the general perception of the brand that shines through.

    For visualization intensive apps the ROI pendulum also swings the other way – it’s much more easy to do that in WPF than in OpenGL or DirectX.

    A limiting factor also might be the adoption of Vista and DirectX9 hardware – you can write responsive WinForms apps even on legacy hardware.

    cheers
    Florian

  23. Alex Nesterov says:

    Florian,

    If you didn’t bother yourself about design in WinForms, then why it burdens you in WPF?🙂 Use standard controls, apply simple gradients or solid fills for custom styles. An app even if is written under WPF shouldn’t be just a “candy”, it should be functional. And this is the first place thing. As Josh said MS focused on animation very much, but left out all other cool features. I think most apps can live without animation and with standard Windows XP look-n-feel. Don’t you think?

    Alex

  24. RockoWPB says:

    It’s just a matter of time and the official release. Once the mainstream developers get access to it and some real WPF app’s start to get published. Developers will have no choice but to adopt it to compete. Even the die hard VB6 people will have to finally come over, I know it convinced us it was time to move up and develop our new system in WPF. I think the full impact will even be hard for the early adpoters to envision. Once the programming masses get into WPF, truly practical unique solutions and UI’s will start to flow and the old windows apps will go the way of DOS. Five to ten years from now we will wonder how we ever worked on that stuff. I truly do believe WPF is the biggest change to the UI since the jump from DOS to Windows. I’m proud and excited to see what the future holds for WPF and the developer community

    All that needs to happen after the initial relase is to improve the tools, get more samples, examples and how-to’s. I also like the idea of more standard MS controls like for winforms. Basically the product just need to mature.

  25. jturpin says:

    Really interesting read, Josh… and I agree with just about everything!

    Regarding Expression Studio System Requirements – I am the only one bothered by the blatent lie on the Expression web site:

    http://www.microsoft.com/expression/products/sysreq.aspx?key=studio

    Only one of the applications in the Expression Studio group runs natively on a Mac and that is Expression Media – and I am pretty certain that the only reason Microsoft is releasing a Mac version is because of an agreement between iView Multimedia and Microsoft when Microsoft purchased them. This application started out on the Mac platform and was ported to Windows for $$$ reasons.

    http://www.macworld.com/news/2006/06/27/iview/index.php

    Regarding the Designer/Developer workflow, I agree that Microsoft has not solved this problem as elegantly as they would like to claim. It is true that a majority of designers use Macs with Photoshop/Illustrator as their primary design tools – and convincing them to switch to new tools on a new platform is just not gonna happen. Therefore, we need the tools in place to do this conversion (.psd->.xaml or .ai->.xaml). There are some 3rd party tools out there but there are many holes to be patched.

    The biggest problem from an implementation point of view I have run into is that designers are not use to the constraints imposed by WPF (assuming the desire to recreate their designs natively in WPF with vector graphics and not using the painful bitmap skinning approach) – as WPF lacks some fundamental “features” that designers use on a daily basis – namely, drop shadow, inner glow, outer glow, blur, and alternate blend modes. Obviously drop-shadow, outer glow, and blur exist – but as BitmapEffects which we all know are useless if used in a dynamic (animated) application (or in a sandboxed XBAP application).

    From a business perspective, I believe the demand is lagging simply because of the slow adoption rate of Vista and no one has created that “golden” application yet, which would drive the broad interest and adoption of WPF.

    I must say from a developers point of view, there are many elegant concepts in WPF as well as some annoyingly obtuse things (like trying to remember XAML Markup Extension syntax).

    I am still on the fence as to whether to switch to VS2008 or stay in VS2005. There are some annoyances with VS2008 – but I may be just use to the “old” way of doing things. Intellisense is really important when writing XAML and it simply breaks way too often in VS2005.

    -j

  26. Josh Smith says:

    Johnny,

    Thank you for answering that Expression-on-Mac mystery. The entire suite of Expression products *must* run on the Mac for the designer-developer workflow to even be a viable possibility. I simply can’t see any alternative. Hopefully Microsoft is willing to build those tools for the Mac, something they are typically (and understandably) not so keen to do.

    I do not have experience as a graphic designer so I’ll have to take your word on the “constraints” issue. It makes sense to me, but I can’t say much more than that. I’m curious to know what the graphic designer world has to say about that.

    I think that Times Reader is a killer WPF app, the “golden” app which you refer to. The problem is that Times Reader is a highly specialized, non-standard, non-LOB program. It does not sing praises about WPF to the business app devs out there. It possibly might even arouse suspicions about WPF’s applicability for LOB apps. I might be wrong there.

    Thanks,
    Josh

  27. Patrick Sears says:

    Josh,

    For the first few days that I spent learning WPF, I used Blend almost exclusively to become familiar with the structure of a Window, what the basic objects were and how they interacted, how to connect properties and timelines and resources to those objects, etc. It was very revealing and very helpful. I still use Blend to do the basic layout of a Window, and then I hand-code all of the XAML to fill in the details – styles, bindings, templates, etc.

    There are many things I can hand-code in the XAML in seconds that I have absolutely no idea how to do in Blend, and I don’t see the point in trying to figure it out – why spend 45 minutes doing something in a GUI that will take me seconds to do by hand?

    Right tool for the job, I say. There’s no such thing as a silver bullet.

  28. Scott Lowe says:

    Josh,

    I pretty much agree with your analysis, but it isn’t all doom and gloom – There _are_ people out there developing Line of Business apps!

    I’m presently developing an internal LOB/WPF app for a telecommunications company – a sector that is usually considered to be fairly conservative. However, I should add that without a third party datagrid the project would not have got off the ground.

    I feel that all the reasons that I’m finding WPF compelling are never mentioned by MSFT marketing – for example, Routed Events and the powerful ASP.NET-like composition and layout that can be achieved through UserControls and nesting has made the entire project both manageable and understandable – not a sexy marketing point, but in reality it really makes a big difference to a developer like me on a daily basis – it would have been a real headache to structure the code using traditional Windows APIs.

    Another example would be the excellent databinding, datatriggers and style triggers – again, it’s not something that easily reduces to a sexy tag line or shiny new graphic.

    I’ve used your blog and Code Project postings extensively to get myself on the right path with WPF, and would like to thank you for your efforts. It seems that the only way to undo the misguided MSFT marketing is through blogging efforts like your own, so that other .NET developers might have their interests piqued.

    Finally, I would advise developers to get their hands dirty with XAML rather than rely too much upon the designers (Blend, especially), it’s the best way to get a good grounding in the technology – for that reason VS 2005 has been fine for me, even with the limited designer support.

    — Scott

  29. Josh Smith says:

    Scott,

    Good points! I wasn’t trying to cast a cynical shadow over WPF, no “doom and gloom.” I know that some people are already creating LOB apps with WPF, but those are certainly the early-early adopters. The masses won’t move to WPF for awhile, imo. Thanks for the detailed feedback.

    Josh

  30. Hi Josh,

    I’ve gone through most of your WPF stuff on Code Project and I would like to thank you for your hard work!

    I agree with you on the points that you made, but for me I’m actually really really excited with what can now be done with Windows applications. It’s the dawn of a new day for user interfaces..But unfortunately there are a bunch of coders out there that doesn’t see it that way.

    Soon they will…soon…

    -Donovan

%d bloggers like this: