Review: Telerik Control Suite

Posted: January 8, 2007 in Technical

        If you spend enough time coding UIs you will get a chance to play with a number of control suites. Be it ASP.Net or Winform, there are a lot of control sets of varying prices. Most offer significant advances over the standard windows controls which can be extremely limited in some cases. I have had a chance to play with a lot of them but recently I had a need to use the ASP.Net R.A.D. grid and Treeview controls from Telerik.
        I have to say, I have never had quite the same amount of extreme pain, and pleasure at the same time (as far far coding goes). So without further ado, let me go into some of the scenarios I ran into and my thoughts.
        1. Basic data binding (Grid)- This was releatively simple as you would expect and not much different from the standard grid. The code behind intellisense is nice however, one of the most significant issues I had across the board, was their HTML view intellisense. I was hoping the install of these on my machine would do whatever it needed to make this work on all my projects, however i still had to go into the HTM and add references to their intellisense files. Not dofficult to do but once you do this for every page that uses their controls (which you will do when you are learning these controls) it quickly becomes a PITA. However, not rocket science I quickly go through this and moved on with my life.
       2. Self-Referencing Hiearchy (Grid) – The specific application had a table that required a self referencing hierachy. It could be 1 to x levels deep. The good news is that the Telerik controls provide this capability. It is surprisingly easy to hook up. However, I quickly started to get a HUGE amount of messy errors out of the controls themselves. After a couple rounds of emails/posting with support crew at Telerik they located the error (and it was a product flaw), fixed it, and issued a whole new release of their product (2-4 days total time). Once I got this working, I tried to format the look and feel to the VERY specific needs ot my client. This is the one area where I found some serious issues with the controls in general. I will go through in the summary how seriously I hold this but lets say, self referencing hierarchy ended up not being viable because it could only take us 95% of the way to where wer needed to be.
     3. Grouping (Grid) – On another page we had a need to group data in a treeview like collapseable look and feel. Once again this is simplete to set up. We set up a 2 level hierachy and was good to go. A couple formatting issues do exist with this but they were acceptable by the client. Then the client pulled out their entire prod level dataset (800+ entries). Thats when all hell broke loose. We started getting sporadic errors on the first post of the page only (a resubmit, or refresh fixed). We traced them to the control itself and from the description, it looked as though the control was doing some type of threading that created a group of table dymanically based on the grouping) (keep in mind this is an educated guess based on error messages NOT from seeing the codebase)in which it violated from ADO.Net rules and tried to add a table to an ADO.Net dataset that already existing in that dataset. This was an issue the support team at Telerik was unable to reproduced but we were ale to consitantly reproduce on 3 seperate dev environments on our site. In the end these support role was eating too much time and we opted out of grouping altogether.
   4. TreeView Custom Templates (TreeView) – These are setup to allow you do to some drastic formatting on the treeview control and the way it displays the tree view. This allows a HUGE amount of flexibility in the display. It really is a good feature. We did not get a lot of time to play with is however, We could not get it to meet the VERY specific requirements of our client a quickly abondoned it for a very customized view of the datagrid.
   5. Custom Templates (Grid) – The grid is extremely customizable. IMO this is one of it’s greates strengths. With the use of the nice set of event handlers, and the HTML view customizations (similar to the template columns on the ASP.Net datagrid), you can do a pretty suite deal of custmizations. This was the route we went on the control where we had to abandon the TreeView custm template and self referencing hierarchy. We were able to quickly meet the customer UI specifications.  One HUGE warning though. Be careful on the security setting on your server with this. Some of these  event handlers do something with threading that standard security settings may not like. We could never determine exactly what it was doing but gradually opened security (still well within acceptable tolerances) until it functioned.
 
 Summary
     This control suite (at least the part i dealt with ) is EXTREMELY flexible. It has a huge amount of features and customization points. This in the end is its greatest strength and weakness. WIth so many areas so many different way they can be used, there is no way they could catch everything and indeed they released 3 new versions in the months we worked on this project. Since we had issues getting different versions to exist on the same production servers (for legacy apps), this became an issue. Further more, while their support is IMO VERY nice their location on the other side of the world (and clock) from the US can be a serious issue if you are on a project that is on a very tight schedule as there will be a 24 hour sdelay in any response for their US customers.  That being said, if you have the time, they WILL sort out the issue quicker than most companies do and get it out to you.
     My recomendation is, if you are not currently constrained by a tight schedule, this control suite would be a very good buy for your organization. If you can invest the time to learn how to use these (their examples are not the best, nor are the online tech threads), and get good at the various customizations, CSS, skins, etc you will not regret it. These controls are so flexible, with the time for the learning curve you will be able to make them do whatever you want them do. Surprisingly, they performed very well in terms of load time (even with a LARGE amount of data in the ViewState). I would put them on the top of my list for controls in ASP.Net (right with the Infragistics controls). Althought I cannot stress enough, if you are on a critical project and cannot afford a learning curve in your schedule do NOT include these controls on your current project, your staff will have to work heroic hours or your schedule will slip.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s