I built an application for a client last year based on the webforms scheduler control, which they were very happy with, except for its speed, which was quite honestly dreadful. I looked at all the suggestions I could find on this forum and in your documentation regarding improving performance and implemented anything applicable. However, it still takes upwards of 2 & 1/2 minutes to load the scheduler page with 128 appointments over 4 days. They will only hire the application again this year if I can speed it up very significantly.
My implementation included binding to a custom provider and using the advanced form. It also required a single resource type for rooms, and 2 multiple resource types of meeting leaders and meeting participants. Eventually, there were 4 rooms, approximately 30 meeting leaders and 4,000 meeting participants. Because it looked to me as if the provider was loading all 4,000 meeting participants as a resource for each appointment, I adapted it to load only those attached to existing appointments (reducing the number to approximately 128), replacing the resource combobox for that in the advanced form with a search box, so that new participants could be added. Even that didn't significantly improve the speed.
I read that binding to Web API might improve things, but when I tried implementing that, it appeared that I couldn't call the overridden GetAppointments method from my custom provider. Would it be feasible to override the WebServiceAppointmentController class in a similar way to creating a custom provider?
I doubt anyway that using client-side binding via Web API is going to improve its performance significantly. I got the impression from using the provider methods elsewhere in my application, even when not directly attached to the scheduler control, that it was that slowing things down. Is it possible that re-writing in MVC and using the MVC scheduler might solve the problem, or does that draw on the same provider? At present, barring that, all I can think to do is search for a more efficient scheduler control from a third-party vendor other than Telerik or start something from scratch myself.
8 Answers, 1 is accepted
In such case our best suggestion for performance is using client side binding that is WebService, WCF or WebApi.
You may straight away test our Web Service custom provided demo by using the instructions from this help article.
Regards,
Plamen
Telerik
You can customize the GetAppointments method when you are using WebApi binding too as for example it is done in this code library that is bound to custom XML. You can use the approach and use your own custom .provider
Regards,
Plamen
Telerik
Hi,
The custom provider takes the data from the database and regardless using the Client WebService binding that creates seriously a speed issue. The scheduler has got a couple of resources on it, however, it doesn't perform as suppose to be.
The only way to improve the issue is to load the currently visible dates item on it, and whenever the user changes the visible date/dates on the then the rebind method can operate the next available start-end date.
However, I have no idea how to capture the next visible start-end date and I don't think any other option to improve the issue.
Any kinda help is appreciated.
Web Service binding of RadScheduler is getting just the appointments from visible range as for example it can be observed in this online demo.
Regards,
Plamen
Telerik
Hi Plamen,
I don't think I was able to see what exactly you pointed in here.
Can you elaborate more about how to call the the navigation button actions in order to the data for the next visible week or day or month as the user keeps clicking on the arrows?
thank you
If you impelemnt the Web?Service binding as it is shown in the demo I linked RadScheduler will only ding the resources that are through the current visible aria - for example if you go to day view and check the count of the appointments of the scheduler by using get_appointments(),get_count() of the scheduler client object you will see that the number of the appointments is different from the number when the selected view is week view.
Hope this information will be helpful.
Regards,
Plamen
Telerik
Hi, I can definitely say that having a web service calls for a significant result that causes a speed issue.
I have got the advance form.
I have got the resource types.
I kinda customise the GetAppointments method, however, I am facing a performance issue.
What is the best approach to overcome the issue?