wpf or not?

Hi experts,
I'm impressed with what wpf can do, but is it the way to go? I'm creating a native app that runs only on Windows for now, and I want an app that looks very customized (non standard controls, borderless Windows, vector graphics are great)... but I'm wondering, what's my best bet here?

Who is Participating?

Improve company productivity with a Business Account.Sign Up

Jacques Bourgeois (James Burger)Connect With a Mentor PresidentCommented:
As with anything in computing, once you think with a cold head, it really depends on your requirements, nothing else.

Disregard the discussion about whether Windows Forms are dead and has not evolved recently. Windows Forms have been in evolution for close to 25 years. WPF for 7 or so. Comes a point when a technology is mature. I would be very mad at Microsoft if they kept adding useless features just for the sake of adding or changing features as they did in Office in 2007. Or if they brought everything down to a bland screen as they did in Windows RT and Office 2013.

If you are developing Windows applications that will work only on a standard Windows desktop, nothing beats Windows Forms. They were designed specifically for that purpose. You can have non standard controls (learn about inheritance or scour the Internet) and borderless windows (FormBorderStyle=None) in Windows Forms too. The controls in WPF look non standard because WPF does not use the native Windows controls. But when you have seen 10 WPF applications, you simply see them as a new standard.

Yes, WPF is more graphically oriented, mainly because Windows Forms do not have something like Microsoft Blend to design the form in the background. But if you stick only with the default WPF controls that you get through Visual Studio, I personally ended up finding them repetitive a lot faster that it took me to find Windows Form controls repetitive. Everybody wants 3D nowadays, so I cannot see what the fuss is about flat buttons and flat screens. Personal preferences.

WPF was designed for another purpose: extensibility on different platforms. Those who were there when the technology appeared remember that one its main reason for being was to bring Windows and Web development closer, so that jumping between the 2 technologies would be almost seamless.

There was also the idea that one day, the same application would work both on Windows and the Web. It seems that we will be there in the next version of Visual Studio, and even more so because you can add tablets and phones to the list of environments where a given application will be able to run. The Graal is close... are we being told.

So if you think that you are going into Windows, web and mobile development, WPF is definitively the way to go.

But as any experienced technologist will tell you (in any technology, not only in programming): having something that does everything is great, but it will never be able, in a given field, to do what a technology specialized in this field can do. A laser can cut anything. But I would rather use by table saw to cut a piece of wood, because the laser leaves a burned out edge while the table saw does not.

If you requirements are to create applications that runs only on a Windows desktop, although WPF makes it easier to create cool looking applications, the good old Windows Form application is right at home, because this is the only place it has ever lived. It knows that place like no other.

This being said, if you aim is to develop your expertise for what seems to be the future of computing, developing your skills in WPF might be a better choice. Maybe not for your users, but for you. See who you put first between these two. If you think that everything in the future will be mobile and cloud, then investing in WPF will help you make the transition when needed, if it is not already the case for you.

If you think (as many do) that the Windows desktop is there for the long run, then putting your expertise in Windows Form might be a better idea, because the way it is going now, all the young programmers are doing WPF, and there will eventually be a need for Windows Form programmers that will raise their value on the job market.

Am I glad that I am old enough not to have to weight all these things anymore.
Imran Javed ZiaConsultant Software Engineer - .NET ArchitectCommented:

As per my understanding, WPF is better choice if you want to use your app to next versions too seamlessly.

You may find following links helpful:

It is said not now, but in future, Microsoft will close support for WinForm.

So I may recommend WPF over WinForm.

Éric MoreauSenior .Net ConsultantCommented:
>>It is said not now, but in future, Microsoft will close support for WinForm.

This is not true. There are so many apps using Windows Forms that they need to support it. But that doesn't mean that it will evolve a lot!
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Imran Javed ZiaConsultant Software Engineer - .NET ArchitectCommented:
Dear Eric,

I did not claim that Winforms is Dead, but everyone may accept that it has to. It has no enhancement since 2.0.

Please refer to following statement:
During a Q and A session at the Build 2014 Conference, Microsoft explained that Windows Forms was under maintenance mode, with no new features being added, but bugs found will still be fixed.

And Kindly also look at:

Again. It is my opinion, someone may have different opinion, but it is always recommended to go with new technologies, until unless there is some specific reason.
Éric MoreauSenior .Net ConsultantCommented:
I fully agree that Windows Forms had no enhancement but you said "Microsoft will close support for WinForm" and this is not true, they just cannot. The best example is that the VB6 runtime is still supported (http://blogs.msdn.com/b/nikosan/archive/2012/04/20/support-statement-for-visual-basic-6-0-on-windows-8.aspx)
threadyAuthor Commented:
I guess the very fact that visual studio is done in wpf shows it's the best option for Windows apps...
Imran Javed ZiaConsultant Software Engineer - .NET ArchitectCommented:
"It is said not now, but in future, Microsoft will close support for WinForm."

please note ,

"It is said"

And also note

" not now, but in future"

So I never claimed that they have stopped/closed.
threadyAuthor Commented:
Hi Jacques!

Awesome answer, thank you!  I'm torn between wanting to get something done quickly with WinForms and wanting to learn WPF.  I love the idea of having a UI that can scale itself with vector graphics and to do everything the way I'd want it to be.  But free time is scarce and I'm finding the learning resources daunting.  They're either too basic or not targeted enough to what I want to achieve.

My main interest is in creating a list control with column headers that can allow me to click on buttons in list view items that bring about popups, etc...  Is there a good book or resource you could point me to to get a good kick in the butt?  :)

Thanks again,
threadyAuthor Commented:
I was about to start my project WinForms.  This answer has got me wanting to invest and learn WPF.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.