I have an idea for app but instead of going the mobile route I've been thinking of making it for the good ol' Windows desktop. The problem is, I'm a couple of years removed from desktop development and things look kind of cluttered to me right now. You have .NET, WPF, and even win32 and MFC are still around (sort of). Then you have all these third-part toolkits like Qt and bindings for other languages and runtimes like PySide and wxPython.<p>I guess the short version of my question is: For a commercial Windows desktop application, where do you turn to get it done?
When committing long term to Windows Desktop development, why would one choose the learning curve of a framework outside the Microsoft toolchain? It seems to me that choosing a multiplatform tool chain for Windows development is somewhat likely to be premature optimization (most things be equal).<p>I'd add that unless there is a compelling set of legacy code, win32 and MFC are not really serious options to .NET.<p>On the other hand, forms is an option to WFC for a minimum viable product - but not once UX design rises in importance. Early on, I would say that WFC v. Forms is purely down to investment in the learning curve.
If your application doesn't have special requirements (e.g. heavy computations, graphics, etc..) then using C# + WPF (or Winforms) is very efficient in the sense that you can get a lot done quickly. Visual Studio is a great IDE, MSDN documentation is not bad, and because a lot of people use those technologies then whenever you hit an issue it's pretty quick to find someone who had the same one and solved it (e.g. on StackOverflow).
If you are planning on deploying to the Microsoft stack then use the Microsoft toolset - .NET, Visual Studio, c#.<p>Winforms is pretty easy to pick up and the workflow between visual designer and hooking up to events is good. Double click on a button in the visual winforms designer and it puts you in the method in the code....something I wish Interface Builder would do :).<p>I've no experience with WFC, but as others have pointed out, it seems to be the way to go for good looking apps.
You know, a lot of people give .NET a lot of scuff for being a bloated language (insert 15 other insults here) but it really CAN work well for applications in a professional environment. But then again it is always about what computer language you know the best.<p>That being said I also think Delphi is another great alternative! I personally have never used it but I have seen a lot of applications that I admire admit to using it for development.
I'm a Microsoft developer. I'd suggest using the .NET framework with WPF or Winforms for the speed of development. Plus there are tons of examples and tutorials to help you along the way. Also hands down Visual Studio is one of the best IDE's available. (no flames please)
For fast development I'd suggest Python and PySide or wxPython if there are some numerical parts that need to be fast use NumPy, SciPy and the PyPy interpreter instead of the regular Python interpreter.