What are the top 3 main concepts in WPF that you need to understand in order to write good WPF code?
I duno about top 3 but Attached/Dependency properties is pretty important.
I can only think of two big main concepts in WPF
In no particular order:
- Bindings
- Templating and Styles
When you have learned those two concepts, you will be able to write decent WPF code...
Oh, and the third would be XAML.. but that is the language... however, you might want to try to put as little in the code behind and as much in your XAML file...
Its quite easy to choose the code behind approach, but try to do it in XAML in stead...
The real basics that you have to grok is:
- XAML
- Layout
- Content model
- Data binding
Their are loads more but these are the ones that has changed the most from winforms...
Also check out this thread: http://stackoverflow.com/questions/58739/interview-questions-wpf-developer
I think the most important aspects of WPF concepts are:
- Templates and Styles (the way you define the behaviour and appearence of your application)
- Databinding (the way you should glue together your UI with your business objects
- Declarative UI definition through XAML
Maybe there are other elements but in my opinion those are foundamental for WPF thinking.
I would say the single most important concept is the UI pattern Model-View-ViewModel, or as I like to call Model-View-ModelController. This is crucial to building apps successfully in WPF. Besides that, the real conerstones are Databinding, Templating, and Styles as others have mentioned. There is a nice post here on some common pitfalls to avoid when developing in wpf.