tags:

views:

244

answers:

6

There are pros and cons for both approaches. But from a managers perspective what is the best approach?

+2  A: 

There's no simple answer to this. Microsoft's strategy is for WPF to be the platform going forwards, and WinForms will eventually start to get less and less attention. Nonetheless, WinForms is still a very big development platform; you'll find more third-party components for WinForms than you will for WPF (though this chasm is obviously closing) and more examples online. You'll also find more WinForms developers in the job market.

The difference really comes down to what you're doing. What sort of project is this?

Adam Robinson
+1  A: 

If you want to implement some eyecandy into your forms, I should go for WPF. Also keep in mind that WPF is vectorbased, so it will handle zooming a lot better then a regular winform.

Altho, if your application is meant for managing data, registering clients,.. you might want to stick with WinForms for now. If you stick to Model-View-Controller, you can easily change your view later on, if needed or wanted.

J. Vermeire
+1  A: 

IMHO I think it's similar to VB6 when .NET 1.0 was released. As time goes by... the most talented programmers (and the most expensive too) will move all to WPF. And only the less talented ones will remain in windows.forms... but it will take time.

In my job we have to support and old COM + ASp3.0 application from 2002-2004. I wish it was in .NET 1.0 at least.

Code developed in WPF will be easier to mantain in the future that windows.forms code. But as Adam says, it depends on the type of project.

cad
+1  A: 

One thing to consider is that Mono is currently not planning on supporting WPF. Their plans seems to be to support only the subset offered by Silverlight in Moonlight. With Moonlight first targeting the desktop and Silverlight following it there, perhaps Silverlight is the way to go unless you have something specific feature that requires WPF's high end functionality.

kenny
Good point kenny!
tmarouda
This is only really relevant if you're targetting cross-platform. The choice between WinForms and WPF would imply a thick-client Windows application, so WPF makes more sense than Silverlight.
Dan Puzey
+1  A: 

From a manager's perspective, it doesn't matter, at least in the way you seem to be asking the question. A manager isn't writing the code and shouldn't typically be setting the requirements. The answer to the question is "whichever meets the business' requirements most effectively," and that's not a straightforward question.

So, really, a manager should be asking for technical feedback from the team that's going to implement the software. They will give an answer based on their understanding of the business requirements, of their own skills, and of any pre-existing asset that they have to support/integrate along the way.

It's important to remember with this sort of question that different teams/individuals will give a different answer even if given the same requirements. That doesn't mean either is wrong!

Dan Puzey
+2  A: 

If you disregard the learning curve (which is a little like asking Harry Whittington, "Never mind that, how was the quail hunting?"), WPF's advantages over Windows Forms at practically every level are enormous. Even if you disregard things like resolution-independence, rich media, and animation, and just focus on making forms for users to type data into.

I think that it's all about the data binding. You have to understand a lot of other things (particularly dependency properties) in order to be able to make data binding sing, but WPF's implementation of data binding radically changes what UI development is possible to be like.

Consider a pretty simple and common UI affordance: a region of the input window whose contents depend on the type of object that the user has selected in another part of the window. This is an interesting challenge in Windows Forms. In WPF it can often be done without writing any procedural code at all (once you've built the right view model, at least).

Robert Rossney