tags:

views:

481

answers:

2

Hi,

My company is just starting to look at using WPF for migrating all of our 10 year old business applications. These applications will most of the time be running on computers that have limited/old hardware. We are now a little worried that the hardware might be too limited for using WPF.

We have installed Family.Show (http://www.vertigo.com/familyshow.aspx) on an basic older computer and that seems to run ok. But we would like know what your experiences with WPF on older hardware is? Anyone out there willing to share some experiences with us?

+2  A: 

WPF apps will generally run no slower than their equivalents using other technologies. In other words, performance depends on what you're doing. If you have a basic app with some simple data entry controls and a grid or two then it'll be a lot less demanding than an app that has animated custom controls with overlaid video, etc.

You should also bear in mind that you must have at least XP SP2 to install WPF, which sets a reasonable hardware baseline anyway.

In summary you should have no problems running a WPF app on older hardware as long as you are sensible with the frills. Given WPF's templated controls it's also fairly trivial to test for a basic level of client performance at runtime (see Graphics Rendering Tiers) and only enable more advanced features on suitable hardware.

Stu Mackellar
I need to read up on those Rendering Tiers, haven't look at that yet. Thanks for the information!
tmatuschek
One other thing to mention is that WPF performance has increased *significantly* in .Net 3.5 SP1.
Stu Mackellar
+3  A: 

I would add serveral things:

  1. The first is, as Stu said, it really depends on what you are doing. In particular, we have found a noticeable difference between WPF 2D and WPF 3D. If you are doing any WPF 3D stuff at all, your performance is highly dependent on the quality of the video card (see the Graphic Rendering Tiers link already mentioned). In particular, we released a WPF 3D feature in April of this year, and it really only worked smoothly on Tier 2 hardware.

  2. Second, I would point you to Jossef Goldberg's blog. It has a wealth of information on WPF performance related items.

  3. Third, I would grab and utilize the WPFPerf tools. They were recently updated actually. Jossef's blog post will point you in the right direction there as well.

  4. Fourth, take advantage of virtualization wherever you can.

  5. Finally, I would recommend monitoring performance all the way through the development life cycle. I think the story goes that originally the Blend team did not evaluate performance (for their first release) till closer to the end, and it made solving the problem much more difficult.

Update: There is another StackOverflow post on this subject. Just wanted to point others to it.

cplotts
That was a really really good answer. I feel much more confident now going forward. Can't thank you enough! I'll be adding my own experiences here once we have done some more testing.
tmatuschek
Thanks for the compliment! Very kind of you.
cplotts