Scheduler performance issues

9 posts, 0 answers
  1. Edward
    Edward avatar
    4 posts
    Member since:
    Jul 2014

    Posted 06 Jan Link to this post

    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.

  2. Plamen
    Admin
    Plamen avatar
    2729 posts

    Posted 11 Jan Link to this post

    Hello Edward,

    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
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Edward
    Edward avatar
    4 posts
    Member since:
    Jul 2014

    Posted 11 Jan in reply to Plamen Link to this post

    I tried using WebApi for client side binding. However, the controller for that seems to inherit from WebServiceAppointmentController, whose GetAppointments method takes a schedulerInfo parameter. I need to use my own GetAppointments method, which currently overrides the DbSchedulerProviderBase method, and other methods from my custom scheduler provider, which includes multiple appointment resources and custom attributes. Is there a way to do so?
  5. Plamen
    Admin
    Plamen avatar
    2729 posts

    Posted 12 Jan Link to this post

    Hello Edward,

    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
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
  6. Mehmet
    Mehmet avatar
    100 posts
    Member since:
    Jun 2014

    Posted 15 Feb in reply to Plamen Link to this post

    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 scheduler then the rebind method can operate along 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. 

  7. Plamen
    Admin
    Plamen avatar
    2729 posts

    Posted 16 Feb Link to this post

    Hello,

    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
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
  8. Mehmet
    Mehmet avatar
    100 posts
    Member since:
    Jun 2014

    Posted 16 Feb in reply to Plamen Link to this post

    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 webservice wit the navigation button actions in order to re-call the data for the next visible week or day or month as the user keeps clicking on the arrows?

    thank you

  9. Plamen
    Admin
    Plamen avatar
    2729 posts

    Posted 18 Feb Link to this post

    Hi,

    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
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
  10. Mehmet
    Mehmet avatar
    100 posts
    Member since:
    Jun 2014

    Posted 22 Feb in reply to Plamen Link to this post

    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?

Back to Top
UI for ASP.NET Ajax is Ready for VS 2017