Any Windows Develops care to give me some advice?

I have a bit of down time now that I have submitted to the Mac AppStore, so I thought I’d begin researching what is out there to do a Windows version.

What I found was that Microsoft has made a complete mess of competing technologies, and keep rolling out new frameworks to replace half finished older frameworks.

I have written a frustrated rant about it here: wp.me/pkr2v-6P

Knowing that there are a few developers hanging around these parts, I am hoping that someone may see some insight into which framework is best suited to a Windows version of Aeon Timeline, and equally important, which will still be around and supported in 5 years time.

Thanks,
Matt

As someone who was a windows developer before I moved to windows based web development before I moved to objective C… you’ve hit the proverbial nail slam bang in the middle of its head.

There was a time when I would have said ‘Managed C# .NET’ and not thought that anything other than it being the appropriate and up to date answer (For apps that don’t need 100% raw hardware speed such as game engines that will use C++). For the Mac we use Obj C, for windows it’s more commonly C# & .NET.

It’s still not a bad option and I have a friend who even goes as far as to write his code in C# and has written macros to convert the C# to objective C for the iPhone and javaScript for use online. Even though MS have javaScript libraries for Metro they still support C# as it’s a mighty fine language.

I’d say choose between C# and C++. If you go with C# then you’ve got the .NET libraries to leverage. If C++ then you can either play the game MS want you to play it or even look elsewhere at third part solutions such as Qt.

As to the different MS UI frameworks… just pick one… you’re dammed if you do and dammed if you don’t. The old ones will be around for a while and have their fans, the new ones will be around as well.

Alternatively you can build in HTML 5 / javaScript / CSS.

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.