Hi,
I'm need to highlight non-working days and hours in the schedule view, like this:
1. Highlight weekends
2. Highlight week days outside 8-17 hours
For this I followed the example in the demo, by creating a NonWorkingSlot, a collection of them, binding it to the SpecialSlotsSource of the ScheduleView and a SpecialSlotStyleSelector.
It works, but performance is really really bad. Even mousing over the slots is slow and scrolling as well. Probably I don't create the NonWorkingSlots correctly. I would ideally like them to span "forever", but as this yielded horrible performance, I tried starting them "5 years ago". This is still very slow. Here's the code:
What am I doing wrong?
Thanks!
I'm need to highlight non-working days and hours in the schedule view, like this:
1. Highlight weekends
2. Highlight week days outside 8-17 hours
For this I followed the example in the demo, by creating a NonWorkingSlot, a collection of them, binding it to the SpecialSlotsSource of the ScheduleView and a SpecialSlotStyleSelector.
It works, but performance is really really bad. Even mousing over the slots is slow and scrolling as well. Probably I don't create the NonWorkingSlots correctly. I would ideally like them to span "forever", but as this yielded horrible performance, I tried starting them "5 years ago". This is still very slow. Here's the code:
private IEnumerable<
Slot
> CreateNonWorkingSlot(ResourceCollection resources)
{
var recurrenceStartDate = DateTime.Today.AddYears(-1);
// Weekends
yield return new NonWorkingSlot(recurrenceStartDate, recurrenceStartDate.AddDays(1), resources.Cast<
object
>())
{
RecurrencePattern = new RecurrencePattern(null, RecurrenceDays.WeekendDays, RecurrenceFrequency.Weekly, 1, null, null)
};
// Week days 00:00 -> 08:00
yield return new NonWorkingSlot(recurrenceStartDate, recurrenceStartDate.AddHours(8), resources.Cast<
object
>())
{
RecurrencePattern = new RecurrencePattern(null, RecurrenceDays.WeekDays, RecurrenceFrequency.Daily, 1, null, null)
};
// Week days 08:00 -> 17:00
yield return new NonWorkingSlot(recurrenceStartDate.AddHours(17), recurrenceStartDate.AddHours(24), resources.Cast<
object
>())
{
RecurrencePattern = new RecurrencePattern(null, RecurrenceDays.WeekDays, RecurrenceFrequency.Daily, 1, null, null)
};
}
What am I doing wrong?
Thanks!
20 Answers, 1 is accepted
0

Christian Burkhardt
Top achievements
Rank 1
answered on 05 Oct 2011, 12:20 PM
Anyone there? Any news on this problem?
0
Hi Christian,
I tried to reproduce the issue, but to no avail. The slots are recycled every time the view or dates are changed, so the performance depends on the style you are loading. If it is too heavy and complicated, probably this is causing the issue.
Attached I am sending you a short video with my attempt.
Could you please send us your styles and your project, so that we can review it and track down the source of the problem.
All the best,
Konstantina
the Telerik team
I tried to reproduce the issue, but to no avail. The slots are recycled every time the view or dates are changed, so the performance depends on the style you are loading. If it is too heavy and complicated, probably this is causing the issue.
Attached I am sending you a short video with my attempt.
Could you please send us your styles and your project, so that we can review it and track down the source of the problem.
All the best,
Konstantina
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>
0

Christian Burkhardt
Top achievements
Rank 1
answered on 16 Nov 2011, 03:07 PM
Hi Konstantina,
In the code I posted, replace the first line with this:
var recurrenceStartDate = DateTime.Today.AddYears(-50);
Then try with your template from the movie (i.e. a Border with some background), having the ScheduleView as timeline. Do you still get good performance? If yes, maybe you can attach your sample project?
Thanks!
In the code I posted, replace the first line with this:
var recurrenceStartDate = DateTime.Today.AddYears(-50);
Then try with your template from the movie (i.e. a Border with some background), having the ScheduleView as timeline. Do you still get good performance? If yes, maybe you can attach your sample project?
Thanks!
0
Hello Christian,
Attached I am sending you my test project. Could you please modify it so that we can observe the issue you are experiencing. In that way we will be able to track down the source of the problem and provide you with solution.
Looking forward to your reply.
Greetings,
Konstantina
the Telerik team
Attached I am sending you my test project. Could you please modify it so that we can observe the issue you are experiencing. In that way we will be able to track down the source of the problem and provide you with solution.
Looking forward to your reply.
Greetings,
Konstantina
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>
0

Christian Burkhardt
Top achievements
Rank 1
answered on 18 Nov 2011, 04:16 PM
Hi Konstantina,
Please see the linked file. I added some resources to the scheduleview and also some appointments for them.
http://www.sendspace.com/file/xosxut
To repro:
1. Start the app
2. Scroll horizontally
Expected: scrolls smoothly
Actual: scroll is very choppy and slow.
Now, if you remove the line in the code where the nonworkingslots are added, try again and you will see that it works perfectly without them.
So, I guess there is a performance problem with these special slots.
Please see the linked file. I added some resources to the scheduleview and also some appointments for them.
http://www.sendspace.com/file/xosxut
To repro:
1. Start the app
2. Scroll horizontally
Expected: scrolls smoothly
Actual: scroll is very choppy and slow.
Now, if you remove the line in the code where the nonworkingslots are added, try again and you will see that it works perfectly without them.
So, I guess there is a performance problem with these special slots.
0
Hi Christian,
Thank you for the sample project.
Seems that there is a performance issue, indeed. To optimize it I can suggest you to remove one of the repeating special slots:
Because that creates two equal slots on top of each other.
Also, you might consider reducing the number of the resources and implementing paging.
Hope this info helps.
Greetings,
Konstantina
the Telerik team
Thank you for the sample project.
Seems that there is a performance issue, indeed. To optimize it I can suggest you to remove one of the repeating special slots:
this
.workingHours.Add(
new
NonWorkingSlot(recurrenceStartDate, recurrenceStartDate.AddDays(1), resources)
{
RecurrencePattern =
new
RecurrencePattern(
null
, RecurrenceDays.WeekendDays, RecurrenceFrequency.Weekly, 1,
null
,
null
)
});
Also, you might consider reducing the number of the resources and implementing paging.
Hope this info helps.
Greetings,
Konstantina
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>
0

Christian Burkhardt
Top achievements
Rank 1
answered on 23 Nov 2011, 04:04 PM
Hello Konstantina,
Thanks for the suggestion. However, can you provide some info on what is the underlying performance issue in the ScheduleView control? And if/when it's going to be fixed?
To be honest "reducing the number of resources" is not a good answer, since the control docs state it supports lots of data and virtualization. Also, in the given example there are just a dozen resources, imagine using the control for planning hundreds...
I'm not sure what you mean exactly by paging. My current implementation actually creates special slots only for the visible range. This helps a lot with performance, but there is still a noticeable hit, especially when there are lots of appointments.
So, it would be very helpful to have some idea if you guys are looking into fixing the underlying issue.
Thanks!
Thanks for the suggestion. However, can you provide some info on what is the underlying performance issue in the ScheduleView control? And if/when it's going to be fixed?
To be honest "reducing the number of resources" is not a good answer, since the control docs state it supports lots of data and virtualization. Also, in the given example there are just a dozen resources, imagine using the control for planning hundreds...
I'm not sure what you mean exactly by paging. My current implementation actually creates special slots only for the visible range. This helps a lot with performance, but there is still a noticeable hit, especially when there are lots of appointments.
So, it would be very helpful to have some idea if you guys are looking into fixing the underlying issue.
Thanks!
0
Hello Christian,
Sorry, in this forum post you can find an example how to implement resource paging. We will definitely look into the performance issue, but for now I cannot give you a certain time frame since we already have planned our tasks for Q1 2012.
All the best,
Konstantina
the Telerik team
Sorry, in this forum post you can find an example how to implement resource paging. We will definitely look into the performance issue, but for now I cannot give you a certain time frame since we already have planned our tasks for Q1 2012.
All the best,
Konstantina
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>
0

Tim
Top achievements
Rank 1
answered on 13 Dec 2011, 06:07 PM
Hi Konstantina,
We need this fix,too. Having 45 Resources in our ScheduleView it takes approx. 5 seconds to open a RadExpander which forces the ScheduleView to resize. If I remove all SpecialSlots the expander opens immediatelly.
We need this fix,too. Having 45 Resources in our ScheduleView it takes approx. 5 seconds to open a RadExpander which forces the ScheduleView to resize. If I remove all SpecialSlots the expander opens immediatelly.
0
Hi Stefan,
We have researched the issue. Unfortunately, this slowness is caused by the RecurrenceRule and for now it cannot be much optimized. However, I can suggest you to try to create the slots on demand in VisibleRangeChanged event of the ScheduleView. You can use as an example this online demo. It demonstrates the same thing, but for appointments.
Hope this will help.
Kind regards,
Konstantina
the Telerik team
We have researched the issue. Unfortunately, this slowness is caused by the RecurrenceRule and for now it cannot be much optimized. However, I can suggest you to try to create the slots on demand in VisibleRangeChanged event of the ScheduleView. You can use as an example this online demo. It demonstrates the same thing, but for appointments.
Hope this will help.
Kind regards,
Konstantina
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>
0

Tim
Top achievements
Rank 1
answered on 27 Jan 2012, 11:54 AM
Hi Konstantina,
thanks for your explanations. I replaced all recuring slots with several singe slots to avoid using the recurrance pattern property at all. However, performance is still bad (makes not much difference to using recurrance) when resizing or zooming ScheduleView.
I've always create my special slots only for the visble range thus there is no performance improvements possible it that point.
I assume that the number of special slots (approx. 200) is too high?
I need to use this feature to highlight weekends, public holidays and some events which are unique for single resurces...
The number of resources I use right now is 76. This should not be too much, but performance will be unacceptable on client machines as my developer machine (quad core i7) is not able to handle special slots. Please help!
Best regards,
Stefan
thanks for your explanations. I replaced all recuring slots with several singe slots to avoid using the recurrance pattern property at all. However, performance is still bad (makes not much difference to using recurrance) when resizing or zooming ScheduleView.
I've always create my special slots only for the visble range thus there is no performance improvements possible it that point.
I assume that the number of special slots (approx. 200) is too high?
I need to use this feature to highlight weekends, public holidays and some events which are unique for single resurces...
The number of resources I use right now is 76. This should not be too much, but performance will be unacceptable on client machines as my developer machine (quad core i7) is not able to handle special slots. Please help!
Best regards,
Stefan
0
Hi Stefan,
We are looking in the performance issue, but for now, so many resources are causing some problems. The work-around I can suggest you to decrease the load on the ScheduleView is to use resource paging and filtering of the appointments according to the visible range.
Sorry for the caused inconvenience.
Regards,
Konstantina
the Telerik team
We are looking in the performance issue, but for now, so many resources are causing some problems. The work-around I can suggest you to decrease the load on the ScheduleView is to use resource paging and filtering of the appointments according to the visible range.
Sorry for the caused inconvenience.
Regards,
Konstantina
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>
0

Ken
Top achievements
Rank 1
answered on 16 Feb 2012, 04:06 PM
Any progress on this issue? It's really a shame that such a useful feature can't be used because it slows things down to a halt. I could imagine a performance improvement is possible when not using the recurrence rule and just creating the slots for the visible range (which I already do): I mean, without these special slots even with hundreds of resources and appointments the performance is good. Once I add in these slots, it all goes south.
Thanks!
Thanks!
0
Hello Adrian,
As it turns out your scenario hits a corner case where our rendering logic faces some issues. We are making some research on possible ways how we can overcome them but we need more time for this. In the meanwhile I can suggest you not to create many special slots, but try to combine them in bigger ones. For example: if you need to mark the hours from 2pm to 5pm for all resources, create one special slot from 2 to 5, for all resources, instead of one for each time slot.
Hope this information helps.
All the best,
Konstantina
the Telerik team
Hope this information helps.
All the best,
Konstantina
the Telerik team
Sharpen your .NET Ninja skills! Attend Q1 webinar week and get a chance to win a license! Book your seat now >>
0

Christian Burkhardt
Top achievements
Rank 1
answered on 22 Feb 2012, 06:00 PM
Hi Konstantina,
Thanks for the answer and suggestion: I am doing it already. It definitely helped, but unfortunately brought the state from completely unusable to mostly unusable :)
My particular use-case is that I have to create special slots to highlight non-working hours which are:
1. Normal non-working hours (e.g. 0am->8am + 17pm->0am)
2. Weekends
3. Holidays
Even for the case when I show just 7 days in the scheduleview timeline, these add up quickly.
Really looking forward to an improvement/fix from you.
Thanks,
Adrian
Thanks for the answer and suggestion: I am doing it already. It definitely helped, but unfortunately brought the state from completely unusable to mostly unusable :)
My particular use-case is that I have to create special slots to highlight non-working hours which are:
1. Normal non-working hours (e.g. 0am->8am + 17pm->0am)
2. Weekends
3. Holidays
Even for the case when I show just 7 days in the scheduleview timeline, these add up quickly.
Really looking forward to an improvement/fix from you.
Thanks,
Adrian
0

Shawn Shaddock
Top achievements
Rank 1
answered on 23 Mar 2012, 08:19 PM
I am also having this issue. I use special slots to mark at what interval each resource can book appointments, as well as store hours, and resource hours.
0

Ken
Top achievements
Rank 1
answered on 23 Oct 2012, 03:13 PM
Any news on this?
0
Hello,
After some research, for now the special slots performance cannot be improved without a major refactoring of the code, which is not planned at the moment, because it will cause a lot of breaking changes which we avoid. For optimization I can suggest you to take the following measures:
- if the slot is recurring, again not to create many different slots, but create a recurring one.
Hope this will help and sorry for the caused inconvenience.
Greetings,
Konstantina
the Telerik team
After some research, for now the special slots performance cannot be improved without a major refactoring of the code, which is not planned at the moment, because it will cause a lot of breaking changes which we avoid. For optimization I can suggest you to take the following measures:
- populate the slots only in the visible range at the moment;
- when there is the same slot for more resources, not create different slots for each resource, but assign the resources to the slot, for example:
var slot =
new
FancySlot { Start = DateTime.Today.AddHours(2), End = DateTime.Today.AddHours(2) };
slot.Resources.AddRange(resources);
this
.specialSlots.Add(slot);
Hope this will help and sorry for the caused inconvenience.
Greetings,
Konstantina
the Telerik team
Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.
0

Håkan
Top achievements
Rank 1
answered on 26 Aug 2014, 12:53 PM
Hi there!
Any update on this issue?
I have the same problem, but still running an old Silverlight 4 version.
I just want to know if there was any solution to this problem in a later (Silverlight 5) version of the ScheduleView?
Regards,
HÃ¥kan
Any update on this issue?
I have the same problem, but still running an old Silverlight 4 version.
I just want to know if there was any solution to this problem in a later (Silverlight 5) version of the ScheduleView?
Regards,
HÃ¥kan
0
Hi HÃ¥kan,
I'm afraid the special slots performance hasn't been improved yet. However we have that issue logged in our Feedback portal, so you can easily track it status on the following link:
http://feedback.telerik.com/Project/143/Feedback/Details/113662-improve-performance-when-using-special-slots
Just follow the item in order to get notified whenever its status is changed.
If you have any other question or concerns, please let us know.
Regards,
Kalin
Telerik
I'm afraid the special slots performance hasn't been improved yet. However we have that issue logged in our Feedback portal, so you can easily track it status on the following link:
http://feedback.telerik.com/Project/143/Feedback/Details/113662-improve-performance-when-using-special-slots
Just follow the item in order to get notified whenever its status is changed.
If you have any other question or concerns, please let us know.
Regards,
Kalin
Telerik
Check out Telerik Analytics, the service which allows developers to discover app usage patterns, analyze user data, log exceptions, solve problems and profile application performance at run time. Watch the videos and start improving your app based on facts, not hunches.