I have to extend a big thank-you to Philly XAML for inviting me to some talk to you last Thursday. Shout out to John Angelini for leading Philly XAML, Dave Isbitski and Perficient for the pizza. I hope all of you enjoyed seeing our OLAP for Silverlight components as much as I did talking about them. It's not a stretch to say this is my favorite new product, and something I wish I had a year ago in my previous job. As a speaker, it's great to give a talk where everyone is engaged and interested. Dave posted a photo of me getting started, I think it was the last time I looked at my notes, and the last time the room was really calm. I had an awesome time, and I look forward to seeing you all again at other events and meetings! Share photos on twitter with Twitpic Follow-up Information The open beta is at http://www.componentone.com/SuperProducts/OLAPSilverlight/. All the samples I showed are in the download; documentation is found on the product page. There is no installation, just a simple download and un-zip, so your existing components won't be affected. If you want to see a very similar demo, I'm giving a webcast on Wednesday; full details are at http://www.componentone.com/SuperPages/Webcasts/?webcastID=164. There were several questions I couldn't answer, so I started an email thread that included our product manager, CTO development team lead. These are great questions, and we'll add samples to demonstrate these points as we get closer to the final release. 1. How does the C1.Silverlight.Data work? It looks like an ADO.NET Dataset, but what is it under the covers? C1.Silverlight.Data is our implementation of a subset of System.Data classes. It looks and acts just like an ADO.NET dataset, but can be included in Silverlight applications. There are a few other capabilities we've added, such as using reflection to create strongly-typed classes that can be used in bindings. (For those who weren't there-to make our samples easy to distribute, we load data from an XML file into a C1.Silverlight.Data dataset, and bind the dataset to the C1OlapPage). 2. What is the biggest data set we've thrown at this product? Can we test it with 500,000 rows? Development and testing are done with 30,000 rows and results are instantaneous (as we saw in the demos). With larger datasets, the main bottleneck has been data loading, not the OLAP part. Obviously, limiting the data retrieved and sent over the wire will do a lot for overall performance. Our OLAP for WinForms was tested using a sample database of around 1,000,000 rows and performed well. We haven't beat the Silverlight version up yet, but it uses the same OLAP engine to do the aggregations. When we get closer to release, we'll be sure to use some large datasets. If you try the beta against a dataset you have, let us know how it works; if it didn't perform to your standards, we'll do our best to improve it. 3. Is it possible to do a live update of the dataset somehow? Here is the answer from our CTO: "Absolutely. A common scenario would be to load data gradually using a RIA service. The OLAP view would be notified of the changes and would be updated automatically." 4. Is it possible to configure what data appears in the drill-down pop-up? E.g., can we limit the view to only certain columns in the dataset? Yes. The OLAP object model has a Fields collection that determines what gets displayed in the OlapPanel (pivot fields). You can remove items from that collection and they will be removed from the OLAP model altogether. 5. Can the individual controls on the C1OlapPanel be templated, like assigning background colors to the listboxes and such? The beta doesn't include the XAML templates,but the individual controls on the C1OlapPage can be modified "to your heart's content". 6. When will it be released? The final release is currently scheduled for 2011 v1, which will be in March, 2011. We are planning another beta update in roughly a month. There are a number of ways to keep track of the progress of our OLAP for Silverlight component:

7. Can multiple tables be used as a data source, or do we have to "flatten" the data? You need to combine the data into a single structure. This can be a data table, or the results of a Linq query (an IEnumerable), but the C1OlapEngine takes one single thing as input.