Tim Sneath's recent observations about WinForms are dead on: "It's got everything you'll need to turn out a well-designed, service-orientated client application... It'll be around and supported for many years to come, there's a great ecosystem of controls and plenty of trained developers."
The persistent importance of WinForms is even more obvious with the February CTP release of Windows Presentation Foundation. This release is supposed to be complete for version 1 of the WPF. We are told that there will be no more breaking changes and no more features. That means we can step back and examine what it's missing. Among the more obvious omissions in contrast to WinForms:
- WPF has no font dialog.
- WPF has no color dialog.
- WPF has no support for graphics metafiles (WMF and EMF).
- WPF has no up-down control (a.k.a. spin button).
- WPF has no "simple" mode of the combo box (where the list stays permanently down).
- WPF has no split button for toolbars.
- WPF has no date/time controls of any type.
- WPF has nothing that comes anywhere close to the DataGridView control or BindingNavigator, two of the prominant enhancements to WinForms 2.0.
Of course, third-party developers are likely to fill in the gaps, but the omissions of these basic tools indicate how unfinished WPF will be when it's released, and how much stuff will need to be added to version 2 (whenever that will be). The foundation of WPF appears very solid, of course. (I'm thinking of dependency properties and routed events and XAML.) And there are lots of cool features in WPF, particularly with graphics and animation. But for many applications, WinForms is still the easier and faster platform.
To me, WinForms remains the "default" platform for client apps. WinForms is the one to use for new applications unless there's a reason to use something else.