First off, WPF is not just for applications which simply require “eye candy.” That is the most common and frustrating misperception about WPF which I’ve encountered. Sure, WPF has a lot of support for flashy visuals and animations. But that’s not all it’s good for. If you’ve worked with WPF for any substantial period of time you are probably well aware of this fact, so I won’t keep harping on the issue.
WPF is an especially great platform to use if your applications involve various media types. For example, if you need to incorporate video, or documents, or 3D content, or animated transitions between a sequence of images, or a combination of any of the above. WPF is also great if you need to create a skinned user interface, or if you need to bind to XML data, or dynamically load portions of a user interface from a Web service, or want to create a desktop application with a Web-like navigation style.
Another great reason to use WPF is if you have a team of developers who are bored with WinForms and are itching to get into something new and cool. Of course this is not as powerful and compelling a reason from a business perspective, but nothing promotes employee retention better than keeping the employees interested in their jobs.
WinForms definitely still has a role to play, despite the fact that WPF has hit the scene. If you are building applications with no need for the extensive modern functionality in WPF, then there is no compelling reason to leave behind a time-tested developer-approved platform. WinForms certainly has more 3rd party controls available, online resources, developer communities, etc. than WPF currently does. It’s much easier to find WinForms developers than WPF developers. Also, WinForms currently has a much better design-time experience in Visual Studio than WPF. That fact alone is a very compelling reason to stick with WinForms for a while.
WPF is just a different type of Windows-based solution when compared to WinForms. Microsoft has not stated anything about WPF replacing WinForms, when, in fact, it is just another tool available to the Windows developer.
1. The ability to make very rich UIs relatively easily.
2. Easier animation and special effects
3. Inherent scalability
4. Powerfull styling and skinning structure
5. Easy to create an own Look and Feel
6. Does support Windows Forms
7. The future technology for developing Vista Applications
8. The ability to reuse existing code
9. Highly advanced databinding possible
10. Declarative vs procedural code
11. Requires .NET Framework 3.0
12. Compared to Windows Forms, still in development fase
13. Requires Dx9 compatible vidcard for advanced graphics
However, there are drawbacks to WPF, where WinForms comes out on top:
1. WPF's in-box control suite is far more limited than that of WinForms.
2. There's greater support in the 3rd-party control space for WinForms. (That's changing, but for now by advantage of time, WinForms has greater support in the community.)
3.WPF will not run on windows 2000 or lower.
4. Extensive documentation to be found on the internet FOR WIN Forms
5. Plenty of examples FOR WIN Forms
6. Design your own look and feel in a application is a lot of work.
7.C# is slower to run. This is somewhat taken care of when using WPF, although currently the launching of WPF application is still a bit slow. However, after the program is launched, the animation effects are all very smooth.
Reference : http://abhijit-k-adhikari.me/category/wpf/