One obvious answer is that WPF offers a richer user experience than WinForms, allowing for animations (even 3D) in the user interface, for example.
From a development perspective, it goes a long way to enforce the separation of the User Interface (in the XAML) from the business logic (in VB.NET or C#), which is always a good thing.
A Google search for “WPF vs WinForms” brings up lots of pages that discuss this issue. I won’t repeat all their findings here, but this page raises some interesting points:
- Databinding in WPF is superior to what Windows Forms offers.
- UI and C# business logic can be cleanly separated in WPF
- Storyboard
- Data/control templates – a much cleaner way than anything Windows
Forms can offer.- Styles – cool and simple. Its so easy to style all your buttons in an
application to have the same look and
feel.- Even if the VS designer breaks, its easy to code XAML.
- UI virtualization – I’ve got grids with 100K rows, ticking off a moving
market. Performance would be dreadful
if it wasn’t for UI visualization
which come for free.- 3D support.
- Nothing scientific but, UI development feels quicker in WPF –
maybe its just because a WPF
application looks cooler at the end of
an iteration, or maybe its because
development really is quicker.- I can add a User Experience engineer to my team, and with no C#
knowledge he can work magic in
Expression Blend and give the
front-office trading application a
makeover that is guaranteed to win
over the business users.