Microsoft Pivot Blog Viewer

26. July 2010

Ok, I built something I am excited about. The one biggest gripe I’ve had with blogs is that it’s often hard to sort and filter the posts to find the posts I’m most interested in. In comes Microsoft Pivot. Microsoft Pivot allows for viewing data in an intuitive filterable manner in a completely visual context. Incredibly cool for filtering images, magazines, or even the magic the gathering card collection. Take that single column blog lists!

My idea last night is to view blogs through Pivot. I set about programming the cXML schema into a series of .Net classes, and then built an input mechanism to build a static cXML file with my blogs postings. It’s still in the early phase of just the roughest information, mainly blog title and descriptions, but given another day of polishing will have additional meta data with appropriate blog links. I also realize how terrible my categories are since the Pivot category filtering is very limited with my junk data input.

Below is a screen shot of the very rough data output I created with cXML for viewing in Microsoft Pivot. Now that I have my framework together I can expand the idea to anything with categories.

PivotBlog

I will keep the cXML path displayed in the Pivot screenshot so if you’re interested you can also view the generated blog Pivot output as it goes through the transition to getting cleaned up totally.

Programming, .Net, Third Party Controls

Telerik – RadControls or more appropriately BadControls…

24. March 2009
1331911801_6f960ea238_o

 

I’ve been a user of the Telerik RadControls for ASP.Net, RadControls for Winforms, and Reporting tools for the last few months. I’ve been using them since Q2 2008 to the latest release of Q3 2008.

In the last few months I can say this in no simpler terms that if you use any of the RadControls expect to be extremely irritated with the flat uselessness of these controls in any practical application scenario. Add a few multitudes of annoyance when you begin building composite control applications using RadControls as they do not interact well in abundance. I especially found the absolute worst case to be with the Telerik Reporting that is just not suitable for any reporting scenario inside of a corporate environment, let alone any business environment. Perhaps the reporting tools would be good for play toys by some stay at home moms to make flyers for the umpteen number of fundraisers that may happen in a child's life.

I don’t say this lightly. I’ve garnered my fair share of ‘Telerik’ points, the points awarded for discovering (don’t let me make that sound like a challenge) problems or quirks that otherwise do not function as expected when using Telerik controls. The worse of all is the ease at which I've found these problems countered with the sheer number of man hours spent determining whether it was my own doing (because of course I wouldn’t expect such a highly regarded toolset as being so shoddy), but of course speaking with the Telerik’s support confirms my suspision that the tools just that bad. Don’t get me wrong Telerik’s support is fantastic for providing points quickly and effectively, and for the occasional gotty work-around to the problem that shouldn’t be there.

Telerik Reporting – Why you shouldn’t use it.

I’ll start with a simple example. If a developer were to use the Telerik Reporting don’t expect the reports to support out-of-process session state. This may not be a problem for some company/personal sites because of the lack for scalable websites, but becomes a deal breaker for any self respecting web architecture.

Why do they not support out-of-process?

Because of some serialization/deserialization problems that cause the Telerik reports to throw a nice reflection error on page rendering. The error itself isn’t a page level error but an error caught only by the Global.asax’s Application_Error event. The great thing about the exception is when a custom error page is used on the site that same custom error page will display within the report viewer where one would expect their report to be generated. The error itself is something very generic, if you handle the Server.GetLastError() in the Global.asax file, the description is something like “A list corresponding to the selected DataMember was not found.” Thanks captain obvious error I really can pin that down quickly.

I will give them this they made reports class objects instead of something like the typed XML format of RDLC, which leads way to more dynamic instantiation of custom report classes, but at the same time they’re not much in the current form.

Another funny thing about the RadReports is the fact that each report can be bound to a DataSet, but the report itself will only handle ONE DataTable from within the DataSet. At least RDLC you can just add a new panel/table and bind to X number of DataTables from within the bound DataSet datasource. Telerik on the other hand requires that you create a sub-report that you then bind to another DataSet, and again only one DataTable from that DataSet is allowed to be used to bind controls to. This becomes incredibly annoying when trying to create a simple order report with a ‘header data’ table, and an itemized ‘detail data’ table inside one report. Instead you have to create a master report for the header table, a sub-report for the itemized data, and mix in the lack of support for out-of-process its massive headache.

There is a work-around, not great, but i’ll touch on it here. After having bound the DataSet to the report, bound the textboxes/report controls, remove the DataMember property of the report settings, and then dynamically handle the on-demand datasource event of the report. The problem you get into in that situation is you then have to do the same for all the sub-reports by going through the same process, and then handling the data binding for the sub-report within the demand datasource of the master report. The end result is twice the data retrieval calls necessary to create a report that could be handled by support multiple DataTable bindings from a single bound DataSet to a report.

For any scenario used for generating business reports, reports with drill-through, or multi-table application just do yourself a favor and skip right over Telerik Reporting. Don’t believe me? Well check out the Telerik Reporting ‘forums/documentation’ on-line and find one sample or one thread talking about mulit-datasource reports. Find one that implements something other than a SqlDataSource page level datasource. Go ahead… i’ll wait. Back already?

Anyway, supposedly Telerik says the out-of-process problem will be resolved in Q1 2009 release, but we’ll see. It didn’t do us a lot of good at the time since it took about six days bouncing back and forth with support (gap over the weekend), creating test projects for them, and to finally discover they just don’t support out-of-process session data. When all was said and done we ditched Telerik Reporting for RDLC. RDLC may not be pretty, but at least it’s dependable.

Next Post – ASP.Net BadControls! Stay tuned…

I think I'll conclude part 1 of my Telerik experience post. I’ll follow up with my infamous experience using RadControls for ASP.Net! I can’t wait to share more about the RadMenu that touts templated items, multi-column menu, but none of that is supported with load-on-demand from web services. I’ll talk about the attributes that don’t carry over on RadMenu, the RadTreeView viewstate client disconnected bombs, RadSplitters looking like what President Obama would say ‘Special Olypmic's’ in non-IE browsers, and much much more.

PS. Needless to say if you want to save yourself time try Infragistics, been a few years since i last used them, but at least they weren’t as bad as Telerik has been. It could be just me, but i doubt it. Hopefully Q1 2009 brings much needed improvement.

ASP.Net, Third Party Controls, Programming