I am starting a new application for our business to help maintain our client information, so it is going to be a very data driven application.

I'm curious, from the standpoint of those who have used both and who may have constructive suggestions on the future direction of development, should the application be written in WinForms (which I am much more familiar with) or WPF (which I have been avoiding like the plague...XAML sucks!)

Despite MY prejudice, I am willing to try to learn WPF and invest some time and money into it, but I would rather not if it is going to follow the same path as Silverlight and slowly fade away into the abyss of "well that was pointless to learn" list of application technologies.

I have read that WPF is great at making a "pretty" interface, but not so great at doing "simple" things that actually make the application work.

My problem, or rather, concern is that MS is going to slowly pull the plug on WinForms and replace it with WPF or some other technology and I'd rather not develop an application where the tools to update it and maintain it are going to slowly disappear.

I know no one can tell the future, but I'm curious what people think of the two different platforms and if you were starting a new, long term project, would you go with WPF or WinForms?

Well, I programmed for a living in a time when C++, Java and C# weren't even invented.
Now being retired I like to program with C# very much in a more or less hobbyist way. So here's my two cents of advice.
Programming with Forms is rather easy, but in the end I believe it is going to be replaced by WPF as main programming paradigma. On the other hand a console application can still be built. So for compatibility reasons all 3 will coexist for a long time I guess.
WPF has, as you said, a steep learning curve. Here is one of my code snippets I posted a while ago with one of my first WPF experiments. XAML isn't that hard, once you get the hang of it. Still busy getting WPF under my hat. Hope this bit of advice helps a bit and wish you lots of success. :)

Comments
Thanks!

For me it's up to the client. But that's not telling me enough. For example, the problem I had with WinForms is what happens when you move from say an old 640x480 VGA screen to an portrait view on a 1080p display and all those screens inbetween. WPF tries to tackle that for us. I'm not writing it solved it but it was a start.

Beyond that we have mobile screens, tablets and now the 4K screens. WPF may be the way to those screens.

As to MSFT's future is anyone's guess but for decade plus apps my office makes sure we can pickle the dev system. That is we make sure that we have a dev system that can be installed as well as complete systems in storage. In the past this was pretty horrible with desktops but in the last decade these are now just a pair of laptops in the filing cabinent filed under whatever legacy project we agreed to keep in cold storage. There are some that are going to bristle at the idea we would take perfect hardware and store it for the day a client comes back and wants "a small change." But it's paid off over the years so we do this without much noise except for the newer members of the staff.

If you know your target, I don't see any issue with going with WinForms for say a decade long deployment.

Thanks for the info guys!

I think I'll try my hand at WPF. It's been a very agrivating day and I feel like I have accomplished...well...I made a blank VS solution and read a lot of documentation...

This question has already been answered. Start a new discussion instead.