
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.