tags:

views:

357

answers:

5

There are many questions about WPF vs Winfoms and the benefits of migrating to wpf, however I have a more specific question, which is probably subjective but would definitely help me justify using WPF.

Being in an internal IT department, the business users are not bothered how we get to the end product, but are also not fussed about things like animations, styling etc.

I can put forward some technical reasons, but how can i convince them and the management that WPF will be beneficial to them now and in the long run.

Any examples of improvements to UI controls etc would help.

Thanks.

+5  A: 

Well, if you simply have to convince the management about the merits of WPF just throw them a couple of funky YouTube videos. I like especially this and this. :)

The most important technical reason I can think of is separating the logic of the program fron the UI. This can be achieved using alternative programming paradigms though.

Kensai
Thanks for the links, although like I say our users are not bothered (at the moment) whether they have something amazingly flashy or a simple winforms app. Eventually, we may get to that point (who knows) but at the moment it's just convincing them.
HAdes
+4  A: 

To reiterate what Kensai mentioned - WPF does make the separation of UI and business logic a lot easier.

So you could construct an argument along the following lines:

  1. Rewriting existing applications using WPF will force us to separate business logic from UI logic.
  2. Having separated the business logic we can now reuse this in novel ways - e.g. intranet applications, mobile applications etc. - without reinventing the wheel.
  3. When the next "big thing" comes along all we can quickly develop applications for this.

There is another argument about how having a modern, well designed UI will improve the productivity of your users.

ChrisF
+7  A: 

The biggest business benefit of WPF over WinForms as I see it is the massive increase in testability. Because of the ubiquitous Data Binding support in WPF, patterns like Model-View-ViewModel become trivial to implement, and enable the vast majority of the interaction logic of an application to be separated out into ViewModel classes which, being Plain-Old-Clr-Objects, are much easier to test than WinForms controls.

The second benefit comes from the composability of the "widgets" in WPF. Customizing the look and feel of items in a ListBox or ComboBox using Data Templates, for example, is a cinch compared with the custom drawing that has to take place in WinFroms. So WPF makes it much easier to create apps with high usability compared with WinForms.

Thirdly, the Control Model and Graphics APIs are a vast improvement on WinForms. When I wanted to create a Custom Chart control, with support for rendering several hundred series performantly, it only took me a couple of days to do it - I remember something similar taking weeks in WinForms. As another example, I've blogged about how easy it is to get started with creating a custom Gantt control in WPF.

Samuel Jack
+2  A: 

From experience, Xaml makes UI construction and maintenance (especially for complex UIs) phenomenally easier than WinForms. The improvements to data binding are substantial as well - not only do they make your apps more testable as mentioned by others but they speed development time a good deal. WPF also includes XPS support, so if your company plans any "print to PDF" functionality you can tell them you'll get that for free. Also, WPF is "more popular" than WinForms so you'll find more free controls and new, relevant sample code for WPF which saves you time. Finally, WinForms isn't going anywhere. The technology will probably be fully supported by MS for a long time but WPF is obviously their "favorite" technology for new development and will receive the best tooling support. You could also argue that the Expression Blend tool speeds UI development time significantly and gives you the opportunity to offload much UI work to a designer or UI specialist.

James Cadd
+2  A: 
  1. Once you learn "the WPF way" building a fully functional complex UI in XAML is faster than WinForms (because of the great data binding support, the ability to compose controls the automatic layout and more).

  2. With WinForms it's difficult to separate logic from presentation, with WPF it's much easier - this gives you cleaner code, testability and the option of using the same logic with different UI technology in the future.

  3. It's obvious WPF is getting more attention from MS and is progressing faster than WinForms (see VS2010 for example).

But on the other side

If I'm starting a new project I'm going with WPF, but if you do have a lot of existing working code rewriting it all is probably not the best use of your time.

WPF only works on Windows XP SP2 or later, this is not a limitation for commercial application since anyone who buys software has upgraded to XP years ago - but might be a problem in a cooperate environment if you still have Win2K machines.

Nir