RadHtmlChart vs. RadChart – Which ASP.NET AJAX Control to Use for My Project?

by ASP.NET AJAX Team | Comments 9

You may have already seen it, but just in case – take a look at our new HTML5 charting control that was introduced with the Q2 2012 release of Telerik’s ASP.NET AJAX controls. Its online demos are the perfect starting point.

One may wonder what the benefits of having the new Chart over the current one are. This blog post will explain the main differences between them so that you can choose the one that fits your scenario better.

First and foremost – the new RadHtmlChart renders entirely on the client through JavaScript. This is its most important performance benefit – the server no longer has to execute the expensive operations related to creating the image. This performance improvement can be felt immediately on the page.

The client-side rendering allows the control to employ client-side databinding as well and you get it by using a simple server datasource straight out of the box. Moreover, only serialized data is sent to the client instead of entire images which also reduces the size of the content that needs to be transferred. To make things even better – data can be loaded on demand by calling a simple JavaScript function only when needed.

Closely related to the new rendering is the fact that the special charting handler in the web.config is no longer needed to stream the image.

Currently RadHtmlChart does not expose any export capabilities in contrast with RadChart. Still one can take the raw SVG and edit it in an external vector graphics editor.

We were striving to provide a modern, easy-to-use control and therefore we focused on creating a simpler and more intuitive markup structure. Individual aspects of the chart’s elements are usually controlled via inner tags that expose additional attribute properties to allow for fine-tuning of the functionality and appearance. If they are not needed a basic set of properties in the major tags controls the most important features without flooding the intellisense with a myriad of properties.

The new RadHtmlChart is still very new compared to RadChart which is a well-known and mature control. The younger sibling inevitably lacks some of the functionality that you are already used to. Zooming, scrolling, text wrapping, scale breaks, visual designer and some other features are not present, yet it makes up by automatically preparing its layout. RadChart requires that you turn on the AutoLayout property or manually configure each element in terms of size, paddings, borders, etc., while RadHtmlChart does this automatically.

A tabular version that compares some of the main features each control boasts is available below:

Feature

RadHtmlChart

RadChart

Uses latest web standards (SVG, CSS, JavaScript)

yes

no

Client-side rendering

yes

no

Consistent skins with the rest of the suite

yes

no

User experience (series highlighting, styled tooltips, interactive animations)

yes

no

Distinct series configuration for each series type

yes

no

Easy set up

yes

no

Load-on-demand

yes

no

Negative values support

yes

yes

Empty (missing) values support

yes

yes

Aautomatic layout adjustment

yes

yes

Multiple y-axes

In TODO list

yes

Logarithmic axis

no

yes, y-axis

Scale breaks

no

yes

Zooming and scrolling

no

yes

Additional fine-tuning of the appearance

Coming soon

yes

Server-side click events

no

yes

Client-side events

In TODO list

yes

Visual designer

In TODO list

yes

Export

no (*)

yes

Drilldown

yes (**)

yes (***)

 

* can be achieved with a method (also to be released soon) that returns the SVG and a library that can export it. Look forward to a Code Library project
** an online demo is coming soon, together with the client-side events
*** an online demo shows how to implement the functionality

The available series in RadChart are also more than those RadHtmlChart offers, but we are planning to add more types in the coming releases. The main difference is that the different series are now clearly separated and easy to use, since each has its own tag:

Chart type

RadHtmlChart

RadChart

Bar

yes

yes

Stacked Bar

yes

yes

Stacked Bar 100%

no

yes

Column

yes

yes

Stacked Column

yes

yes

Stacked Column 100%

no

yes

Pie

yes

yes

Point (Scatter)

yes

yes

Scatter Line

yes

no

Line

yes

yes

Area

coming soon

yes

Stacked Area

no

yes

Stacked Area 100%

no

yes

Spline Area

no

yes

Stacked Spline Area 100%

no

yes

Bubble

in TODO list

yes

CandleStick

no

yes

Gannt

no

yes

Bezier

no

yes

Spline

no

yes

 

In conclusion – RadHtmlChart is not a complete replacement for RadChart (yet), but it is going strongly towards that future.

Are there any features that you’d like to see in RadHtmlChart? Let us know, so that we can make a component that will best fit your needs. 

About the author

Marin Bratanov

Marin Bratanov

is a Support Officer in the ASP.NET AJAX division. Ever since he joined Telerik in early 2011 as a novice, his main focus has been improving the services and customer care the company offers. Apart from work, Marin is an avid reader and usually enjoys the worlds of fantasy and Sci-Fi literature.

9 Comments

Jon E
Hi Martin,
A very interesting article and in my case very timely.  I'm currently looking to getting rid of the DevExpress controls that we use for charting.  Nothing against them but I want to have a single provider of controls, historically I've used them as they look much more polished than the RadCharts (maybe the RadCharts just need some really good examples of how to apply more modern styling).
I'm finding that the HTMLChart component just cannot cope with anything other than basic operations.  For example I can't do much styling, I can't figure out how to have multiple series generated using a variable in a dataset (ie Type =1 series 1, if type =2 then series 2 etc).  Also the major issue that I will face, most charts will be also required on a set of reports so somehow I need to get the charts to render as an image that I can then insert into a report (all telerik based) - as it stands you cannot do that.
At the moment the control feels very much like a beta product but I can see with the right listening to your users  :) you should get a product that will be useful for us.
You missed of funnel charts from your list (not in either but easy to do as I just found out by doing my own one).
That all sounds a little negative but hopefully with feedback from us users you'll really be able to get this into a great product.
Cheers,
Jon
Svetlina Anati
Thank you for your feedback, Jon, we highly appreciate it!
We are very glad to hear that you find the idea of a new modern chart control useful for your development and we agree that this is only the first "baby" version of it and there is still much more to be added in time!
Straight to the points of your post:
1) Indeed, currently a scenario with combined different types of series is still not supported. Note, however, that not all series types can be combined in one chart and actually the combinable charts are not that many. Implementing ability to have combined charts will be based on the customer feedback we receive and you are the first one for now who requests this. We logged your feature request in our database for future consideration.
2) We will provide soon a KB\demo which shows export of RadHtmlChart to an image or pdf. Once this is available you could easily use it to export and reuse the chart wherever you want.
3) We have not received requests for funnel chart yet and we logged it for future consideration. 
Thank you once again for your cooperation and suggestions!
Jon E
Hi Svetlina,
I think you misunderstood - I'd only need the single type of chart but with say multiple series showing different data.
Fantastic re the demo - critical for my and I'm sure others adoption of teh control.
Yeah it's an easy enough one to do and suprsing that you haven't got one already given how many of the demos are of a CRM style.
Regards,
Jon
Svetlina Anati
Hi Jon,
Please, accept my apologies for the misunderstanding, I thought you ask for different series because for more than one series of the same type I had already answered you in your comment in previous blog post. I confirm that some of the existing databinding demos will be modified in this flavour for the upcoming SP which is scheduled for next week.
Regards,
Svetlina
Irvan Bastian
Hi Svetlina,

I'm using RadHtmlChat on my website.
but I have an user session issue when using data loading modes = FromCode.
do we have an OnLoad Event on server side?
Marin Bratanov
Hello Irvan,

This functionality is a bit limited so far and there isn't a server-side handler for this yet. We have been focusing on providing more common features like new chart types and appearance options.

What I can advise at this point is that you keep the default data loading mode. The datasource of each chart will be serialized on page load, but this is usually a string that is few KB large, so it will not diminish your site's performance (consider the ViewState, for example, and how it can easily surpass 300KB that are transferred with every postback, even partial ones).

The good news is that with Q1 2013 the charts will expose their datasource on the client, so you may find this useful for a future project.

Regards,
Marin Bratanov
Saumil Shah
We need multiple y-axis in RadHtmlChart control.
Srikanth
Hi,

I need server side click event for RadHtmlChart.. i.e I want to bind the corresponding data in telerik grid when i clicks on seriesitem.
how to get server side click event in RadHtmlChart ?

Comments

  1.    
      
      
       
  2. (optional, emails won't be shown on public pages)
  3. (optional)
Read more articles by ASP.NET AJAX Team - or - read latest articles in Developer Tools