I'm about to create an open source desktop application. I'm primarily a .NET developer , with experience in ASP.NET and SharePoint. I've created basic Windows Forms applications before, but I have never developed using WPF or Silverlight before. I want a compelling, highly interactive UI for my desktop application. What are my technology choices for doing this, using .NET? In particular, is HTML5 something I should be considering?
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
If you are unfamiliar with WPF, I recommend Windows Presentation Foundation Unleashed.
WPF allows for content in web browsers or standard windows applications.
WPF also is resolution independent - the content on a mobile device has the same crisp look as the content on a 50 inch tv.
Windows Forms is limited when it comes to a highly interactive UI development compared to WPF.
I always give this advice to any developer that wants to build something on his own: focus on building the product, don't spend a large amount of time on thinking what technology to choose. There is no 100% right answer for your question because you didn't specified what the application will do, what kind of problem will solve.
My personal point of view: HTML 5 is not yet suitable for desktop applications. Just go with WPF, build an awesome desktop product, please some users, find some people to work with. Later you can consider building a HTML5 version of your application. Good luck!
Frankly, if you look around, the desktop application landscape is in complete and total flux. There are unverified rumors that future Silverlight support is wavering and according to an ex (and potentially disgruntled) MS project manager it is effectively dead, WPF is getting a younger, cooler brother with a much larger friends list in Windows 8 (WinRT), and Windows Forms can't deliver modern application experiences.
So, while I agree that today Silverlight/WPF are the best choices for a Rich Desktop UI in .NET, if you're interested in future-proofing your project and, perhaps, your career, I would urge you to consider implementing it as an HTML 5 application following an approach similar to the Microsoft Patterns & Practices Group's Project Silk.