.net – WPF, Windows Forms, or something else


We're about to embark on development of a new product. Our current product is a conventional client-server Windows Forms application written using VB.NET.

Is WPF ready for a business application?
From what I've seen, it seems like it's harder to develop a user interface with WPF than it is with Windows Forms. But I suppose speed comes with experience. I'm a little concerned that WPF might not catch on, though.

Should we stay with Windows Forms?
If we stay with Windows Forms, are we relegating ourselves to deprecation right out of the box? I think it would be faster to market, but will Windows Forms still be around in five years?

Should we migrate away from Microsoft products?
All of our developers are .NET developers so migrating to another development environment might be out of the question.

I wish I had a crystal ball.

Best Solution

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.