(Okay. It's just that you keep asking in different ways, in different forums on the same board. That says to me that you're seeking some sort of external justification.)
Overall, I think it will be used more and more. Sure, you can make things pretty. Everybody likes pretty interfaces. That's not what makes it great. It's powerful and flexible way beyond anything I've used before, such as WinForms.
"Primarily developing in WPF" isn't for everyone, of course. It really depends on the project and its target audience.
As for performance, there are many factors involved. Here's an example: in WinForms, if you were loading a thousand items into a ListBox, it would be a real performance drain if you didn't call BeginUpdate() and EndUpdate() on it.
Because of WPF's sophistication, there are a number of new ways to kill your app's performance. If you load up on BitmapEffects, yeah, you're going to kill the performance, especially if the machine doesn't have enough hardware acceleration to handle that rendering on the GPU instead resorting to the software rendering pipeline.
But there are other, subtler ways to defeat your app's performance, like doing anything in a manner that is more complicated or more resource-hungry than necessary. A DataTemplate with lots of heavy objects in its element tree is of course going to be a bigger performance drain in a ListBox of a thousand objects using that DataTemplate. You mitigate that cost by trimming down the DataTemplate or using virtualization in whatever Panel you're using for the ListBox (which is why the default ItemsPanel for the ListBox is a VirtualizingStackPanel).
And, as with anything .NET, the first time MSIL executes, it has to be compiled into native code, and the runtime caches that. I've noticed delays from that in the early minutes of using any .NET app (not just WPF). That, too, can be mitigated. |