WPF, Windows Forms, or something else? WPF, Windows Forms, or something else? wpf wpf

WPF, Windows Forms, or something else?


We took the plunge and built our latest desktop e-commerce package entirely in WPF (except for reporting, which we interop to use ReportViewer). I haven't had one day of regret. WPF's declarative approach has been easy to grasp for everyone, and it helps enforce separation of UI from business logic.

That said, if your team has a lot of WinForms experience, then it might be counter-productive to spend time learning WPF.

If that's not an issue, give WPF a try and maybe you'll get hooked.


  1. WPF is used in several recent MS applications, including Visual Studio 2010, so I think it's "safe" to use in your own application. Development speed is of course tied to your familiarity with tools and their features.

  2. Windows Forms will definitely still be around in five years.

  3. If you're building a product intended to run on the windows desktop you'll have a hard time finding anything better than .NET, especially considering it's what you already know. If you're thinking you might someday want a Mac or Linux port, you may want to consider an alternative. Even then, with Mono consistently improving and no immediate plans for such a port, .NET looks pretty good.


WPF is actually easier to use than Windows Forms, it's just completely different. The minute you understand the power of XAML and what you can do with data binding, styles and animation you'll never want to go back to dragging controls into the Windows Forms designer.

Just get used to the idea you have to write XAML by hand and not use the visual designer. The XAML designer built into Visual Studio 2008 is junk, Expression Blend is better, but it is very designer oriented.