Despite the thread title, this is not meant to be a bash of Telerik. When it comes to AJAX, i believe their controls are second to none. However, there are a couple instances where I believe they can imporve. This all has to do with the use of their controls in medium trust environments. Now, I am not a network admin, nor do I know a great deal about webserver setup, so I am coming to this as a novice. However, I do know that the vast majority of third party hosts use medium trust in their environments, and it is even becoming more prevelant to use this in dedicated server systems. So I think it is a huge problem, and only getting bigger.
My understanding of the issue is that lmitations in MS AJAX itself (the framework upon which Rad Ajax is built) produce the problems. Ok, that is certainly credible. However, it is very dfficult to find info on this on the Terlik site. On the "changes and backward compatibility" section of the Ajax help files, there is a small section that deals with this titled "Full DNN support". If you don't use DNN, I don't know why this would ever catch your eye. Also, this is not just a DNN issue. It effects all sorts of functionality. Telerik has two recommended approaches to avoid these issues in medium trust environments. The first is to set the AjaxManager RestoreOriginalRenderDelegate property to False. The second is to inherit your page from RadAjaxPage instead of the ASP.NET Page class. I will have more comments on these solutions below....
In my case I was introduced to this problem when I was trying to dynamically load usercontrols (with Ajax) that had javascript on them. I, and I am sure lots of other people, have spent a great deal of time trying to figure out why this doesn't work, as was described in this forum thread:
http://www.telerik.com/community/forums/aspnet-ajax/ajax/radajax-manager-does-not-load-js-files-in-dynamically-loaded-user-control.aspx
there is also a blog relating to this issue, though the blogger doesn't seem to be responsive to comments.
http://blogs.telerik.com/tervelpeykov/posts/08-10-20/AJAX_Using_AJAX_to_load_a_usercontrol_that_has_JavaScript_declared_in_it.aspx
Anyhow, I was once again reintroduced to the Ajax limitations when trying to implement Telerik's ToolTipified grid example. I thought I was doing everyhting they were, but I just couldn't get the example to work properly. As it turns out, setting the AjaxManager RestoreOriginalRenderDelegate property to false did not allow the example to work properly. I haven't tested it out, but I bet a great deal of telerik's examples having to do with ajax don't work properly when this ajaxmanager property is set. So, in my opinion, this is not a particularly good solution to working in medium trust environments, if much of the functionality is limited or lost. And, as for inheriting from RadAjaxPage, I have not seen if that works perfectly, but it simply isn't an option in the majority of project I work on, becasue most of the projects I develop inherit from some other custom base class (not Page).
So, I have one suggestion and two questions regarding all fo this..
Suggestion: Please document these issues better. I'm sure its not a great sales practice to admit your product has problems in a widespread environment, however, I think people will be much happier if they save themselves some time instead of spending countless hours debugging their code when the issue was so easy to diagnose. I know I would have. Every one of your Ajax-related examples should have a note that they may not function properly if the AjaxManager RestoreOriginalRenderDelegate property is set to false (as you require to work in medium trust environments).
Quesiton 1: As I stated before, I accept that this whole issue stems from limitations in the MS Ajax framework, and asside from the documentation of it, I don't have a beef with what Telerik has done regarding the controls. However, given the large-scale reach of these limitations and their effect on so many projects, is Telerik investigating implementing their own work-arounds? If you can get to a point where your own examples work in medium trust environments without doing something as drastic as inheriting from a Telerik base classs, I think that would be sufficient.
Question 2: Does Telerik have any knowledge of Microsoft working on improving these limitations?
My understanding of the issue is that lmitations in MS AJAX itself (the framework upon which Rad Ajax is built) produce the problems. Ok, that is certainly credible. However, it is very dfficult to find info on this on the Terlik site. On the "changes and backward compatibility" section of the Ajax help files, there is a small section that deals with this titled "Full DNN support". If you don't use DNN, I don't know why this would ever catch your eye. Also, this is not just a DNN issue. It effects all sorts of functionality. Telerik has two recommended approaches to avoid these issues in medium trust environments. The first is to set the AjaxManager RestoreOriginalRenderDelegate property to False. The second is to inherit your page from RadAjaxPage instead of the ASP.NET Page class. I will have more comments on these solutions below....
In my case I was introduced to this problem when I was trying to dynamically load usercontrols (with Ajax) that had javascript on them. I, and I am sure lots of other people, have spent a great deal of time trying to figure out why this doesn't work, as was described in this forum thread:
http://www.telerik.com/community/forums/aspnet-ajax/ajax/radajax-manager-does-not-load-js-files-in-dynamically-loaded-user-control.aspx
there is also a blog relating to this issue, though the blogger doesn't seem to be responsive to comments.
http://blogs.telerik.com/tervelpeykov/posts/08-10-20/AJAX_Using_AJAX_to_load_a_usercontrol_that_has_JavaScript_declared_in_it.aspx
Anyhow, I was once again reintroduced to the Ajax limitations when trying to implement Telerik's ToolTipified grid example. I thought I was doing everyhting they were, but I just couldn't get the example to work properly. As it turns out, setting the AjaxManager RestoreOriginalRenderDelegate property to false did not allow the example to work properly. I haven't tested it out, but I bet a great deal of telerik's examples having to do with ajax don't work properly when this ajaxmanager property is set. So, in my opinion, this is not a particularly good solution to working in medium trust environments, if much of the functionality is limited or lost. And, as for inheriting from RadAjaxPage, I have not seen if that works perfectly, but it simply isn't an option in the majority of project I work on, becasue most of the projects I develop inherit from some other custom base class (not Page).
So, I have one suggestion and two questions regarding all fo this..
Suggestion: Please document these issues better. I'm sure its not a great sales practice to admit your product has problems in a widespread environment, however, I think people will be much happier if they save themselves some time instead of spending countless hours debugging their code when the issue was so easy to diagnose. I know I would have. Every one of your Ajax-related examples should have a note that they may not function properly if the AjaxManager RestoreOriginalRenderDelegate property is set to false (as you require to work in medium trust environments).
Quesiton 1: As I stated before, I accept that this whole issue stems from limitations in the MS Ajax framework, and asside from the documentation of it, I don't have a beef with what Telerik has done regarding the controls. However, given the large-scale reach of these limitations and their effect on so many projects, is Telerik investigating implementing their own work-arounds? If you can get to a point where your own examples work in medium trust environments without doing something as drastic as inheriting from a Telerik base classs, I think that would be sufficient.
Question 2: Does Telerik have any knowledge of Microsoft working on improving these limitations?