Recently both Paul Stovell and Joseph Cooney blogged about one very interesting topic - "Do people really need grid controls in WPF?". They're saying that people actually don't need grids in WPF and this is what makes their blog posts worth reading. Imagine if they had said the opposite: "People need grid controls for WPF!". It would have been quite boring and wouldn’t have spurred much of a discussion. For many people the idea of not having grids for WPF sounds unconventional but Paul made an interesting parallel to justify his claim "Using grids in WPF is like buying a Ferrari to pick up milk from the deli".
I deeply respect both Joseph Cooney and Paul Stovell. Btw, Paul has made a great library called Bindable LINQ (a.k.a. SyncLINQ) and his "Big 'A' Architect" software super villain is my favorite. I agree with them but to the extent that people don't need conventional Grids, ComboBoxes, ListBoxes, TreeViews, Menus and Tab controls in WPF. To clarify my point, “conventional” for me means "non-lookless" (or should I say "lookful"?) WPF components which don’t offer a solid performance and which are rigid when it comes to UI customization. People really don't need such components, and especially Grids. My belief is that people need grids which have completely modifiable UI and which could easily be made to look like something different but still having the grid features which people actually need and to which they are accustomed.
While many people dream about the future and see everyone using Carousels, Cubes, CoverFlows, etc. or about replacing the plain old mouse and keyboard with Surface, LaserTouch, the Wii remote, Minority Report-like gloves or Augmented Reality stuff, many people are not ready for radical changes in the way they see data and they work with it. For many people it has to come as an evolution, not a revolution (even though I've always envied the revolutionaries :).
Even if we assume that the table layout is a bit outdated as a UI visualization, people will still need the functionality which stays "behind the tables". They need sorting, grouping, aggregates, filtering, concurrency, selection, editing, hierarchy, etc. The problem is that once we want to have all of these features at a single place we can't escape much from the tabular view. Let alone that for most users it is expected. That's the way life goes. After all most of the time we're binding to relational data, right? My argument would be that we need WPF Grids and that we can enhance it with fancy animations, visuals, transformations and so on so that we have a brand new experience. And what’s most important, if the Grid is lookless, this will allow developers to morph their UI accordingly when new UI paradigms emerge. And this could all happen without them re-working everything.
As we firmly believe that the WPF Grid is here to stay, and we agree with most of the points that Paul Stovell and Joseph Cooney made, we tried to bridge things – make a heavy-duty Grid has tons of features that loads millions of records truly fast, which is lookless and is completely stylable in Blend. That is, a Grid that is not shaped by us, but by you and which allows you to deliver new experiences based on your needs. Think of it as a parking lot full of different vehicles – you can pick which one to use for each occasion.
In case you've missed our WPF controls beta release here's the place to remind you that you can already download it and give it a try. It's an early beta but now it's the best time to get your feedback and make the necessary corrections.