Sitefinity CMS

RadControls for ASP.Net AJAX Send comments on this topic.
See Also
Sitefinity Building Parts > Controls > Public Controls > RadControls for ASP.Net AJAX

Glossary Item Box

This topic provides some introductory information about the new generation of RadControls for ASP.Net AJAX (formerly "Prometheus"). Usage instructions and recommendations are also included.

 

What are the RadControls for ASP.Net AJAX?

These new controls are built entirely on top of ASP.NET AJAX, utilizing its common client-side framework and programming model. The toolset leverages completely the framework-level functionality of Microsoft ASP.NET AJAX and offers similar programming model on the client and on the server. RadControls for ASP.Net AJAX allow for the introduction of a number of new features and performance optimizations, which are hard or impossible to implement in the regular ASP.NET suite. The integration and API models of the controls is also be better, due to the common framework they share (the new controls are shipped as a single assembly - Telerik.Web.UI dll.).

RadControls for ASP.Net AJAX will work only on ASP.NET 2.0 and 3.5 because of the underlying ASP.NET AJAX framework.

 

What is the Difference between the Two Generations of RadControls?

 Following is a description of the specific differences between the two versions:

  • RadControls for ASP.Net AJAX use a single assembly and shared scripts, whereas each control in RadControls for ASP.NET has its own assembly, scripts, resource file, and so on. These shared resources and the simplified single-assembly approach should make the controls easier to work with. The single assembly is Telerik.Web.UI.
  • RadControls for ASP.Net AJAX are built on top of ASP.NET AJAX and the client-side model of the controls is based on the framework, whereas RadControls for ASP.NET use a custom implementation.
  • RadControls for ASP.Net AJAX require ASP.NET AJAX in an application whereas RadControls for ASP.NET work independently of Microsoft’s framework.
  • RadControls for ASP.Net AJAX have improved semantic HTML markup.

There are three general aspects in which we could compare the two versions:

  • Visual Characteristics - there is no difference between the appearances of each of the controls and their counterparts.
  • Usage - there is no difference between the usage of both types of RadControls. The only different thing is that all RadControls for ASP.Net AJAX are in one assembly which improves the ease of controls' declaration.
  • Performance - the AJAX technology implemented in the RadControls for ASP.Net AJAX provides for a much better performance.

 

Which RadControls for ASP.Net AJAX are Included in the Admin Part of Sitefinity 3.2?

The controls that are part of the new suite and are available in Sitefinity 3.2 are: RadEditor, RadChart, RadCalendar, RadWindow, RadTooltip, RadUpload (only in the Images and Documents module).

 

How to Choose Which RadControls to Use in Projects?

The two types of RadControls could coexist in an application. Still, the recommendation is to start adopting the AJAX counterparts of existing controls in all new applications. In the long run, Telerik plans to focus mainly on the new suite in regard to feature enhancements and exclusive support.

 

What Settings Should be Made to Use AJAX Controls?

Sitefinity 3.2 includes a reference to the RadControls for ASP.Net AJAX which allows for their usage in a Sitefinity project. However, the RadControls provided in the Toolbox in the Admin part of Sitefinity are still part of the old version of controls. In order to enable AJAX controls, a setting in the web.config file should be made so that the controls appear in the Toolbox.

web.config Copy Code
<telerik>
 
<cms ...>
   
...
   
<toolboxControls>
     
<clear/>
     
...  
     
<add name="RadMenu" section="RadControls for ASP.Net AJAX" type="Telerik.Web.UI.RadMenu, Telerik.Web.UI" />
     
...

 

There are development changes that are important to have in mind when working with AJAX controls:

  • Since RadControls for ASP.Net AJAX are built on top of Asp.Net AJAX, a ScriptManager should be added to the master page of the page using them.
  • There is no longer a configuration file but only a tools file for the AJAX RadEditor. For the old version, both of these files were available: EditorConfigFile and EditorToolsFile.xml, located in the ~/Sitefinity/Admin/ControlTemplates/ folder. Now, for the AJAX RadEditor, there will be only an EditorToolsFile.xml file. 

 

RadEditor Settings

The EditorToolsFileAll.xml file provides examples of all possible settings for the RadEditor control.

For more information on the changes made to the classic RadEditor and new features introduced to the new one, see Migration from RadEditor Classic to RadEditor for ASP.NET AJAX

Settings made in the RadEditor instances in the control templates override the settings in the editor tools file.

  

Known Issues

Using AJAX RadUpload, there is a known issue when uploading files with sizes higher than the predefined limits. This issue could not be handled to produce a user-friendly output.  

The property that denotes the limits is maxRequestLength. After uploading files with total size larger than maxRequestLength, the shown error is the framework default error - "Page not found". In order to work around this issue, this attribute could be set to the largest allowed combined file size for the application (the default one is 4 MB).  However, this limit can be used to prevent denial of service attacks that are caused, for example, by users posting large files to the server. Therefore, this means that, if the limit is set to a value which is too high, there could be a security issue when too many users attempt to upload heavily-sized files. That is why this workaround may not be appropriate for applications where uploading is expected to be a main activity of many users.

 

Unlike maxRequestLength, the AJAX RadUpload property MaxFileSize <FileValidation.html>  specifies the maximum size for each of the uploaded files in bytes. The maxRequestLength specifies the limit for the input stream buffering threshold in KB.

 

See Also