<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Intersoft Solutions Corporate Blog &#187; 2009 R2</title>
	<atom:link href="http://blog.intersoftsolutions.com/category/2009-r2/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.intersoftsolutions.com</link>
	<description>All about development productivity – ASP.NET, Silverlight, WPF, iOS, Android, Windows Phone, Windows 8</description>
	<lastBuildDate>Sat, 21 Apr 2018 06:57:13 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.33</generator>
	<item>
		<title>Server Side Paging in WebScheduler Timeline view</title>
		<link>http://blog.intersoftsolutions.com/2010/03/server-side-paging-in-webscheduler-timeline-view/</link>
		<comments>http://blog.intersoftsolutions.com/2010/03/server-side-paging-in-webscheduler-timeline-view/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 17:11:00 +0000</pubDate>
		<dc:creator><![CDATA[intersoftbram]]></dc:creator>
				<category><![CDATA[2009 R2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[High Performance]]></category>
		<category><![CDATA[Server Paging]]></category>
		<category><![CDATA[Timeline View]]></category>
		<category><![CDATA[WebScheduler]]></category>
		<category><![CDATA[WebScheduler 3; WebScheduler.NET;]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=1106</guid>
		<description><![CDATA[Performance and scalability are among our strongest focus in WebScheduler v3 release. Since Timeline view is capable to show a wide range of data (from minutes to quarters), loading all the data at once will significantly degrade the server and client performance and ultimately slowing [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="268" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/serversidepaging_thumb1-604x268.jpg" class="attachment-post-thumbnail wp-post-image" alt="ServerSidePaging" style="float:right; margin:0 0 10px 10px;" /><p>Performance and scalability are among our strongest focus in WebScheduler v3 release. Since Timeline view is capable to show a wide range of data (from minutes to quarters), loading all the data at once will significantly degrade the server and client performance and ultimately slowing down the application responsiveness in overall. The problem is even more noticeable when the loaded data is relatively huge and when Quarter view mode is used.</p>
<p>WebScheduler 3 addresses the performance bottleneck from top to bottom by introducing smart client paging (EventPageSize),  ViewPort paging, and server paging. The smart client and ViewPort paging are designed to provide paging solution for the client-side which dramatically improves user experiences. I&#8217;ve discussed the client paging features in my <a href="http://intersoftpt.wordpress.com/2010/01/11/timeline-views-client-paging-in-webscheduler-3/" target="_blank">previous blog post</a>.</p>
<p>In this post, we&#8217;ll learn the new server paging capability in WebScheduler 3, and how you can implement it in your application. Let’s take a clear and deep down look at it.</p>
<h2>Concept</h2>
<p>Designed to be an enterprise-ready scheduling component, we’ve added numerous new features in WebScheduler 3 to control the data retrieval mechanism. One of the most powerful features is server paging.</p>
<p>Server paging is an innovative feature built to eliminate sluggish performance due to the large data download while working in Timeline view mode. With server paging enabled, WebScheduler will download only a small chunk of data based on the viewport during initial load and intelligently requests more data as users scroll downward. This means reduced page load time and increased overall application responsiveness.</p>
<p>Not only that – you can also combine the server paging with smart client paging, JSON serialization and other features to boost your Scheduling application performance even more.</p>
<p>The following screenshot shows the WebScheduler with server-side paging enabled. Notice that it will load data on demand as needed.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/02/serversidepaging.jpg"><img style="display:inline;border-width:0;" title="ServerSidePaging" src="http://intersoftpt.files.wordpress.com/2010/02/serversidepaging_thumb.jpg" border="0" alt="ServerSidePaging" width="640" height="268" /></a></p>
<h2>Benchmark Result</h2>
<p>To compliment this post with a more realistic performance comparison, I decided to do some simple testing and provided the screenshots that show the data and response time benchmark of server-side paging. In this benchmark, I&#8217;m using <strong>HighPerformanceScheduler</strong> sample which is included in the WebScheduler’s sample.</p>
<p>Also keep in mind that the HighPerformanceScheduler sample is using database with 3000+ records of events with 66 resources. All events are purposely recorded within 1 month to load test the WebScheduler performance in Timeline month view.</p>
<p>Using HttpWatch Professional 6.1, we can inspect the data size and the content returned from server. Notice that WebScheduler with server paging enabled loads only <strong>176KB</strong> of data. That’s nearly 10x smaller when comparing it with server paging disabled which yielded <strong>1553KB (1.5MB).</strong></p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/02/serversideonly1.png"><img class="size-full wp-image-1115" title="ServerSideOnly" src="http://intersoftpt.files.wordpress.com/2010/02/serversideonly1.png" alt="" width="544" height="74" /></a></p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/02/clientside.png"><img class="size-full wp-image-1116" title="ClientSide" src="http://intersoftpt.files.wordpress.com/2010/02/clientside.png" alt="" width="544" height="73" /></a></p>
<p>In addition, the server paging also significantly reduces data transfer time. For instances, assuming if you have 100kb/s internet connection, the load time with ServerPaging enabled will be done in approximately 1.7 seconds. Contrary, you will need to wait at least 15 seconds or more without ServerPaging.</p>
<p>The beauty of server paging is that it also keeps your browser light and responsive by rendering only a small amount of data at a time. Instead of loading all 3000 events at once, WebScheduler makes efficient use of resources by loading required events on demand when the page is scrolled downward.</p>
<p>You might be wondering how WebScheduler detects which data to be loaded in the next request. That is where smart client paging and ViewPort paging comes to rescue. To learn more on the new performance improvements in WebScheduler 3, please see the video below.</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/gX6Te-aXf8U?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span>
<h2>Implementation</h2>
<p>And here’s the best part. Taking advantage of this powerful feature isn’t rocket science – thanks to the WebScheduler’s bare-metal architecture. All you need to do is simply enabling the <strong>EnableServerPaging </strong>property in <strong>ViewSettings</strong> under the <strong>TimelineView</strong> property group.</p>
<p><strong>Note:</strong> Server paging feature is only applicable when the client paging is set to <strong><em>ViewPort</em></strong> or <strong><em>Both</em></strong>. For certain scenarios with smaller data (less than a thousand of records in a month view), the server paging may not be necessary enabled so that the complete data can be transmitted in a single page load. In such scenarios, the client paging will perform data rendering immediately.</p>
<p>That’s all for now. I’d love to hear any comments, feedback or thoughts about this feature. Feel free to drop your comments here or post it to our <a href="http://www.intersoftpt.com/Community" target="_blank">forum</a>.</p>
<p>Warm Regards,<br />
Budianto Muliawan</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2010/03/server-side-paging-in-webscheduler-timeline-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improve Page Performance in WebGrid When Used With WebMenuBar</title>
		<link>http://blog.intersoftsolutions.com/2010/03/how-to-overcome-slow-page-performance-in-webgrid-autofitcolumns-false-with-webmenubar/</link>
		<comments>http://blog.intersoftsolutions.com/2010/03/how-to-overcome-slow-page-performance-in-webgrid-autofitcolumns-false-with-webmenubar/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 10:06:26 +0000</pubDate>
		<dc:creator><![CDATA[handy23]]></dc:creator>
				<category><![CDATA[2008 R2]]></category>
		<category><![CDATA[2009 R2]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Style]]></category>
		<category><![CDATA[WebDesktop]]></category>
		<category><![CDATA[WebGrid]]></category>
		<category><![CDATA[WebMenuBar]]></category>
		<category><![CDATA[WebToolBar]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=1150</guid>
		<description><![CDATA[Recently some customers reported that they experienced performance issue in their page which contains WebGrid along with WebMenuBar control. The issue is noticable when using Internet Explorer browser to view the page. After further research, this performance issue occured only when the Grid has AutoFitColumns [...]]]></description>
				<content:encoded><![CDATA[<p>Recently some customers reported that they experienced performance issue in their page which contains WebGrid along with WebMenuBar control. The issue is noticable when using Internet Explorer browser to view the page. After further research, this performance issue occured only when the Grid has <strong>AutoFitColumns</strong> property set to true while the WebMenuBar is using predefined styles that produced from the server-side settings.</p>
<p>Apparently, Internet Explorer has a serious flaw in performance when a script is trying to add styles programmatically while loading, and at the same time when layouting is performed by other scripts.</p>
<p>To eliminate the performance issue, all styles in WebMenuBar should be defined as CssClass instead of using server-side predefined styles.</p>
<p>For comparison, I have attached two samples (with and without CssClass). Run the <a href="http://www.intersoftpt.com/tdn/downloads/Performance.zip">samples </a>and compare the performance difference between them.</p>
<p>Note: This technique also works on standalone WebToolBar which causes the same issue.</p>
<p>Regards,<br />
Handy.<br />
Support Engineer.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2010/03/how-to-overcome-slow-page-performance-in-webgrid-autofitcolumns-false-with-webmenubar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Customize Visible Hours in WebScheduler</title>
		<link>http://blog.intersoftsolutions.com/2010/02/customize-visible-hours-in-webscheduler/</link>
		<comments>http://blog.intersoftsolutions.com/2010/02/customize-visible-hours-in-webscheduler/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 08:16:29 +0000</pubDate>
		<dc:creator><![CDATA[erikaa]]></dc:creator>
				<category><![CDATA[2009 R2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Visible Hours]]></category>
		<category><![CDATA[WebScheduler]]></category>
		<category><![CDATA[WebScheduler 3]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/2010/02/25/customize-visible-hours-in-webscheduler/</guid>
		<description><![CDATA[One of the feature request we often received in the past is the ability to specify the visible hours in Day, Week, and Split views. By default, the hours in these views start from 00:00 to 23:59. You can now customize the visible hours to [...]]]></description>
				<content:encoded><![CDATA[<img width="466" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/visiblehours_thumb1-604x350.png" class="attachment-post-thumbnail wp-post-image" alt="visible hours" style="float:right; margin:0 0 10px 10px;" /><p>One of the feature request we often received in the past is the ability to specify the visible hours in Day, Week, and Split views. By default, the hours in these views start from 00:00 to 23:59. You can now customize the visible hours to start and end at specific hours. </p>
<p>To customize the visible hours, simply specify the visible start hour using <strong><em>ViewSettings &gt;&gt; VisibleStartTime</em></strong> property and visible end hour using <strong><em>ViewSettings &gt;&gt; VisibleEndTime</em></strong> property. These configurations are applied globally, means Day, Week, and Split view will use the same visible hours.</p>
<p>The following screenshot shows scheduler that starts from 9 AM and ends at 7 PM. Note that work week styles are still applied at the specified hours. </p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/02/visiblehours.png"><img style="display:inline;border-width:0;" title="visible hours" border="0" alt="visible hours" src="http://intersoftpt.files.wordpress.com/2010/02/visiblehours_thumb.png" width="631" height="445" /></a> </p>
<p>  </p><pre class="crayon-plain-tag">&lt;ViewSettings SelectedViewMode=&quot;Week&quot; SelectedDate=&quot;03/11/2008 10:00:00&quot; 
   VisibleStartTime=&quot;t0900&quot;VisibleEndTime=&quot;t1900&quot;&gt;
&lt;/ViewSettings&gt;</pre><p></p>
<p>&#160;</p>
<p>Event rendering will be adjusted according to these settings. For example: the visible start time is set to 09:00 AM and visible end time is set to 07:00 PM. All events that fall within the date range will be rendered. Any events that start at 08:00 AM and ends at 10:00 AM will be rendered from 09:00 AM to 10:00 AM following the visible start time. The original duration of that event will not be altered; it can still be seen from the detail callout. </p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/02/visiblehours_event.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="visible hours_event" border="0" alt="visible hours_event" src="http://intersoftpt.files.wordpress.com/2010/02/visiblehours_event_thumb.png" width="634" height="261" /></a> </p>
<p>The total of events that occur in a date is displayed as the tooltip of the date in the calendar area. When there is only one event that occurs in the specified date, the title of the event is displayed as the tooltip. When custom visible hours are specified, some events might not be included in the hour area. Although some events are hidden, users can still see the total of all events that occurs in the date in the tooltip of the date in the calendar area.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/02/visiblehours_calendar.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="visible hours_calendar" border="0" alt="visible hours_calendar" src="http://intersoftpt.files.wordpress.com/2010/02/visiblehours_calendar_thumb.png" width="633" height="897" /></a> </p>
<p>If you have any feedback regarding this feature or you think this feature could be further enhanced, feel free to drop your comments or post your opinion in our <a href="http://intersoftpt.com/Community/WebScheduler">forum</a>. We’d be glad to hear them. Happy scheduling, everyone! </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2010/02/customize-visible-hours-in-webscheduler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virtual Group Paging with Client Binding – In Depth</title>
		<link>http://blog.intersoftsolutions.com/2010/02/virtual-group-paging-with-client-binding-in-depth/</link>
		<comments>http://blog.intersoftsolutions.com/2010/02/virtual-group-paging-with-client-binding-in-depth/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 15:20:41 +0000</pubDate>
		<dc:creator><![CDATA[Jimmy Petrus]]></dc:creator>
				<category><![CDATA[2009 R2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Client Binding]]></category>
		<category><![CDATA[Group Row Paging]]></category>
		<category><![CDATA[Virtual Load]]></category>
		<category><![CDATA[WebGrid]]></category>
		<category><![CDATA[WebGrid Enterprise 7 ASP.NET]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=1113</guid>
		<description><![CDATA[As we’ve just released WebUI Studio 2009 R2 service pack, you can now download and try many exciting new features that we included in the release. Read more about the new release here. One of the much anticipated new features is the virtual group paging [...]]]></description>
				<content:encoded><![CDATA[<img width="343" height="215" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/configure_virtualload_thumb1.png" class="attachment-post-thumbnail wp-post-image" alt="Configure_VirtualLoad" style="float:right; margin:0 0 10px 10px;" /><p>As we’ve just released WebUI Studio 2009 R2 service pack, you can now download and try many exciting new features that we included in the release. Read more about the new release <a href="http://www.intersoftpt.com/Corporate/PressRelease.aspx?page=PressRelease&amp;PressID=ab6b7595-1dc2-47c8-ac91-d513ed714888" target="_blank">here</a>.</p>
<p>One of the much anticipated new features is the virtual group paging capability that we shipped in the service pack, which I’ve discussed in my <a href="http://intersoftpt.wordpress.com/2010/01/23/introducing-virtual-group-paging-in-webgrid-7/" target="_blank">previous blog post</a>. In this post, I’ll show you the step-by-step walkthrough to use the virtual group paging along with client binding in your application.</p>
<p>The following walkthrough presumes you have been familiar with the client binding and batch update feature that introduced in the initial WebGrid 7 release. To save time and space, this walkthrough will be focused only on the new group paging features. If you would like to see the walkthrough for client binding and batch update, please refer to WebGrid 7 <a href="http://support.intersoftpt.com/Docs/WebGrid/7.0.7200/Configuring%20client-binding%20using%20ServerDataSource%20mode.html" target="_blank">online documentation</a>.</p>
<h2>Configuring WebGrid for Virtual Load and Group Row Paging</h2>
<p>In this walkthrough, I’m going to use the ClientBinding_SmartBatchUpdate.aspx sample that shipped in the initial WebGrid 7 release. To work with the sample, launch the <strong>C# Samples</strong> which is accessible from WebGrid 7 program group in the start menu.</p>
<p>Once you got the sample ready in your Visual Studio IDE, click on the WebGrid instance and open Property Window.</p>
<p>The sample used classic paging mode, so our first step is to change the paging mode to <strong>VirtualLoad</strong> since the group row paging is an integral part of VirtualLoad paging. To set the paging mode, expand <strong>LayoutSettings</strong> and set the <strong>PagingMode</strong> property to VirtualLoad. See below.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/02/configure_virtualload.png"><img style="display:inline;border-width:0;" title="Configure_VirtualLoad" border="0" alt="Configure_VirtualLoad" src="http://intersoftpt.files.wordpress.com/2010/02/configure_virtualload_thumb.png" width="343" height="215" /></a> </p>
<p>The next step is to enable the group row paging, customize the group row paging size, and optionally enable the preload group totals as well as other client binding related settings.</p>
<p>Still in the Visual Studio’s Property Window, expand the <strong>ClientBindingSettings</strong> property. You’ll find most of the client-binding related settings centralized in this property group. Enable the group row paging by simply setting its property to true and configure other settings to follow the screenshot below.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/02/configure_clientbinding.png"><img style="display:inline;border-width:0;" title="Configure_ClientBinding" border="0" alt="Configure_ClientBinding" src="http://intersoftpt.files.wordpress.com/2010/02/configure_clientbinding_thumb.png" width="335" height="272" /></a> </p>
<p>We’re done with the WebGrid-level configuration.</p>
<h2>Configuring WebGrid LINQ Provider</h2>
<p>After configuring the WebGrid to use proper client binding settings and group row paging, the next step is to configure the new LINQ provider in your application.</p>
<p>To use WebGrid LINQ provider in your application, add the <strong>ISNet.Data.Linq</strong> assembly from WebGrid installation folder to your application’s Bin folder. If you’re installing using default setting, the new assembly should be located in <em>C:Program FilesIntersoft SolutionsWebUI Studio for ASP.NETWebGrid.NET 7.0Bin</em>.</p>
<p>Note that this is a new assembly shipped in the service pack installer. Download the latest service pack installer <a href="http://www.intersoftpt.com/WebUIStudio/Try" target="_blank">here</a>, or obtain the assembly in the provided samples in the last section.</p>
<h2>Handling Data Operations with LINQ-to-SQL Classes</h2>
<p>Since we’re using client binding mode with <strong>WebService</strong> datasource, we need to specify the <strong>ServiceUrl </strong>property to the path of the web service that handles data operations requested by WebGrid. The sample used in the walkthrough is using <strong>WebService.asmx</strong>. </p>
<p>In this walkthrough, we’re going to define the service methods used to perform data selection and batch update. The select method is defined in <strong>SelectMethod</strong>, while the batch update method is defined in <strong>BatchUpdateMethod</strong>. The property settings can be seen in the screenshot below.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/02/configure_servicemethods.png"><img style="display:inline;border-width:0;" title="Configure_ServiceMethods" border="0" alt="Configure_ServiceMethods" src="http://intersoftpt.files.wordpress.com/2010/02/configure_servicemethods_thumb.png" width="312" height="154" /></a></p>
<p>After wiring the service methods, the final step is to write each web method in the web service that corresponds to the specified service methods above.</p>
<p>Open the code-behind file of the web service to your Visual Studio IDE by right clicking on <strong>App_CodeWebService.asmx.cs</strong> then choose View Code.</p>
<p>Write the code for the data selection such as below.</p>
<p>  </p><pre class="crayon-plain-tag">[WebMethod]
public object <strong>GetPagedBugs</strong>(DataSourceSelectArguments selectArguments)
{
    <strong>BugTrackerModelDataContext</strong> context = new BugTrackerModelDataContext();
    context.DeferredLoadingEnabled = false;

    <strong>WebGridDataProvider</strong> provider = new WebGridDataProvider(context.Bugs.AsQueryable());
    object data = provider.<strong>Select</strong>(selectArguments);

    if (data != null)
         return data;

    throw new InvalidOperationException(&quot;Unsupported operation type!&quot;);
}</pre><p></p>
<p>So simple, isn&#8217;t it?</p>
<p>As I’ve mentioned in my previous <a href="http://intersoftpt.wordpress.com/2010/01/23/introducing-virtual-group-paging-in-webgrid-7/" target="_blank">post</a>, the <strong>Select</strong> method of the WebGrid’s LINQ provider automatically handles all data operations – from data paging, grouping, filtering, aggregate computation, group header selection, and group row paging.</p>
<p>I’ve also mentioned that the LINQ provider supports data transaction operations too – such as Insert, Update, Delete and BatchUpdate. The following code shows how to perform batch update using the new data provider.</p>
<p></p><pre class="crayon-plain-tag">[WebMethod]
[GenerateScriptType(typeof(Bug))]
public TransactionResult <strong>UpdateBugs</strong>(List changes)
{
    <strong>BugTrackerModelDataContext</strong> context = new <strong>BugTrackerModelDataContext</strong>();
    <strong>WebGridDataProvider</strong> provider = new WebGridDataProvider(context.Bugs.AsQueryable());

    return provider.<strong>BatchUpdate</strong>(changes);
}</pre><p></p>
<p>It’s as simple as that – thanks to the bare-metal architecture built on the client binding, batch update, virtual load paging and the LINQ data provider to produce this level of component integration.</p>
<p>Now save your changes and view your page in the browser. Try to group the column by Operating System and you should see something like the following.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/02/webgrid_grouprowpaging.png"><img style="display:inline;border-width:0;" title="WebGrid with GroupRowPaging" border="0" alt="WebGrid with GroupRowPaging" src="http://intersoftpt.files.wordpress.com/2010/02/webgrid_grouprowpaging_thumb.png" width="644" height="261" /></a> </p>
<p>So far, you have learnt how to enable group row paging, customize the page size, activate group total preloading, and use the new LINQ data provider to simplify client-binding data operations. Your next step is to test the new features and implement them in your web apps.</p>
<h2>Download Samples</h2>
</p>
<p>In case you haven’t got the chance to download the full service pack installer, you can quickly download and install the latest bits right from your Update Manager. However, it’s highly recommended that you to go through downloading the full installer to enjoy numerous new and enhanced samples that we included in the release.</p>
<p>You can find the new samples that I used in the walkthrough <a href="http://www.intersoftpt.com/tdn/downloads/WebGrid7_R2_SP1.zip" target="_blank">here</a>. To try it, simply copy the entire folder into the root project of WebGrid C# Samples. I’ve excluded the references to WebGrid and other framework assemblies to reduce the download size, although I decided to include the ISNet.Data.Linq assembly for your convenience.</p>
<p>Enjoy and happy developing!</p>
<p>All the best,<br />
  <br />Jimmy.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2010/02/virtual-group-paging-with-client-binding-in-depth/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Introducing Virtual Group Paging In WebGrid 7</title>
		<link>http://blog.intersoftsolutions.com/2010/01/introducing-virtual-group-paging-in-webgrid-7/</link>
		<comments>http://blog.intersoftsolutions.com/2010/01/introducing-virtual-group-paging-in-webgrid-7/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 12:19:38 +0000</pubDate>
		<dc:creator><![CDATA[Jimmy Petrus]]></dc:creator>
				<category><![CDATA[2009 R2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Client Binding]]></category>
		<category><![CDATA[Virtual Load]]></category>
		<category><![CDATA[WebGrid]]></category>
		<category><![CDATA[WebGrid Enterprise 7 ASP.NET]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/2010/01/23/introducing-virtual-group-paging-in-webgrid-7/</guid>
		<description><![CDATA[We’ve been heavily focusing on performance and scalability aspects in the last two versions of WebGrid. As you may have already aware, WebGrid Enterprise 7 introduces numerous noteworthy new features such as client binding, JSON serialization, virtual rendering, efficient batch update and more – which [...]]]></description>
				<content:encoded><![CDATA[<img width="353" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/preloadgrouptotal_thumb1-458x350.png" class="attachment-post-thumbnail wp-post-image" alt="Group totals are preloaded in advanced, allowing users to analyze data without have to expand the group row." style="float:right; margin:0 0 10px 10px;" /><p>We’ve been heavily focusing on performance and scalability aspects in the last two versions of WebGrid. As you may have already aware, WebGrid Enterprise 7 introduces numerous noteworthy new features such as client binding, JSON serialization, virtual rendering, efficient batch update and more – which elegantly address performance issues commonly found in enterprise applications.</p>
<p>The next release of WebGrid will still be strongly focused in various areas of performance to deliver even better data visualization component that is not only rich, but also speedy and highly scalable. Many of the new enhancements in the next release are designed to support combination of multiple advanced features, such as using client binding together with virtual load paging, grouping and data aggregates.</p>
<p>This post details some of the key enhancements to give you an insight for the usage in your applications.</p>
<h2>Preload Group Totals</h2>
<p>WebGrid 7 introduces a new client binding model where the data rendering is performed in the client-side instead of server-side. While there are many benefits with client binding, it falls short when it comes to extensive data aggregation such as calculating group totals on several hundreds or thousands of records.</p>
<p>The upcoming release will include a new capability to preload the group totals during server-side data fetching process, and hence eliminating the needs to compute heavy aggregation in the client-side, while maintaining the data footprint in a good balance.</p>
<p>This new feature also works along side with virtual load paging, which makes more sense on the “preloading” factor. Your users would definitely like the ability to see all group totals without have to expand each group to retrieve the rows. See the following screenshot for details.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/01/preloadgrouptotal.png"><img style="display:inline;border-width:0;" title="Group totals are preloaded in advanced, allowing users to analyze data without have to expand the group row." src="http://intersoftpt.files.wordpress.com/2010/01/preloadgrouptotal_thumb.png" border="0" alt="Group totals are preloaded in advanced, allowing users to analyze data without have to expand the group row." width="458" height="491" /></a></p>
<p>When using <strong>ServerDataSource</strong> type, the group totals will be automatically computed without additional user codes. Simply enable the <strong>PreloadGroupTotals</strong> property in <strong>ClientBindingSettings</strong> should do the job.</p>
<p>This new feature is also consistently supported by other client binding data source such as Web Service and WCF Service. Read the explanation in the latter section.</p>
<h2>Group Row Paging</h2>
<p>One of the advanced features that truly sets WebGrid apart from other Grids is its VirtualLoad™ paging capability. When enabled, virtual load retrieves only the first subset of data and then smartly loads the rest records as users scroll downward. The virtual load also uniquely supports grouping condition by displaying only the group headers and group totals in the first load. When users expanded a group row, WebGrid loads the child rows on demand via AJAX callback and then seamlessly inject it into the group row element. This gives users the feel of working with desktop apps.</p>
<p>Everything is good until your users accidentally grouped a data resulting with large amount of rows per group. It becomes worse when the Grid is working in client-binding since the rendering operation is done in the client-side. Imagine looping through thousands of records to perform string-extensive operations, the browser itself naturally refuse to complete the operation. And hence, you’ll get a prompt that ask you whether you want to stop or continue the script. Although you can choose to continue the script, it will still take several seconds to complete. This is certainly not a desirable result for most of today’s users who expecting applications with rich experiences.</p>
<p>Toward that end, we’re researching a solution that will not only address the performance issue permanently, but also works consistently across existing features and certainly with an intuitive user experience. As the result, group row paging is born.</p>
<p>With the new group row paging capability, you no longer have to worry how much data your Grid is presenting, whether they are grouped or not, whether they are filtered or not, WebGrid will display your data in the same timely fashion – consistently. To understand how group row paging works, please see the following image which also shows the new group row paging user interface.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/01/grouprowpaging.png"><img style="display:inline;border-width:0;" title="The new group row paging interface." src="http://intersoftpt.files.wordpress.com/2010/01/grouprowpaging_thumb.png" border="0" alt="The new group row paging interface." width="566" height="560" /></a></p>
<p>The above sample is using <strong>GroupRowPageSize=10</strong> configuration, which means only 10 records should be fetched in a time. As shown above, the new group row status enables users to easily understand the current state of the group row. It’s especially useful when the GroupRowPageSize is set to a larger value such as 100 (50 is the default) as users can see the current status without have to scroll back and forth to the group header. The new status bar also serves as command bar and allows room for improvements in the future, such as adding more buttons related to the group’s context.</p>
<p>Compared to the original sample without group row paging, the same group with 1,000+ rows now loads in a fraction of second, and that’s about 100x faster. The group row paging will consistently support multiple groups and other grouping-related features too.</p>
<p>It’s also noteworthy to mention that other useful features such as data editing, batch update, and row selection persistence will continue to work flawlessly along with group row paging.</p>
<h2>Virtual Load Support For Web &amp; WCF Service</h2>
<p>Still around client binding and virtual load, we’ve now added <strong>virtual grouping </strong>(means virtual load + grouping)<strong> </strong>support for WebService and WCF Service as well. In the current release, the grouping process will invoke a Select command against the underlying WebService and retrieve all groups and rows from the database, which ultimately transmit 1-2MB size of data to the client. In most cases, you’ll get a server-side exception when the data exceeded 2MB because .NET’s JSON Serialization limits it to only 2MB by default.</p>
<p>In the next release, WebGrid will automatically send a new <strong>SelectGroup</strong> option in the select arguments when it attempts to perform grouping, or perform data selection in grouping conditions. This will allow developers to handle the group retrievals based on the select operation mode in the server-side and <strong>returns only the groups information to the client</strong>.</p>
<p>Our experiment shows that virtual grouping using Web Service or WCF Service is at least 4x faster and much more efficient than using ServerDataSource, especially when the processed data is huge. That is possible because developers have granular control over the data selection process, and in this case selecting only the groups from the backend directly without have to deal with the data rows.</p>
<p>The following code snippet demonstrates how it works.</p><pre class="crayon-plain-tag">if (selectArg.OperationType == <strong>SelectOperation.SelectGroup</strong>)
{
     var groupResults = dataSource.GroupByMany(<strong>selectArg.GroupByExpression</strong>);     
     return ProcessGroupRows(groupResults, selectArg);
}</pre><p>Notice that the select operation type and group expression will be provided in the select arguments to allow developers to handle their data selection. The above sample is using LINQ to SQL to process the grouping request, which returns only the group rows required by WebGrid.</p>
<p>The two-minutes video below shows the improved performance and the user experiences when virtual load, group row paging, client binding and batch update are enabled together.</p>
<div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:3405bbc6-cf72-48ba-81c5-c1969de58370" class="wlWriterEditableSmartContent" style="display:inline;float:none;margin:0;padding:0;">
<div><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/11EvYsnYl9s?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></div>
</div>
<p>Furthermore, the new <strong>PreloadGroupTotals</strong> and <strong>GroupRowPaging</strong> feature that we discussed earlier can also be used with WebService/WCF Service data source type. In the client-side, WebGrid will perform the data rendering in consistent fashion, such as the new group status interface and the group loading behaviors.</p>
<h2>WebGrid LINQ Data Provider</h2>
<p>In addition to the performance and UX improvements, we’ll also ship LINQ to SQL data provider for WebGrid in the next service pack release. The new data provider greatly simplifies the codes to perform data operations using LINQ to SQL, specifically when paired together with WebGrid’s client binding.</p>
<p>The WebGrid LINQ data provider minimizes complexity and slashes dozen line of codes into one line. See the following comparison.</p>
<p>The following is the original codes that we shipped in our WebGrid 7 samples.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/01/linq_original.png"><img style="display:inline;border-width:0;" title="Original, lenghy codes required for data operation." src="http://intersoftpt.files.wordpress.com/2010/01/linq_original_thumb.png" border="0" alt="Original, lenghy codes required for data operation." width="642" height="427" /></a></p>
<p>And here’s the new approach using WebGrid LINQ Data Provider.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/01/linq_provider.png"><img style="display:inline;border-width:0;" title="Simplified code using WebGrid LINQ provider." src="http://intersoftpt.files.wordpress.com/2010/01/linq_provider_thumb.png" border="0" alt="Simplified code using WebGrid LINQ provider." width="642" height="243" /></a></p>
<p>One code rules it all – that’s what I really like about this new data provider. The generic-based class architecture enables you to easily instantiate the provider on any of your data model by simply passing the data type – making development more efficient and fun!</p>
<p>In this first version, the WebGrid LINQ provider will automatically handle the following select operations during client binding:</p>
<ul>
<li>Data Selection</li>
<li>Sorting</li>
<li>Filtering</li>
<li>Grouping</li>
<li>Paging and Total Rows Count</li>
<li>Group Selection</li>
<li>Group Row Paging</li>
<li>And yes, group totals too.</li>
</ul>
<p>In addition to data selection, the provider also includes full-featured transaction operations, such as:</p>
<ul>
<li>Insert</li>
<li>Update</li>
<li>Delete</li>
<li>Batch Update</li>
</ul>
<p>And now comes the best part, the LINQ data provider is free for all WebGrid licensees. To start using it in your application, simply add reference to the new assembly named “<strong>ISNet.Data.Linq</strong>” which can be found in WebGrid’s installation folder. When the enhancements are rolled out in the next service pack, I&#8217;ll post more blogs to cover how to use them in more details.</p>
<h3>Summary</h3>
<p>This blog post gives you an insight and early look on some key enhancements that we’re currently working on for the next WebGrid release. Customers who wish to test drive these new enhancements, please obtain the nightly build (and yes, we have prepared some new samples too!) by directing your email to our <a href="mailto:technical@intersoftpt.com" target="_blank">Support Team</a>.</p>
<p>We hope customers to participate in the beta testing and give feedback, so we can review and take account your feedback before wrapping up the final features. You can send your feedback to <a href="mailto:feedback@intersoftpt.com" target="_blank">Feedback Team</a> for private discussion (if your feedback includes confidential information related to your apps etc), or to <a href="http://www.intersoftpt.com/Community" target="_blank">Community Forum</a> for open, shared discussion.</p>
<p>All the best,<br />
Jimmy.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2010/01/introducing-virtual-group-paging-in-webgrid-7/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Detail Box Paging in WebScheduler</title>
		<link>http://blog.intersoftsolutions.com/2010/01/detail-box-paging-in-webscheduler/</link>
		<comments>http://blog.intersoftsolutions.com/2010/01/detail-box-paging-in-webscheduler/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 08:32:25 +0000</pubDate>
		<dc:creator><![CDATA[erikaa]]></dc:creator>
				<category><![CDATA[2009 R2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Detail Box]]></category>
		<category><![CDATA[Paging]]></category>
		<category><![CDATA[WebScheduler]]></category>
		<category><![CDATA[WebScheduler 3]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/2010/01/22/detail-box-paging-in-webscheduler/</guid>
		<description><![CDATA[In previous version of WebScheduler, detail box will be displayed when you click More in Month view. In the latest version, detail box is also used in other views (Day, Week, and Split views) when client paging is enabled. In Day, Week, and Split views, [...]]]></description>
				<content:encoded><![CDATA[<img width="473" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/detailboxpaging_thumb1-604x345.png" class="attachment-post-thumbnail wp-post-image" alt="Detail Box Paging" style="float:right; margin:0 0 10px 10px;" /><p>In previous version of WebScheduler, detail box will be displayed when you click <em>More</em> in Month view. In the latest version, detail box is also used in other views (Day, Week, and Split views) when client paging is enabled. In Day, Week, and Split views, detail box will be displayed when users click paging arrow indicator in hour area.</p>
<p>Detail box will adjust its height based on the number of events that occurs in the event block. If there is a lot of event, it is easier and more convenient to enable paging in the detail box.</p>
<p>To enable paging in detail box, simply set <strong><em>LayoutSettings &gt;&gt; EnableDetailBoxPaging </em></strong>property to <em>True</em>. The page size can be specified in <strong><em>LayoutSettings &gt;&gt; DetailBoxPageSize</em></strong> property, which by default is set to 5. This means the detail box will hold maximum 5 events on every page. Note that when detail box paging is enabled, all views that uses detail box will use the configuration.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/01/detailboxpaging.png"><img style="display:inline;border:0;" title="Detail Box Paging" src="http://intersoftpt.files.wordpress.com/2010/01/detailboxpaging_thumb.png" border="0" alt="Detail Box Paging" width="653" height="345" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2010/01/detail-box-paging-in-webscheduler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Client Paging in Day and week view</title>
		<link>http://blog.intersoftsolutions.com/2010/01/client-paging-in-day-and-week-view/</link>
		<comments>http://blog.intersoftsolutions.com/2010/01/client-paging-in-day-and-week-view/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 09:32:17 +0000</pubDate>
		<dc:creator><![CDATA[erikaa]]></dc:creator>
				<category><![CDATA[2009 R2]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Client Paging]]></category>
		<category><![CDATA[Day view]]></category>
		<category><![CDATA[WebScheduler]]></category>
		<category><![CDATA[WebScheduler 3]]></category>
		<category><![CDATA[Week view]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/2010/01/15/client-paging-in-day-and-week-view/</guid>
		<description><![CDATA[As explained in previous posts, WebScheduler 3 focused on performance and usability improvements. To improve the performance when rendering events, especially when large dataset is used, Client Paging feature is introduced in WebScheduler. In Day and Week view, events that occur on the same period [...]]]></description>
				<content:encoded><![CDATA[<img width="466" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/clientpagingdayandweekview2_thumb1-604x350.png" class="attachment-post-thumbnail wp-post-image" alt="client paging day and week view2" style="float:right; margin:0 0 10px 10px;" /><p>As explained in previous posts, WebScheduler 3 focused on performance and usability improvements. To improve the performance when rendering events, especially when large dataset is used, Client Paging feature is introduced in WebScheduler. </p>
<p>In Day and Week view, events that occur on the same period are rendered as overlapping events. However, when too many events occurred on the same period, it is difficult for user to see and differentiate these events, as seen in the below screenshot.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/01/clientpagingdayandweekview2.png"><img style="display:inline;border-width:0;" title="client paging day and week view2" border="0" alt="client paging day and week view2" src="http://intersoftpt.files.wordpress.com/2010/01/clientpagingdayandweekview2_thumb.png" width="672" height="373" /></a> </p>
<p>Client paging can be enabled in Day and Week view using <strong><em>ViewSettings &gt;&gt; DayView | Week View &gt;&gt; EnableClientPaging</em></strong> property. Client paging is view dependent, which means it can be enabled in one view and disabled in other views.</p>
<p>Both Day and Week views have the same layout structure, which divided to all-day area and hour area. Client paging applied to each area are implemented differently, following the nature layout of the area. </p>
<h2>Client Paging in Hour Area</h2>
<p>Before we continue, let’s synchronize the term. Events that occur in the same period is called <em>overlapping events </em>and all of the events are considered as one <em>event block</em>. In the below screenshot, <em>event blocks</em> are marked by yellow and purple square. Each <em>event block </em>is divided to several columns, will further called <em>overlapping blocks </em>(marked by pink square), depends on the start time and duration of <em>overlapping events</em> in the <em>event block</em>.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/01/clientpaginginhourarea2.png"><img style="display:inline;" title="client paging in hour area2" alt="client paging in hour area2" src="http://intersoftpt.files.wordpress.com/2010/01/clientpaginginhourarea2_thumb.png" width="676" height="276" /></a> </p>
<p>In hour area, the maximum number of <em>overlapping events</em> displayed in an <em>event block</em> is determined by <strong><em>ViewSettings &gt;&gt; DayView | WeekView &gt;&gt; EventBlockSize</em></strong> property. In the above screenshots, 8 <em>overlapping events</em> occurs in the same period (marked by yellow square). If client paging is enabled and EventBlockSize property is set to 2, events rendered in the first two <em>overlapping block </em>will be displayed and the other events will be hidden. A small paging arrow indicator will be displayed at the upper right corner of the block. When the indicator is clicked, detail box that lists all <em>overlapping events</em> included in the <em>event block</em>, will be displayed.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/01/clientpaginginhourarea3.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="client paging in hour area3" border="0" alt="client paging in hour area3" src="http://intersoftpt.files.wordpress.com/2010/01/clientpaginginhourarea3_thumb.png" width="709" height="325" /></a> </p>
<h2>Client Paging in All-day Area</h2>
<p>The following screenshot shows <em>overlapping events</em> in all-day area. The start time and duration of each event determines the overall event layout in this area. In the screenshots, eight rows are needed to render all the events. </p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/01/clientpaginginalldayarea.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="client paging in all day area" border="0" alt="client paging in all day area" src="http://intersoftpt.files.wordpress.com/2010/01/clientpaginginalldayarea_thumb.png" width="646" height="208" /></a> </p>
<p>When client paging is enabled, you can determine the maximum number of rows in all-day area using <strong><em>ViewSettings &gt;&gt; DayView | WeekView &gt;&gt; AllDayEventPageSize</em></strong>. If the property is set to 5, events rendered in the first five rows will be rendered and the other events are hidden. A paging arrow indicator is also displayed at the bottom of the area to indicate there are more events that occur in the specified time. When it is clicked, all the hidden events will be displayed.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/01/clientpaginginalldayarea2.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="client paging in all day area2" border="0" alt="client paging in all day area2" src="http://intersoftpt.files.wordpress.com/2010/01/clientpaginginalldayarea2_thumb.png" width="660" height="239" /></a> </p>
<p>Feel free to try <a href="http://live.intersoftpt.com/Default.aspx?url=cs/WebScheduler/ClientPaging_WeekView.aspx">client paging samples</a> in our live demo and post your questions and feedback in our <a href="http://intersoftpt.com/Community">forum</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2010/01/client-paging-in-day-and-week-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Timeline view’s Client Paging in WebScheduler 3</title>
		<link>http://blog.intersoftsolutions.com/2010/01/timeline-views-client-paging-in-webscheduler-3/</link>
		<comments>http://blog.intersoftsolutions.com/2010/01/timeline-views-client-paging-in-webscheduler-3/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 15:35:43 +0000</pubDate>
		<dc:creator><![CDATA[intersoftbram]]></dc:creator>
				<category><![CDATA[2009 R2]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Client Paging]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Timeline View]]></category>
		<category><![CDATA[WebScheduler]]></category>
		<category><![CDATA[WebScheduler 3]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=1050</guid>
		<description><![CDATA[Hello everyone, Happy New Year 2010! In this post, I’m going to discuss one of the most exciting features that we added in the recently released WebScheduler. As you may already aware, WebScheduler 3 is strongly focused on performance and usability, especially when used in [...]]]></description>
				<content:encoded><![CDATA[<p>Hello everyone, Happy New Year 2010! In this post, I’m going to discuss one of the most exciting features that we added in the recently released WebScheduler. As you may already aware, WebScheduler 3 is strongly focused on performance and usability, especially when used in enterprise applications where they require to display large dataset in consistently fast performance. The new <strong>Client Paging </strong>feature in WebScheduler 3 elegantly addresses many of these performance issues.</p>
<p>In the following section, we’ll learn how client paging work specifically in Timeline View (the other views will be discussed in future blog posts). We introduce several client paging modes which can help improving overall application response based on your scenarios.</p>
<p>Let’s start by enabling the client paging in Timeline view. We’ve made it extremely easy to use, so that you can enable the feature by simply setting <strong>EnableClientPaging</strong> property to true. The property can be found in <strong>ViewSettings</strong>, then expand <strong>TimelineView</strong> property.</p>
<p>After enabling the client paging, the next step is to choose the client paging mode that is more suitable to your application scenario. WebScheduler 3 introduces three client paging mode to choose from:</p>
<ol>
<li>Paging based on number of events<br />
Called <strong>EventPageSize</strong> mode, this paging mode restricts the numbers of event displayed in each Timeline cell. If the total number of events exceeds the value of the <strong>EventPageSize</strong> property, an arrow indicator will appear notifying that more events are available. Click on the arrow indicator to reveal the complete events in the Timeline cell.To use this paging mode, simply set the <strong>ClientPagingMode </strong>property to <em><strong>EventPageSize</strong></em>.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/01/clientpaging_eventpagesizepaged1.png"><img class="size-medium wp-image-1053" title="ClientPaging_EventPageSizePaged" src="http://intersoftpt.files.wordpress.com/2010/01/clientpaging_eventpagesizepaged1.png?w=300" alt="" width="300" height="222" /></a><br />
<a href="http://intersoftpt.files.wordpress.com/2010/01/clientpaging_eventpagesizenotpaged1.png"><img class="size-medium wp-image-1054" title="ClientPaging_EventPageSizeNotPaged" src="http://intersoftpt.files.wordpress.com/2010/01/clientpaging_eventpagesizenotpaged1.png?w=300" alt="" width="300" height="231" /></a></li>
<li>Paging based on screen viewport<br />
Called <strong>ViewPort</strong>, this paging mode will render all events based on the currently visible viewport. This means that even if you have hundreds of resources, WebScheduler will present your events in consistently fast performance. When scrolled down, WebScheduler seamlessly render the complete events of the new visible viewport. As the result, this advanced paging mode significantly improves overall responsiveness and user experiences.<br />
You should consider using this paging mode if you have fairly large number of resources bound to your WebScheduler.</p>
<p>To activate this mode, set the <strong>ClientPagingMode </strong>property to <em><strong>ViewPort</strong></em>.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/01/viewport1.png"><img class="size-medium wp-image-1055 " title="ViewPort1" src="http://intersoftpt.files.wordpress.com/2010/01/viewport1.png?w=257" alt="" width="257" height="300" /></a></p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/01/viewport2.png"><img class="size-medium wp-image-1056" title="ViewPort2" src="http://intersoftpt.files.wordpress.com/2010/01/viewport2.png?w=255" alt="" width="255" height="300" /></a></li>
<li>The combination of both event size and viewport paging<br />
This mode combines the best of both <em>EventPageSize </em>and <em>ViewPort </em>client paging for the most efficient event rendering. With this mode, the events will be rendered based on the visible viewport and also be restricted based on the number of allowed events. This mode is best used for applications with considerably large number of resources and events bound to WebScheduler.</p>
<p>To enable this mode, set <strong>ClientPagingMode </strong>property to <em><strong>Both</strong></em>.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2010/01/clientpaging_bothpaged.png"><img class="size-medium wp-image-1057" title="ClientPaging_BothPaged" src="http://intersoftpt.files.wordpress.com/2010/01/clientpaging_bothpaged.png?w=300" alt="" width="300" height="263" /></a></li>
</ol>
<div id="_mcePaste" style="position:absolute;width:1px;height:1px;overflow:hidden;top:34px;left:-10000px;">&lt;!&#8211;[if gte mso 9]&gt; &lt;![endif]&#8211;&gt;&lt;!&#8211;[if gte mso 9]&gt; Normal 0 false false false EN-US X-NONE X-NONE &lt;![endif]&#8211;&gt;&lt;!&#8211;[if gte mso 9]&gt; &lt;![endif]&#8211;&gt;<!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --><!--[if gte mso 10]&gt; &lt;!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:&quot;Table Normal&quot;; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:&quot;&quot;; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:&quot;Times New Roman&quot;; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} --> &lt;!&#8211;[endif]&#8211;&gt;<em><span style="line-height:115%;font-family:&amp;">Timeline events are displayed when paging arrow indicator is clicked</span></em></div>
<p>At this point, you should have learnt the new key features in WebScheduler 3 that elegantly address critical performance limitations in web-based scheduling application. So if you’ve got large, enterprise data to be presented in scheduling interface, go ahead, <a href="http://www.intersoftpt.com/WebScheduler/Try" target="_blank">download</a> and try WebScheduler 3, and impress your users big time!</p>
<p>Last but not least, you can find out more information on WebScheduler 3’s new features <a href="http://www.intersoftpt.com/WebScheduler/NewFeatures" target="_blank">here</a> and the live demos <a href="http://live.intersoftpt.com/Default.aspx?p=/WebScheduler" target="_blank">here</a>. For questions and feedback, please drop by our <a href="http://www.intersoftpt.com/Community/WebScheduler" target="_blank">forum</a>.</p>
<p>Happy scheduling!</p>
<p>Warm Regards,<br />
Budianto Muliawan.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2010/01/timeline-views-client-paging-in-webscheduler-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New Database Wizard In WebScheduler 3</title>
		<link>http://blog.intersoftsolutions.com/2009/12/new-database-wizard-in-webscheduler-3/</link>
		<comments>http://blog.intersoftsolutions.com/2009/12/new-database-wizard-in-webscheduler-3/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 02:55:39 +0000</pubDate>
		<dc:creator><![CDATA[intersoftbram]]></dc:creator>
				<category><![CDATA[2009 R2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Database Wizard]]></category>
		<category><![CDATA[SQL Database]]></category>
		<category><![CDATA[WebScheduler]]></category>
		<category><![CDATA[WebScheduler 3]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=1018</guid>
		<description><![CDATA[Stepping-up to version 3, WebScheduler introduces “WebScheduler Database Wizard”, an automatic tool for WebScheduler’s database creation. Forget all the hassles of creating each table and field, you can now create a new WebScheduler database with standard fields with a flick of finger. By simply specifying [...]]]></description>
				<content:encoded><![CDATA[<p>Stepping-up to version 3, WebScheduler introduces “WebScheduler Database Wizard”, an automatic tool for WebScheduler’s database creation. Forget all the hassles of creating each table and field, you can now create a new WebScheduler database with standard fields with a flick of finger. By simply specifying the SQL Server name and the database name, WebScheduler database wizard automatically generates the database. Next is to bind it to a WebScheduler instance in Visual Studio.</p>
<p>To get started, right click on a WebScheduler instance and select “WebScheduler Database Wizard” option to use this embedded tool.</p>
<p>Follow the onscreen instruction below to quickly create your new WebScheduler SQL database.<a href="http://intersoftpt.files.wordpress.com/2009/12/webschedulerdatabasewizard.png"><br />
<img class="alignnone size-medium wp-image-1019" title="WebSchedulerDatabaseWizard" src="http://intersoftpt.files.wordpress.com/2009/12/webschedulerdatabasewizard.png?w=144" alt="" width="144" height="300" /></a><a href="http://intersoftpt.files.wordpress.com/2009/12/webschedulerdatabasewizard2.png"> <img class="alignnone size-medium wp-image-1020" title="WebSchedulerDatabaseWizard2" src="http://intersoftpt.files.wordpress.com/2009/12/webschedulerdatabasewizard2.png?w=249" alt="" width="249" height="300" /></a></p>
<p><strong>Database name drop down list</strong><br />
When the connection to the designated SQL Server has been successfully established, simply specify a new database by typing the name on the textbox. Alternatively, you can select one of the existing databases from the drop down list. Press “Create” and all required tables for WebScheduler with standard fields will be created automatically.</p>
<p><strong>“Get SQL Script” button.</strong><br />
The database wizard also provides a more advanced option to generate the SQL script for the tables definition. The SQL script is primarily useful if you would like to customize the fields definition or add more fields to the table. Simply click on the <strong>Get SQL Script </strong>button to obtain the complete SQL statements and easily apply it in your own database, for example a Microsoft Access database.</p>
<p>The following screenshot shows the result of T-SQL compatible script.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2009/12/sqlscriptdialog.png"><img class="alignnone size-medium wp-image-1021" title="SQLScriptDialog" src="http://intersoftpt.files.wordpress.com/2009/12/sqlscriptdialog.png?w=300" alt="" width="300" height="295" /></a></p>
<p>Note that there are 2 options for the script definition; “MS SQL Compatible” and “MS Access Compatible”. You can choose the one that suit your preferred database provider.</p>
<p>That&#8217;s all for now. if you have any questions or feedback. Please share with us in <a href="http://intersoftpt.com/Community/" target="_blank">our forum</a>.</p>
<p>Warm Regards,<br />
Budianto Muliawan.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2009/12/new-database-wizard-in-webscheduler-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>First Look: Performance Improvements in WebScheduler 3</title>
		<link>http://blog.intersoftsolutions.com/2009/12/first-look-webscheduler-3s-performance-improvements/</link>
		<comments>http://blog.intersoftsolutions.com/2009/12/first-look-webscheduler-3s-performance-improvements/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 08:20:49 +0000</pubDate>
		<dc:creator><![CDATA[Jimmy Petrus]]></dc:creator>
				<category><![CDATA[2009 R2]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[WebScheduler]]></category>
		<category><![CDATA[WebScheduler 3]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/2009/12/16/first-look-webscheduler-3s-performance-improvements/</guid>
		<description><![CDATA[If you’re building a large scale, enterprise resources planning application that involve thousands of resources and events in a single month view alone, you would have quickly realizing serious performance issues during the development process. In this post, I’ll share some insights on the common [...]]]></description>
				<content:encoded><![CDATA[<img width="447" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/BenchmarkByBrowser1-580x350.png" class="attachment-post-thumbnail wp-post-image" alt="" style="float:right; margin:0 0 10px 10px;" /><p>If you’re building a large scale, enterprise resources planning application that involve thousands of resources and events in a single month view alone, you would have quickly realizing serious performance issues during the development process. In this post, I’ll share some insights on the common pitfalls and bottleneck in performance, and how our latest scheduling component completely address them in elegant ways.</p>
<h2>The Challenges</h2>
<p>There are at least 4 factors that would lead to performance issue in most enterprise applications and specifically in scheduling applications.</p>
<ol>
<li><strong>Huge data transfer size.</strong>Take a look at our recent case study on a car rental application. The car rental could have over 3,000 events made in a month. In most scheduling component in the market, all data will be retrieved at once in the page load. That transmits over 2MB of data sent over the cloud which translates to 6-7 seconds waiting even on a broadband connection.</li>
<li><strong>Long rendering process.</strong>With rich user interface possible nowadays, web developers often forgot that a web application is not a desktop application. The nature of web application still have several common constraints such as the amount of elements which are considerably good on a page. In the case of enterprise application, serious performance bottleneck could arise due to the massive objects creation and long rendering process which could take 8-10 seconds for a page bound to several thousands of data.</li>
<li><strong>Heavy backend query.<br />
</strong><br />
Most datasource controls introduced in ASP.NET don’t enable paging by default. While it may not be a significant issue in relatively smaller application, it could be a great showstopper for enterprise application with millions to billions worth of data. Non-optimized database query itself could cause performance issues in at least three ways: the heavier workload and resources required to compute the query, huge data transmission from the backend to business layer and ultimately yielding more extensive operation in the UI layer.</li>
<li><strong>Poor data processing.</strong>Specifically for a scheduling component, poor data processing logic is often a factor that causes performance issue. Scheduler is a unique component that process data in several phases, such as resources categorizing, data grouping and more. Thus, improper data processing logic could result in longer time required to compute the final shape of the data required by the scheduler interface.</li>
</ol>
<h2>The Solution</h2>
<p>WebScheduler 3 is strongly focused on addressing performance issues and improving application scalability at the same time. One of the our key goals is to achieve a consistent performance while loading a scheduler bound to thousands of data – for example, 1-2 seconds regardless of the data size.</p>
<p><strong>ViewPort paging</strong> was born as the result of our extensive R&amp;D. It is specifically designed for Timeline View (Gantt Chart Style) which makes more sense due to its layout nature that display huge data in a single resource. To completely eliminate the key performance issues discussed above, we also invented three more innovative features that work in conjunction with ViewPort paging. They are <strong>event-based client paging, server paging and efficient data categorizing process</strong>.</p>
<p>Instead of loading huge data on every data request, ViewPort paging works by loading only a small chunk of data in the first load which seamlessly fills the data based on the available real screen estate. It will load the rest of data on demand as users scroll downward. Also keep in mind that ViewPort intelligently saves a cache of loaded data, so it won’t retrieve the same data twice. The result is maximum performance, increased responsiveness and extremely smooth user experiences.</p>
<p>The ViewPort implementation doesn’t merely handle data paging process, it  also takes account every single feature that associated to it, say, new event creation, recurrence editing, and data drilling. It also flawlessly handles a vast array of complex scenarios such as drag-drop operation across resources and time, multiple selections, views switching, and more.</p>
<p>In addition to ViewPort paging, WebScheduler 3 also implements smart client paging to other views including day view, week view,  split view and all day area view. We also add client paging interface to the details box in month view.</p>
<p>All in all, WebScheduler 3 successfully delivers on its key objectives to redefine a new standard in performance for enterprise-class usage and improving user experiences at the same time. The following chart shows the performance benchmark tested in various browsers.</p>
<p><img src="http://www.intersoftpt.com/WebResources/Images/WebScheduler/Gallery/BenchmarkByBrowser.png" alt="" /></p>
<p>Our engineers will soon post more coverage on other new exciting features such as customizable time intervals, visible hours, disabled time and more. So stay tuned!</p>
<p>As the word said, pictures worth a million words. Videos worth a zillion. Watch the video below and see the new performance improvements in WebScheduler 3.</p>
<div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:fad6f64e-c0f0-47a0-a636-410f9e8088aa" class="wlWriterEditableSmartContent" style="display:inline;float:none;margin:0;padding:0;">
<div><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/gX6Te-aXf8U?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></div>
<div style="clear:both;font-size:.8em;">WebScheduler 3 Performance Improvements</div>
</div>
<p>You can also experience it yourself by trying our new Blitz rent-a-car reference sample available <a href="http://live.intersoftpt.com/Default.aspx?url=cs/WebScheduler/CarRental.aspx" target="_blank">online</a>.</p>
<h2>Learn More</h2>
<p>WebScheduler 3 is released – <a href="http://www.intersoftpt.com/WebScheduler/Try" target="_blank">download</a> your 30-day trial copy today to experience the exciting new features for yourself.</p>
<p>More resources on WebScheduler 3 can be found in the following links:</p>
<p><a href="http://www.intersoftpt.com/WebScheduler" target="_blank">Overview</a></p>
<p><a href="http://www.intersoftpt.com/WebScheduler/NewFeatures/TurboChargedPerformance" target="_blank">Performance Benchmark and Comparison</a></p>
<p><a href="http://www.intersoftpt.com/WebScheduler/NewFeatures/SmartClientPaging" target="_blank">Powerful Client Paging Capability</a></p>
<p><a href="http://www.intersoftpt.com/WebScheduler/Features" target="_blank">Top New Features</a></p>
<p><a href="http://www.youtube.com/watch?v=KKC_HpSGVCU" target="_blank">Top 10 New Features Video</a></p>
<p><a href="http://live.intersoftpt.com/FolderHome.aspx?p=/WebScheduler" target="_blank">Live Demos</a></p>
<p>All the best,<br />
Jimmy.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2009/12/first-look-webscheduler-3s-performance-improvements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
