Marc Firth wrote:
Which technology do you think is best to use for creating my desktop apps and why? Windows Presentation Foundation? Windows Forms? Other?
That's a tricky question, and not one that's easy to answer. First of all, let's address a misconception - WinForms aren't going to go away anytime soon, so learning them isn't going to be wasted effort. You'll still be able to develop desktop applications in them for a long time to come.
Now, saying that, I'd choose WPF over WinForms for a number of reasons.
1. While WinForms isn't going away, it's not going to be actively improved by MS, so you're stuck with what you get.
2. WPF makes it easier to create data bound applications. Rather than having to write lots of
string myValue = txtName.Text;
and
txtName.Text = dr[dr.GetOrdinal("MyValue")].ToString();
code, you can use two way databinding in WPF to good effect.
3. It's easy to change the look and feel of WPF applications.
4. If you want to move over to Silverlight, it's based on WPF so the transition is a lot easier.
5. Microsoft is actively targetting improving WPF, and is starting to use it in its own applications.
6. The infrastructure underlying WPF is a whole lot more powerful.