Monday, July 6, 2009

Telerik RadControls Review: First Impressions

Their marketing is aggressive and sometimes cheesy, but their products certainly are not. The Sofia, Bulgaria based Telerik is perhaps the best known .NET developer tool shop after Microsoft itself *. In early 2008 they released a new control library suite, RadControls For ASP.NET AJAX. The suite is large not only in the number of controls but also in its depth. Each of the 20-something controls has an amazing feature set, and most of the time it is possible to accomplish your objective in multiple ways. This is also the hardest part to swallow. For a newcomer, RadControls is not simple compared to the default ASP.NET controls. It takes time to learn enough of each control to get your job done, and each new version of RadControls has a tendency to break something that worked in the previous version. It is not fun, but it is something you'll probably have to deal with any 3rd party component library.

* DevExpress being the other contender

Writing a comprehensive, yet up-to-date review of a control toolkit is extremely hard and equally foolish. Software is soft, it changes all the time. There is no way on earth that a blogger equipped with a laptop and a quiet evening could even realize what design issues are behind these kinds of products. But I have used the toolkit regularly for about a year, our company has paid good money for it, and consequently, I have the right to complain for any reason. These reasons may be that I have made mistakes, or they may sign that the product has rough edges.

I won't bother you with the basic stuff you can see from the demos or read from the generally high quality Telerik documentation. (Advanced stuff you'll find in the Telerik forums, not in the documentation.) For the most part I've used the server-side APIs, the ones that are used in a classic ASP.NET style by setting up controls and wiring up postback events. Nothing new there. The reason for toolkit's AJAX moniker is that each RadControl now has a client-side API too. This API overlaps the server-side API somewhat but is not a proper subset. This means that you must use the client-side API for client-side features like drag and drop support. And you must learn to use Javascript to manipulate the controls and to make AJAX requests back to the server. Integration with Javascript makes developer experience a little rough but you really can't blame Telerik for it.

Because there may never be "final words" to this review, I'd better begin with the opinionated part:
Telerik RadControls is there to improve your worst stuff, not your best. If you are serious on web development, you'll write the good stuff yourself. Make no mistake about it, and the Telerik suite will be a good companion

Now, we can move on.


1. Does it look good?

Without 3rd party web controls every ASP.NET business app would be using these crappy default controls:




Instead, we can please our customers with these...




Telerik controls do look good, our salesman loves them, and we do get very positive first reactions from our customers. But first reactions won't impress anyone long and the real test is if the users are happy in the long term. Typically in business software satisfaction means silence, as no one is complaining about your application, which leads us to the next topic...


2. Does it cause unexpected support calls?

I've used four major versions (Q1 2008 - Q1 2009) and there has been a couple of support calls. RadControls for ASP.NET AJAX is a new and evolving toolset. Not surprisingly, there is considerable variation in stability and feature-completeness of the different controls.

Some of the issues surface after upgrades, especially with completely new controls like the Scheduler. A few examples.
  • In Q1 2009 version the Gray skin was dumped. God knows why. Now, if you had defined a skin="gray" in any of the dozens of controls in the code, you would get a nasty runtime error. No excuses here, at least they could have fell back to the default skin.
  • Scheduler has lived a lot. Q1 2009 had nice improvements in how you can color-code resources. Color-coding is needed for example when you have multiple persons in a calendar view and want each person to have a different color. But again, after this improvement was made the old scheme of coloring things went broke. This was the second time I lost resource coloring in the Scheduler, first time due to CSS changes. But I think the feature has settled now.
As far as I can tell, upgrades have not caused any serious support calls. The most serious ones have come from bugs, and the only fix then has been to revert back to the regular ASP.NET controls.

Let me give a specific example. Perhaps the most commonly used (and abused) radcontrol would be the RadWindow, aka the DHTML popup. You can use RadWindow to get rid of window.open() popup windows that normally would invoke the browser's popup blocker. But we haven't found RadWindow reliable enough to replace all popup windows. There has been problems in situations where the underlying page scrolls down and has in-page anchors. Confused users have lost the RadWindow's toolbar and have not been able to close it. Another problem with all DHTML popups is that the browser window that hosts the DHTML popup has to be large enough for the popup to fit properly. These issues make you wary to use RadWindow. And there are probably better ASP.NET AJAX popup controls around.

Last, browser compatibility is little risky. Last time I tested the Scheduler, there were substantial differences on the size of the month view grid cells across browsers. Because you can define an absolute pixel size for the grid, some browsers show a scrollbar and others do not. This is a minor issue that you face when you try to use a given resolution efficiently. But perhaps the biggest difference between browsers these days is in Javascript performance. If you have multiple data-intensive RadControls in the same screen, you are going to see a HUGE preformance (and usability) difference between, say, Chrome and IE6.


3. Is it developer friendly?

For the developers, installation is straightforward. There is exactly one file to distribute with your web application, Telerik.Web.UI.dll. This dll is quite large, over 13MB and it contains everything: ASP.NET controls, graphics, css and javascript. For the developer machine, the installer will provide example projects and Visual Studio designer support.

As mentioned earlier, developing for the Javascript API is radically different from the server-side .NET API. You should equip yourself with a javascript debugger (Firebug) and find the best setup for javascript development. For example, I mostly work with DotNetNuke modules that are ascx controls. Visual Studio 2008 javascript debugging does not work in this environment at all. Only reasonable setup I have found is to write javascript code in a script block inside the ascx file, not in a separate .js file, and test it with Firebug.

Telerik has really understood the meaning of developer support. They are offering basically free support for everyone, customers and trial users alike. This is amazing and they have done it right. The cornerstone of Telerik support are the forums where Telerik staff is actively present helping their users. Solving the users' actual technical problems creates a lot of real value. For developer tools, there is no better alternative. Simplified examples and otherwise high-quality documentation are just not good enough these days. Users of developer tools are familiar with searching for bits here and there and reading a lot. And writing good questions.

I work in a SaaS company myself, and I know what it means to do both development and support. For most of the time, it sucks. You try to focus on your development effort, keep deadlines and all, but the phone keeps ringing and !-flagged email keeps coming. I don't remember a single day I could have planned my work. The urgent always overrides the important. It takes service design to overcome this mess and I think Telerik has succeeded here well. I mean, they provide better service for free than we could ever manage to provide for money.

On the other hand, I think it is a matter of survival in the developer tools business to have high quality support. It is a global market where only the best can exist. If a commercial tool has worse support than free or open source alternatives, there is no reason to pay anything.


4. What your money does not buy?

If you look at recommendations on how to buy software, there is one thing that Telerik does not have. There is no money-back guarantee. DevExpress products do have a 60-day money back guarantee, so in this respect Telerik is definitely worse.

Trial version of RadControls is fully functional but will occasionally show trial licence information to the end user.

Also, if you want the source code of RadControls included, you'll have to buy a developer licence with subscription and priority support. Telerik Premium collection bundle does have one-year subscription and support, but with the cheapest RadControls for ASP.NET AJAX licence you won't get source code or major (quartal) version updates.


-mika-

2 comments:

Anonymous said...

Hi Mika,

I can't find a private link to contact you, so I'll have to do it here in your comments :)

I read your review of the Telerik controls and I noted that you compared the suite in some places to the DevExpress controls.

Would you be interested in reviewing the DevExpress tools also, to complete your comparison?

Let me know and I will be glad to help you.

Best wishes,
Rachel.

Rachel Hawley
Community Evangelist
rachelh@devexpress.com

-mika- said...

Hi Rachel,

Thank you for your interest and sorry for the missing contact information.

I've heard a lot of good of the DevExpress controls but haven't had a chance to try them yet. I definitely would be interested in reviewing the toolkit.

In practice I'm currently fully employed with work, with little time for personal projects. Getting to know DevExpress tools would certainly take some time before I could write a review.

-mika-