For those who saw my WPF presentation at the Cincinnati Local Launch event, here is the sample project.
To recap the slides, here is what is missing of consequence (imho) from WPF (at least in this release):
- DataGridView - there are third party controls, and you can roll your own similar construct, but you won't near the feature set (nor the headaches) of the WinForms version
- ErrorProvider and HelpProvider controls
- AutoComplete - this is supported for DisplayMemberPath of the Items collection, but does not contain the outside functionality contained in the WinForms versions
- ExtenderProviders - if you make extensive utilization of these in your WinForms (and if you're not, you should be), we will have to discover another way of replicating this
- MDI layouts - total lack of support. However, the real question is "Do you need MDI support, or are you comfortable with MDI application design?" I know that I am comfortable with MDI, not sure that I need it.
So, Why WPF if it's missing all these items? Simple. You get a TON of features and functionality (and they actually work!). Here's what's in:
- No longer dependent on GDI/GDI+ (and also removed most of the dependency on User32)
- Resolution Independence
- Leaps ahead with binding (element binding as well as databinding)
- Flexible flow layout model
- Out of the Box document handling features (wrapping, columns, etc)
- True animation - no longer timer based
- Audio Visual support
- Styles and Templates for Windows and Controls
- Declarative UI (XAML)
- Routed Events (Bubbling Up and Tunneling Down)
After I finish my backlog of posts on Unit Testing and TDD, I will be converting one of my apps from WinForms to WPF, and documenting the ups and downs along the way here.