I love programming in WPF and .NET in general. It's extremely powerful, flexible, and you can do cool stuff in it.
But I'm a little worried about whether it's getting much traction. When I talk to other sw engineers people don't seem to know much about it and the WPF sections on lots of online developer forums tend to g开发者_StackOverflowet very light traffic.
2 years ago someone here (How popular is WPF as a technology?) posted a question about this, so I want to revisit this now in 2010.
Does WPF have legs? Is it really going to take off? Does it have major corporate adopters? Since I enjoy programming with it is it a good career move for the next few years?
Thanks in advance for any comments or opinions!
For what it's worth, right now StackOverflow shows 9,000 WinForms tags and 15,000 WPF tags -- hardly light traffic.
That could just mean people have more difficulty with it, but IMO the momentum has been shifting. I don't personally know anyone starting new greenfield projects in WinForms anymore.
Are the engineers to whom you are talking already working in the .NET stack? If they don't know about WPF it probably just means they work somewhere that is not creating new desktop applications. They could be maintaining existing applications or working in the web space, in which case they'd have little incentive outside of pure curiosity for exploring the current state of Windows Client technologies.
Also IMO, it is good from a career perspective, because it is so highly (and ever-increasingly) overlapped with Silverlight. Silverlight jobs are in demand and will only become moreso as companies target Windows Phone 7 and cross-platform applications that leverage existing .NET assets.
Three years ago you could have uncovered similar data about LINQ. WPF is somewhat more challenging than LINQ (though it really isn't as challenging as the current state of WPF documentation makes it seem), because the problem domain it's addressing is a lot more complex.
But when you grasp what kinds of UIs the composability of the WPF model actually makes possible (which the MVVM pattern is a pretty good demonstration of), abandoning WinForms suddenly doesn't look so terrible. It's hard to develop WinForms UIs that are at all dynamic. WPF makes that extremely easy (once you've shouldered the cognitive burden that is WPF, of course).
And seriously:
<DockPanel>
<Slider x:Name="Scale" DockPanel.Dock="Bottom" Value="1"/>
<StackPanel>
<StackPanel.RenderTransform>
<ScaleTransform ScaleX="{Binding ElementName=Scale, Path=Value}" ScaleY="{Binding ElementName=Scale, Path=Value}"/>
</StackPanel.RenderTransform>
<TextBlock Margin="10">This is a feature a lot of WinForms programs would like to have.</TextBlock>
</StackPanel>
</DockPanel>
For some reason this thread has turned into a discussion about the MERITS of WPF. But that's not the question - as I said at the start of my post, I love WPF and agree that it's very powerful and cool. I know Microsoft uses it in-house (e.g., for VS 2010).
My question is whether it has legs in the industry. How well is it catching on? When I look at job postings I see SOME interest in WPF, but it doesn't look like much more than a year ago. Back in the 1990's I used to program in Win32/C++ and it seemed like EVERYBODY was using those technologies - I know it's an exaggeration but it seemed like you could knock on any door of a corporation and they needed someone with those skills in the old days. By comparison it looks like WPF has only a slice of interest but I'm hoping I'm wrong.
Huge take off in Financial Services (Investment Banking) i tell you. Especially with MVVM (Model View ViewModel) pattern.
Makes it a lot easier to create LOB (Line of business) apps.
I think Microsoft made a great move by creating whole Visual Studio 2010 UI in WPF. They have shown to the programmer public, that WPF is a mature solution suitable for creating huge and complex interfaces.
And Windows Phone 7 is going to help even more.
I have seen only a few Silverlight websites though.
I don't have any statistics for you, but Microsoft has implemented Visual Studio 2010 in WPF, and is releasing many other applications using that framework.
When I have developed using WPF, I have found answers to all of my questions, and newer versions of the WPF framework seem to address problems I have run into.
The MVVM design pattern (popular in WPF) seems to be a good pattern for any UI programming. If you learn that, you can take it with you, no matter what UI toolkit you use in the future.
IMO, the only Windows programming technology growing faster is web-based and you can transfer skills to Silverlight from WPF.
Wait 5 years and then will be a question "Does anyone use WinFroms?" -> Mono developers I found WPF a bit difficult to start, but if you get through all it is obvious that is better soultion. And the most important thing for flashy GUI - WYSIWYG apps (Blend).
Easy question to answer - Just go to job boards and search for WPF
As of Oct 7, 2011, on indeed.com, leave "city" blank so they search for the whole USA
Java = 100,719 results
C# = 47,290 results
Python = 21,477 results
WPF = 4,562 results
Conclusion - WPF is used by a relatively small number of jobs.
精彩评论