Performance issue

9 posts, 1 answers
  1. Vivek
    Vivek avatar
    50 posts
    Member since:
    Jul 2011

    Posted 12 Sep 2011 Link to this post

    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;
                
              
            }
     
           
        }
    }


  2. Vivek
    Vivek avatar
    50 posts
    Member since:
    Jul 2011

    Posted 13 Sep 2011 Link to this post

    Hi Team,

    I do't know why no body is replying . 

    Please let us know if you have any solution.

    Vivek.
  3. Ivo
    Admin
    Ivo avatar
    390 posts

    Posted 13 Sep 2011 Link to this post

    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 >>

  4. Vivek
    Vivek avatar
    50 posts
    Member since:
    Jul 2011

    Posted 13 Sep 2011 Link to this post

    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.
  5. Vivek
    Vivek avatar
    50 posts
    Member since:
    Jul 2011

    Posted 14 Sep 2011 Link to this post

    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.
  6. Ivo
    Admin
    Ivo avatar
    390 posts

    Posted 15 Sep 2011 Link to this post

    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 >>

  7. Vivek
    Vivek avatar
    50 posts
    Member since:
    Jul 2011

    Posted 15 Sep 2011 Link to this post

    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.

  8. Answer
    Ivo
    Admin
    Ivo avatar
    390 posts

    Posted 15 Sep 2011 Link to this post

    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 >>

  9. Vivek
    Vivek avatar
    50 posts
    Member since:
    Jul 2011

    Posted 15 Sep 2011 Link to this post

    Hi Ivo,

    Thanks for the reply.

    I downloaded the latest build its working now.

    Regards,
    Vivek.

Back to Top