I have now been working full time in WPF for 5 weeks, and I just finished my first project. I thought I would post some insights:
[ ] WPF is awesome because if its flexability. The ability to host anything in anything opens so many doors.
[ ] Some of the things that I took for granted in WinForms reqire rething in WPF, such as TreeViews and base form classes, which I use alot.
[ ] IMHO, things like bindings and commands should be done in the code behind, because XAML doesn't provide for any logic. While you can declare bindings in the XAML, you can't do it conditionally.
[ ] There are alot of resources out there, but mostly in the form of blogs and forums. I nice list of "Here's How To Do "x" In WPF" would be really nice.
[ ] For beginners, I recommend two books:
WPF Illustrated. This is an excellent book. Coupled with
Pro WPF in C# 2010 and you'll do fine. The first is the quick & easy intro, and the second is an in-depth reference. I use both extensively and get alot from them.
I recommend
not getting
Windows Presentation Foundation, which I found to be overly verbose, lacking any real usefull examples, and difficult to read. I read it twice and still walked away very confused.
[ ] WPF throws some strange errors. I don't know how best to describe it other than to say it's going take more time with it to get used to the error reporting. Some messages appear in the Output window, some get thrown but require you to look at the inner exception to see what
really went wrong.
All told I really like it. Coupled with the MVVM pattern, I'm learning a whole new development paradigm.
Everything makes sense in someone's mind
public class SystemCrasher :ICrashable
In addition, an integer field is not for irrational people