Thursday, July 01, 2010

Silverlight Pivot on Telerik TV

ttv-pivot Hot on the heels of this week’s official Microsoft release of Pivot for Silverlight, we have added experimental Pivot support to Telerik TV! For those unfamiliar, Pivot (and the related PivotViewer), is a powerful data visualization tool from Microsoft (for Silverlight 4) that makes it easy to visualize “collections” in a fun, powerful and engaging way. It relies on a combination of DeepZoom technology, XML, and the new PivotViewer UI control.

On Telerik TV, we have implemented experimental video search using a dynamic Pivot. Pivot collections and images are created and cached on the fly, using OpenAccess ORM on the backend, and then served via the Microsoft PivotViewer. The result is an incredibly rich and engaging approach to searching Telerik TV.

Clearly, this is very experimental and “beta” at this point. I’ll be publishing more details on the implementation soon (it took less than a day to implement the viewer), and we’ll be working on making the Pivot loading process faster and more robust. For now, Telerik is proud to be one of the first companies to deliver a Pivot-based implementation and we hope you enjoy the new view on Telerik TV!

Try Pivot video search now


Ben Hayat said...

Todd are you creating only one level of image tile (one tile/per image) and the CXML on the fly each time w/o saving them?

Todd Anglin said...

@Ben Because the source images in this pass are so small (about 120x70), it didn't make sense to generate excess tiles. In the future, we'll probably use higher res thumbs and do more sophisticated tile generation.

All CXML and ImageTile processing is handled by HttpHandlers. Results are cached for 24 hours (currently in memory, soon to disk) so there is less "heavy lifting" after the initial load.

I'll share more details as soon as I can. Hope you enjoy.


Ben Hayat said...

Todd, I was very impressed with the speed of development and a good way of implementing it for your application. Perhaps for the future (if you decide to optimize it) is to set the cache to "Never Expires", for all the existing XML files.

I think this project deserves a nice detailed blog with some sample codes. You guys are always first :-)
Thumbs up!