This is a migrated thread and some comments may be shown as answers.

Performance issue

8 Answers 226 Views
ScheduleView
This is a migrated thread and some comments may be shown as answers.
Vivek
Top achievements
Rank 1
Vivek asked on 12 Sep 2011, 03:50 PM
Hi Team,

I have created a test project to have 10 users with 600 Appointment for each users.
when go to the timlineview to today view or any view its taking to much time to load.

Please let me know what we can do to remove this performance issue. or let us know how many Appointment a user can handle?

I am opening the view after a button click even i need to wait for a while to load the view with data first time.


here is my code.
<Window  x:Class="OPTIClient.ScheduleView"
        Title="Ecomond Schedule View " Height="600" Width="800" x:Name="WindowMain">
 
    <Grid>
        <telerik:RadScheduleView Name="RadScheduleView_users"  AppointmentsSource="{Binding Appointments}"  telerik:Theming.Theme="Office_Blue" FirstDayOfWeek="Monday" NavigationHeaderVisibility="Visible" FontFamily="Verdana" FontSize="11" DataContext="{Binding}">
            <telerik:RadScheduleView.ViewDefinitions>
                <telerik:TimelineViewDefinition MinorTickLength="1day" MajorTickLength="1day" VisibleDays="20" DayStartTime="9:30" DayEndTime="6:30" Orientation="Horizontal"  />
                <telerik:DayViewDefinition Orientation="Horizontal" ShowAllDayArea="True"  DayStartTime="9:30" DayEndTime="6:30" EnableSmallAppointmentRendering="True"  Title="Today" CalendarWeekRule="FirstFullWeek"  />
                <telerik:WeekViewDefinition Orientation="Horizontal" ShowAllDayArea="True" Title="This Week"  DayStartTime="9:30" DayEndTime="6:30"/>
                <telerik:MonthViewDefinition  Title="This month"  DayStartTime="9:30" DayEndTime="6:30" />
            </telerik:RadScheduleView.ViewDefinitions>
            <telerik:RadScheduleView.ResourceTypesSource>
                <telerik:ResourceTypeCollection >
                    <telerik:ResourceType Name="Resources" AllowMultipleSelection="True">
                        <telerik:Resource ResourceName="Ville Pietikäinen"  />
                        <telerik:Resource ResourceName="Matti Tuukkanen" />
                        <telerik:Resource ResourceName="Seppo Vatanen" />
                        <telerik:Resource ResourceName="Pekka Keränen" />
                        <telerik:Resource ResourceName="Harri Viitamäki" />
                        <telerik:Resource ResourceName="Teemu Mustonen" />
                        <telerik:Resource ResourceName="Jari Järviluoton" />
                        <telerik:Resource ResourceName="Jussi Aksentjeff" />
                        <telerik:Resource ResourceName="Ari Heikkinen" />
                        <telerik:Resource ResourceName="Vivek Kumar" />
                    </telerik:ResourceType>
                </telerik:ResourceTypeCollection>
            </telerik:RadScheduleView.ResourceTypesSource>
            <telerik:RadScheduleView.GroupDescriptionsSource>
                <telerik:GroupDescriptionCollection>
                    <telerik:DateGroupDescription />
                    <telerik:ResourceGroupDescription ResourceType="Resources" />
                </telerik:GroupDescriptionCollection>
            </telerik:RadScheduleView.GroupDescriptionsSource>
        </telerik:RadScheduleView>
    </Grid>
 
</Window>


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Collections.ObjectModel;
using Telerik.Windows.Controls.ScheduleView;
using Telerik.Windows.Controls;
 
namespace OPTIClient
{
    /// <summary>
    /// Interaction logic for Schedular.xaml
    /// </summary>
    public partial class ScheduleView : Window
    {
        
        public ScheduleView()
        {
            InitializeComponent();
            this.DataContext = new ViewModel();
            WindowMain.Title = "Ecomond TCS Opti" + "  " + App_Version.Assemblyinfo();
            AddRecords();
             
        }
 
        private void AddRecords()
        {
            ObservableCollection<Appointment> appointments = new ObservableCollection<Appointment>();
            Random random = new Random(1000); 
            DateTime now = DateTime.Now;
            
            for( int i = 1; i < 600; i++ )
            {
                Appointment appointment = new Appointment()
                {
                    Body = "Appointment test",
                    Subject = "Appointment " + i,
                    Start = now.AddMinutes( i * 10 ),
                    Location = "Seat " + i,
                };
                appointment.End = appointment.Start.AddMinutes( 10 );                             
                appointments.Add(appointment);
                appointment.Resources.Add(new Resource("Ville Pietikäinen", "Resources"));
                appointment.Resources.Add(new Resource("Matti Tuukkanen", "Resources"));
                appointment.Resources.Add(new Resource("Seppo Vatanen", "Resources"));
                appointment.Resources.Add(new Resource("Pekka Keränen", "Resources"));
                appointment.Resources.Add(new Resource("Harri Viitamäki", "Resources"));
                appointment.Resources.Add(new Resource("Teemu Mustonen", "Resources"));
                appointment.Resources.Add(new Resource("Jari Järviluoton", "Resources"));
                appointment.Resources.Add(new Resource("Jussi Aksentjeff", "Resources"));
                appointment.Resources.Add(new Resource("Ari Heikkinen", "Resources"));
                appointment.Resources.Add(new Resource("Vivek Kumar", "Resources"));
               
            }
 
            RadScheduleView_users.AppointmentsSource = appointments;
            
          
        }
 
       
    }
}


8 Answers, 1 is accepted

Sort by
0
Vivek
Top achievements
Rank 1
answered on 13 Sep 2011, 08:59 AM
Hi Team,

I do't know why no body is replying . 

Please let us know if you have any solution.

Vivek.
0
Ivo
Telerik team
answered on 13 Sep 2011, 03:39 PM
Hello Vivek,

We are sorry you are experiencing performance issue with our control. We are constantly trying to improve the performance of RadScheduleView. We will do our best to improve it for your specific scenario in our future releases.

Meanwhile, to improve the performance with so many appointments I would suggest a few things:

1. You can edit your Appointment Style. Simplifying it will significantly improve the performance of your application.  How to edit the Appointment Style you can read here. Also you can find attached a sample example.
2. You can load appointments depending on the visual range of RadScheduleView. How to do this you can find here.

Do not hesitate to contact us if you have any questions.

Regards,
Ivo
the Telerik team

Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

0
Vivek
Top achievements
Rank 1
answered on 13 Sep 2011, 04:45 PM
Hi Ivo,

Thanks for the reply.

Thanks for the valuable suggestion.

I am looking for this now could you please guide me in right direction. If you have sample codes do send us.

Please check this.




Thanks,
Vivek.
0
Vivek
Top achievements
Rank 1
answered on 14 Sep 2011, 10:27 AM
Hi Ivo,

Please find the image as an attachment.

I am looking out for pager and pages in dropdownlist which will have users inside the dropdownlist.

for an example suppose you have 25,50,100 digits is there in dropdownlist, by default 25 users should be selected and it should show the jobs/appointment for the corresponding user. now if user selects 50 now it should show 50  users jobs/appointment on the view.

and the same operation should be done if you page form number please see the image.

Please guide me in right  direction.

Do pass me the sample codes if you have.

Thanks,
Vivek.
0
Ivo
Telerik team
answered on 15 Sep 2011, 08:10 AM
Hello Vivek,

You can find attached a sample example demonstrating how to create resource pager. Combining the resource pager with loading appointments on demand will greatly improve performance for cases with lots of appointments. 

Also I would like to ask you to post a single question in a single thread . Posting the same question in several threads will only slow us with our answer.

Kind regards,
Ivo
the Telerik team

Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

0
Vivek
Top achievements
Rank 1
answered on 15 Sep 2011, 08:37 AM
Hi Ivo,

Thanks for the reply.

Yes, I will post the question on only place.

Ivo, Please see the attached image, I am getting this error.

0
Accepted
Ivo
Telerik team
answered on 15 Sep 2011, 03:30 PM
Hello Vivek,

I would suggest you download the latest internal build of RadControls for Silverlight.

Regards,
Ivo
the Telerik team

Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

0
Vivek
Top achievements
Rank 1
answered on 15 Sep 2011, 04:35 PM
Hi Ivo,

Thanks for the reply.

I downloaded the latest build its working now.

Regards,
Vivek.

Tags
ScheduleView
Asked by
Vivek
Top achievements
Rank 1
Answers by
Vivek
Top achievements
Rank 1
Ivo
Telerik team
Share this question
or