I’ll try to be fair, this is only my opinion. I am a desktop application developer, I do very little “web” work. I’ve been programming since 1981I (was only fourteen at the time and did little more trivial scripts). Since then I’ve graduated with a CS degree and have been using MS products for the past sixteen years. I consider myself old-school, in both the positive and negative sense of the word. I develop only the applications that run my company. I was a TRS-80 user 1981-1984, Commodore user from 1984- 1987, Mac user from 1992-1996, Windows user from 1996-2004, Mac & PC 2004 - Present.
I tell you all this so you know my perspective.
Windows Forms programming is easy, fun, and extremely limited. It’s also very ugly. When MS introduced Silverlight, all the devs jumped on board, including myself. I leaned towards the WPF side because, like I said, I’m a desktop dev, not really doing Web stuff. WPF and SL are cool with nice shiny buttons and interfaces. Using MVVM with WPF makes A LOT of sense and that’s what I currently use to develop my Windows apps. Databinding in WPF is just plain awesome.
A couple of years ago, MS, at a dev conference, slipped out the not-so-subtle hint that Silverlight was being dropped in favor of HTML/JS. That was wrong of MS and unfair to devs and companies that had invested heavily in it. MS had pushed all its devs into Silverlight and made a commitment to provide tools/updates. MS failed us tremendously in this regard. I think MS did it because they wanted to be like the cool kids developing cutting-edge websites (I know there’s other reasons) , and that’s great, but they didn’t have to abandon their desktop devs (which they did). This is a reason to distrust MS and I’m still bitter, can’t you tell?
Devs like me weren’t finished mastering all of WPF when Microsoft announced they were moving on. Bummer. MS focused on ASP, Azure, MVC and other technologies that get all the love. Meanwhile, WPF programmers like me feel stranded. paulstovell.com/blog/six-years-of-wpf
In spite of this, WPF is still a great platform to develop Windows apps.
The best choice for MS devs is to pick your track: Want to develop for Win 7 desktop, pick C#/WPF. Win 8 desktop, pick C#/XAML. Desktop and web, C#/HTML/JS. Develop for the cloud?, Azure/C#/ASP MVC. The list goes on but the sad reality is it’s no longer possible to be adept in all development paths. You’re going to have to choose your battles.
In fairness to MS, I think (overall) they are better to their developers than Apple is. I remember developing iOS 5 Beta on my personal iPhone (I know, dangerous), and when Apple released the final version, they “bricked” all the beta copies on the network. I was out of town trying to cope with a useless iPhone. Microsoft has come close, but never intentionally disabled a device.
I just purchased a Xamarin license (xamarin.com/) so I can use my C# skills to develop for iOS and Mac, then refactor for Windows. Or vice-versa. I am really into what Xamarin is creating.
To answer your question (finally), I think C# and XAML are technologies that will be around in five years therefore I think you should fire up Visual Studio 2012, Select “New Project”, then “Windows”, then “WPF Application” - and create.