I've been reading about Windows Presentation Foundation (WPF) for a while and, while at DevConnections this week, I've attended a few sessions on the topic and to this day I still have mixed feelings about this new technology.
On one hand I am really excited to see work done for smart clients and the user interface in Windows. The fact that WPF takes into account new graphics hardware available on most machines these days is really nice. WPF uses Direct X instead of GDI+ to render images on the display which turns into faster rendering even for more complex UIs. The Expression Blend product targeted for designers is also a nice addition that hopefully will help developers and UI designers to work together resulting in better applications for the user.
On the other hand I am disappointed Microsoft has lowered the abstraction layer instead of raising it. Most of the sessions and reading that I've seen on WPF focuses on how easy it is to do buttons, gradients, nested controls, stack panels, and such. Gosh! that's not very productive. I am eager to provide better and more polished user interfaces to our users but I cannot believe that in the year 2007 we are attending sessions on how to do gradients and nested controls. I wish MS had provided much richer environment on top of the basic functionality that they've created.
The lack of a data grid is another issue that I struggle with. The new controls allow you to create your own grid and bind it to data but why do we have to do that. Why isn't there a native data grid in VS 2008 is beyond me. Fortunately a lot of third parties are filling this vacuum and providing data grids for WPF and some of them are (at least for now) free.
I am really pleased to see that we can mix and match classic Windows forms with WPF in the same application. This would allow us to start migrating to the new UI paradigm slowly rather than starting from scratch.