tags:

views:

86

answers:

3

I am developing a small desktop application in VB.NET. It has to be formal like a business application. Will I need to use WPF?

As I heard it's good for building a richer UI, and I would love to work with something new. But I also have the notion that it's mostly used for graphics rich applications - videos, animations, etc. I do not know much about the .NET technology as I am beginning to learn.

Can I have some guidance regarding this?

+1  A: 

Small desktop apps, especially business-like ones with forms and text boxes and minimal froofiness, will be fine as Windows Forms. If you don't need the extra power WPF gives you, don't worry about it -- there's a bit of a learning curve anyway, so wait til you need to learn it or have time for a personal project where you can experiment with it.

cHao
+1 I am assuming "froofiness" means visual effects, wow factor, pizazz. There are only 314 hits on Google for "froofiness
MarkJ
Say what you will about froofiness, but with greater adoption of the iPhone, iPad, and other devices that incorporate animations and traditions, business users are going to start wondering why their apps can't have it as well. Additionally, if you read the MSFT design guidelines for Windows 7, they talk about how these animations can be used to convey information that would otherwise take up valuable screen real estate.
Robaticus
A: 

I find it spectacular with even small business-like applications (and really nice for large-scale systems). Getting that 'professional' look is in my opinion a lot easier in WPF compared to Windows Forms. And not having to deal with 'event-soup' is a definite plus in my book. My ratio of errors has gone down considerably switching to WPF.

It takes some learning, sure (just un-learning Windows Forms takes time). It took me about half a year before I had the same skill level as I had with Windows Forms, but I'm still increasing in speed today (I've been using it since .NET 3.0 came out).

And I agree with Henk - certainly look into MVVM if you decide to give it a go - that's where WPF shines.

Goblin
+2  A: 

Now that I know WPF - and in particular, now that I understand binding, commands, and the MVVM pattern - I'm not going to use WinForms again. WinForms is fine if you're developing simple, static UIs that aren't ever going to change and if you don't care how they look on machines other than your development workstation. But once you start needing more, your UI code gets more and more complex and difficult to maintain.

WPF applications seem more complex at first, particularly if you think of WinForms as a hammer and your approach to learning WPF is to pound in nails with it. But once you understanding binding and templates, and adopt design patterns that take advantage of those technologies, the complexity melts away. There's bureaucracy - implementing INotifyPropertyChanged and dependency properties and RoutedCommands is pretty tedious, and it feels like there's maybe an abstraction layer missing - but if you look past the surface cruft, WPF applications are actually a lot simpler than WinForms applications. Binding a collection of objects to the ItemsSource of an ItemsControl and implementing a DataTemplate for those objects accomplishes in a very small amount of code and work what would be a considerable effort in WinForms.

Robert Rossney
The model binding here is the key! +1 for this.
Robaticus
People bitch about the overhead code that you have to write for MVVM - at least, *I* do - and it's easy to get so wrapped up in issues like those that you lose sight of how much better MVVM is than hanging event handlers off of form and button events.
Robert Rossney