views:

1287

answers:

5

We're about to embark on development of a new product. Our current product is a conventional client-server winform app 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 Winforms. But I suppose speed comes with experience. I'm a little concerned that WPF might not catch on, though.

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

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

Thanks in advance for any suggestions. I wish I had a crystal ball.

+1  A: 

In my choice of platform (Winforms or WPF) my main issue was to get the application installed at the PC's 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 winforms, because this will be pre-installed in 90% of all PC's I have to install on.

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

GvS
+8  A: 
  1. WPF is used in several recent MS applications, including VS2010, so I think it's "safe" to use in your own app. Development speed is of course tied to your familiarity with tools and their features.

  2. Winforms 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.

Joel Coehoorn
A: 

@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 Win 2000.

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

Totty
3.0/3.5 has been available via windows update, but it's an optional update. Optional updates are rarely installed.
Joel Coehoorn
Ah, thanks for clearing that up, Joel.
Totty
Large companies are very slow in updating their platforms. Before a component is allowed to install, it has to be tested to not interfere with other software. I currently am working on 1 installation for over a year to get approval to install .Net on XP. Luckily I have other customers.
GvS
+12  A: 

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.

Bob King
+4  A: 

Wpf is actually easier to use then WinForms, 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 WinForms 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 VS2008 is junk, Blend is better but is very designer oriented.

Nir