Content Query Web Part (CQWP) is probably the best solution for data aggregation within SharePoint 2007 solutions. The limited functionality exposed through the standard UI is compensated by caching and high performance of the CQWP. Yet there is one thing that can keep you off using the CQWP in environments which require you to deploy your solutions including the configuration in a fully structured and repeatable manner.
Recently I have published the extended version of the Content Query Web Part which supports paging the results. As promised I'm going to provide a series of 'How I did it' articles to provide you some more details about my approach. In this article I will focus on getting the paging done inside the Content Query Web Part.
Developing custom Web Parts which leverage the concept of separating the presentation layer from the control provides you and your customer with great flexibility. Web Parts which produce XML output and render it using an XSL stylesheet given by the end user can be easily reused in multiple projects saving you in some cases some time. While working on the Extended Content Query Web Part I took a look at the performance of the XSL transforms and I have found out that there are thing to be considered while using that concept.
We all know the Content Query Web Part shipped with MOSS 2007. It is so far the best content aggregation solution available. While it is extremely flexible and allows you to define your own presentation layer, it lacks some basic aggregation features like results paging and dynamic content filtering. While Andrew Connell has presented recently a nice approach to achieve last one, I have decided to focus on the paging functionality.
During the Office Developer Conference 2008 I have attended a great presentation on high performance SharePoint 2007 solutions by Andrew Connell. And although I've heard a few times before that if you care for performance of your solution, and obviously you should if you're responsible for delivering Internet-facing Publishing Sites in SharePoint 2007, it became clear to me once again: one of the best aggregation solutions out there you should use is the Content Query Web Part... or isn't it?