14
votes

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.

5
Another question to ask would be if WPF will still be around in 5 years. I did not like what I saw so far with WPF and WinForms is mature and popular. MS has been know to drop technologies that did not catch on.ILoveFortran
Possible duplicate of WPF versus Windows FormsPeter Mortensen
5 years later and Windows forms can still be created, lolLunchbox
5 more years later and Windows forms can still be created, loluser7159857
And WPF is also still alive.Xam

5 Answers

15
votes

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.

13
votes
  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.

4
votes

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.

1
votes

In my choice of platform (Windows Forms or WPF), my main issue was to get the application installed at the PCs of our customers.

Our customers are mainly large companies. So every extra component we have to install means a delay in the approval timeframe.

So I have chosen for .NET 2.0 and Windows Forms, because this will be pre-installed in 90% of all PCs I have to install on.

If your customers are home/end-users the fanciest UI (WPF) may be something to look at.

0
votes

@GvS: This is pretty moot, since I am almost positive that 3.0/3.5 has been an automatic update for some time. However, it should be noted that WPF is not supported under Windows 2000.

Another point to consider is that WPF and Windows Forms controls are not interchangeable. If you have a large investment in Windows Forms controls, they can be used to a certain extent in a Windows Forms wrapper in WPF, but it is very different.