<?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>The Client View</title>
	<atom:link href="http://theclientview.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://theclientview.net</link>
	<description>Sitecore - Successful Implementations and Performance</description>
	<lastBuildDate>Thu, 03 Nov 2011 03:20:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Sitecore CMS Performance Tuning Guide</title>
		<link>http://theclientview.net/2011/06/sitecore-cms-performance-tuning-guide/</link>
		<comments>http://theclientview.net/2011/06/sitecore-cms-performance-tuning-guide/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 17:37:04 +0000</pubDate>
		<dc:creator>Dan Brown</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Implementation]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Recommend Practices]]></category>
		<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://www.theclientview.net/?p=276</guid>
		<description><![CDATA[The CMS Performance Tuning Guide is now available on the Sitecore Developer Network (SDN)! This document is a collection of diagnostic procedures, tuning procedures, and Sitecore recommended practices for getting the optimal performance out of your Sitecore implementation. A must &#8230; <a href="http://theclientview.net/2011/06/sitecore-cms-performance-tuning-guide/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The <a title="CMS Performance Tuning Guide" href="http://sdn.sitecore.net/Reference/Sitecore%206/CMS%20Performance%20Tuning%20Guide.aspx" target="_blank">CMS Performance Tuning Guide</a> is now available on the Sitecore Developer Network (SDN)!</p>
<p>This document is a collection of diagnostic procedures, tuning procedures, and Sitecore recommended practices for getting the optimal performance out of your Sitecore implementation.</p>
<p>A must read for anyone using Sitecore!</p>
]]></content:encoded>
			<wfw:commentRss>http://theclientview.net/2011/06/sitecore-cms-performance-tuning-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Web Performance Load Tester</title>
		<link>http://theclientview.net/2011/05/using-web-performance-load-tester/</link>
		<comments>http://theclientview.net/2011/05/using-web-performance-load-tester/#comments</comments>
		<pubDate>Wed, 11 May 2011 03:50:13 +0000</pubDate>
		<dc:creator>Dan Brown</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://www.theclientview.net/?p=251</guid>
		<description><![CDATA[&#160; Web Performance Load Tester is a powerful and easy to use tool that will allow you to automate load testing and generate reports to help you analyze the performance of a web site. The 10 virtual user version, which &#8230; <a href="http://theclientview.net/2011/05/using-web-performance-load-tester/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p><span style="color: #444444; line-height: 24px; font-size: 16px;">Web Performance Load Tester is a powerful and easy to use tool that will allow you to automate load testing and generate reports to help you analyze the performance of a web site.</span></p>
<p>The 10 virtual user version, which is full featured, is free to use and is ideal for identifying pages that exceed a threshold value for further investigation.</p>
<p><span id="more-251"></span></p>
<h2>Setup</h2>
<p>Web Performance Load Tester can be downloaded from <a href="http://www.webperformance.com/download/release/4x/installers/WPLoadTester_Win32_4.1.8563.exe">Web Performance Load Tester</a>. Once downloaded, follow the defaults to install.  No key is required for the 10 virtual user version.</p>
<p>It is highly recommended to view the online demos that are available at <a href="http://www.webperformance.com/load_testing/demo/">Online Demos</a> to get and understanding of the capabilities of the tool.</p>
<h2>How to use Web Performance Load Tester.</h2>
<h3>To Launch Web Performance Load Tester:<strong> </strong></h3>
<ol>
<li>Locate the Web Performance Load Tester item in the Start menu and click to launch.<a href="http://www.theclientview.net/wp-content/uploads/2011/05/wplt1.png"><img class="alignnone size-full wp-image-253" title="wplt1" src="http://www.theclientview.net/wp-content/uploads/2011/05/wplt1.png" alt="" width="975" height="664" /></a></li>
</ol>
<p><span style="font-family: Georgia, 'Bitstream Charter', serif; line-height: 24px; font-size: 16px;"> </span>When you launch Web Performance Load Tester, the interface will look similar to what is shown above.</p>
<p>Each of panes can be minimized, maximized, hidden or removed to accommodate who you choose to display information.</p>
<p>A quick overview of the panes (not all panes shown):<strong> </strong></p>
<p><a href="http://www.theclientview.net/wp-content/uploads/2011/05/wplt2.png"><img class="alignnone size-full wp-image-254" title="wplt2" src="http://www.theclientview.net/wp-content/uploads/2011/05/wplt2.png" alt="" width="668" height="513" /></a></p>
<ol>
<li>Navigator View &#8211; shows the contents of each open repository.   Double-click repository items (or select a testcase and choose Edit from the pop-up menu) to open it in an editor.</li>
<li>Toolbars &#8211; provides shortcuts for the most commonly used features.</li>
<li>Editors and Charts &#8211; Displays recorded test cases as a tree of pages and URLs, dataset editor for displaying and editing datasets, and report details.</li>
<li>Detailed inspection views:<br />
Content View &#8211; renders the content of web pages<br />
Headers view &#8211; displays HTTP request and response headers<br />
Errors view &#8211; lists any errors encountered during the recording or replay of a testcase<br />
Replay view &#8211; indicates the status of the replay in progress<br />
Fields view &#8211; displays the HTTP fields that can be associated with modifiers<br />
Servers view &#8211; displays CPU and memory usage metrics for the specified machine<br />
Engine view &#8211; display CPU and memory usage metrics for the client machine<br />
Metrics view &#8211; displays detailed metrics for the current load test.</li>
<li>Status View &#8211; displays the status of long running operations, such as recording and playback.</li>
</ol>
<h2>Setting up Web Performance Load Tester and IE to record web sessions<strong> </strong></h2>
<p>Web Performance Load Tester is setup by default to launch your default browser once the record button has been clicked.  However, if your computer is using a VPN connection you will receive a proxy error when trying to record.  To avoid this, we are going to setup Web Performance Load Tester to not automatically launch the default browser.  We will also setup the proxy configuration manually on our browser to force the traffic through Web Performance Load Tester.<strong> </strong></p>
<p><strong> </strong></p>
<h3>Disable auto launch of web browser:</h3>
<p><strong> </strong></p>
<ol>
<li>With Web Performance Load Tester opened, click on Window -&gt; Preferences</li>
<li><strong><span style="font-weight: normal;">Expand Web Performance and click on Recording.  Make sure that &#8220;Launch default browser when recording&#8221; is unchecked.  Also, make note of the HTTP and SSL recording ports since they will be used when setting up our proxy ports on our web browser.<br />
<a href="http://www.theclientview.net/wp-content/uploads/2011/05/wplt3.png"><img class="alignnone size-full wp-image-255" title="wplt3" src="http://www.theclientview.net/wp-content/uploads/2011/05/wplt3.png" alt="" width="979" height="860" /></a><br />
</span></strong></li>
</ol>
<h3>Setup IE to use proxy:</h3>
<p>This example uses IE8.  Setting up other browsers to use a proxy follow similar steps.<strong> </strong></p>
<ol>
<li>Launch IE</li>
<li>Click on Tools -&gt; Internet Options and click on the Connections Tab<br />
<a href="http://www.theclientview.net/wp-content/uploads/2011/05/wplt4.png"><img class="alignnone size-full wp-image-256" title="wplt4" src="http://www.theclientview.net/wp-content/uploads/2011/05/wplt4.png" alt="" width="660" height="849" /></a></li>
<li><a href="http://www.theclientview.net/wp-content/uploads/2011/05/wplt4.png"></a>Click Settings<br />
<a href="http://www.theclientview.net/wp-content/uploads/2011/05/wplt5.png"><img class="alignnone size-full wp-image-257" title="wplt5" src="http://www.theclientview.net/wp-content/uploads/2011/05/wplt5.png" alt="" width="616" height="718" /></a></li>
<li><a href="http://www.theclientview.net/wp-content/uploads/2011/05/wplt5.png"></a>Check &#8220;Use a proxy server for this connection and click on the Advanced button.  Note, once you create the proxy settings you can enable and disable the use of the proxy by selecting or clearing the &#8220;Use a proxy server for this connection&#8221; check box.<br />
<a href="http://www.theclientview.net/wp-content/uploads/2011/05/wplt6.png"><img class="alignnone size-full wp-image-258" title="wplt6" src="http://www.theclientview.net/wp-content/uploads/2011/05/wplt6.png" alt="" width="638" height="688" /></a></li>
<li><a href="http://www.theclientview.net/wp-content/uploads/2011/05/wplt6.png"></a>Set the proxy address for both HTTP and Secure to 127.0.0.1 and set the ports to those that we pulled out of the Web Performance Load Tester Recording dialog.</li>
<li>Click OK, OK, OK to exit the IE settings.  You are now ready to record web sessions.</li>
</ol>
<h2>Creating a Testcase</h2>
<p><strong> </strong>The following steps show you how to create a testcase with Web Performance Load Tester.  The testcase can either be evalutated, once complete, or be replayed with up to 10 virtual users over a time span.  For detailed information on how to interpret the results, please go to the online videos available at: <a href="http://www.webperformance.com/load_testing/demo/">Online Demos</a>, as well as review the built-in help.</p>
<h3>Creating a testcase:</h3>
<ol>
<li>Launch Web Performance Load Tester.</li>
<li>Click on the record button in the Toolbar<br />
<a href="http://www.theclientview.net/wp-content/uploads/2011/05/wplt7.png"><img class="alignnone size-full wp-image-259" title="wplt7" src="http://www.theclientview.net/wp-content/uploads/2011/05/wplt7.png" alt="" width="855" height="124" /></a></li>
<li>Launch IE, making sure that the &#8220;Use a proxy server for this connection&#8221; checkbox is checked (see details above).</li>
<li>In your browser, go to the site that you want to record and start clicking around the site.  The idea is to hit as many layouts and possible rendering combinations as possible.</li>
<li>When you have sufficiently navigated around the site, return to the Web Performance Load Tester and click the stop button to end the recording<br />
<a href="http://www.theclientview.net/wp-content/uploads/2011/05/wplt8.png"><img class="alignnone size-full wp-image-260" title="wplt8" src="http://www.theclientview.net/wp-content/uploads/2011/05/wplt8.png" alt="" width="635" height="121" /></a></li>
<li>The Editors and Charts pane will show the results of your recording:<br />
<a href="http://www.theclientview.net/wp-content/uploads/2011/05/wplt9.png"><img class="alignnone size-full wp-image-261" title="wplt9" src="http://www.theclientview.net/wp-content/uploads/2011/05/wplt9.png" alt="" width="974" height="332" /></a><br />
The recording will show you the title of the pages visited, the size of the page, the duration required, a time goal to compare the duration to (can be changed in the preferences), think time while on the page, status code as well as the URL of the page.&nbsp;</p>
<p>Also, each page can be expanded to show the components (files, images, etc) that make up the page, as well as the size and duration for each component.</li>
<li>From here you can review the results in a detailed report, replay your existing recording with or without think times, and /or set up a load test with up to 10 virtual users.</li>
</ol>
<p><span style="font-family: Georgia, 'Bitstream Charter', serif; line-height: 24px; font-size: 16px;"><br />
<strong> </strong></span></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><br />
</strong></p>
<p><span style="font-size: medium;"><span style="font-size: 16px; line-height: 24px;"><strong><br />
</strong></span></span></p>
<p><strong><br />
</strong></p>
<p><span style="font-size: medium;"><span style="font-size: 16px; line-height: 24px;"><br />
</span></span></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://theclientview.net/2011/05/using-web-performance-load-tester/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using AOL Pagetest browser plug-in to investigate page performance</title>
		<link>http://theclientview.net/2011/04/using-aol-pagetest-browser-plug-in-to-investigate-page-performance/</link>
		<comments>http://theclientview.net/2011/04/using-aol-pagetest-browser-plug-in-to-investigate-page-performance/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 11:06:21 +0000</pubDate>
		<dc:creator>Dan Brown</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Implementation]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Sitecore]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.theclientview.net/?p=225</guid>
		<description><![CDATA[&#8220;The size of the average web page of the top 500 websites has more than quintupled since 2003. From 2003 to 2009 the average web page grew from 93.7K to over 507K (see Figure 1), over 5.4 times larger (Domenech &#8230; <a href="http://theclientview.net/2011/04/using-aol-pagetest-browser-plug-in-to-investigate-page-performance/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>&#8220;The size of the average web page of the top 500 websites has more than quintupled since 2003. From 2003 to 2009 the average web page grew from 93.7K to over 507K (see Figure 1), over 5.4 times larger (Domenech et al. 2007, Flinn &amp; Betcher 2008, Charzinsk 2010). During the same six-year period, the number of objects in the average web page more than doubled from 25.7 to 64.7 objects per page. Longer term statistics show that since 1995 the size of the average web page has increased by 35 times, and the number of objects per page has grown by 28 times.&#8221;</em><em>- </em><a href="http://www.websiteoptimization.com/speed/tweak/average-web-page/"><em>http://www.websiteoptimization.com/speed/tweak/average-web-page/</em></a></p>
<p>There is a lot of information that can be had by analyzing what takes place when a web page is loaded into a browser.  Not only information about what is being requested, time to response, size of objects, etc., but also how the server is setup in terms of caching, compression, CDN usage, and keep-alive information.</p>
<p>This postings looks at using an open source plug-in, AOL Pagetest, along with how to interpret the results.</p>
<p><span id="more-225"></span></p>
<h2><strong>Setup</strong></h2>
<p>The AOL Pagetest browser plug-in can be downloaded from:  <a href="http://sourceforge.net/projects/pagetest/files/">http://sourceforge.net/projects/pagetest/files/</a></p>
<p>Once it has been download, install in its default location.  The AOL Pagetest plug-in works with IE 7+ browsers, and will appear in the Tools menu. (Note: If IE was opened up during the install, you will have to restart IE for the AOL Pagetest to appear in the Tools menu.)</p>
<h2>How to use the AOL Pagetest browser plug-in.</h2>
<h3>To launch the AOL Pagetest:</h3>
<p><strong> </strong></p>
<ol>
<li>Launch IE.</li>
<li>From the Tools menu, select AOL Pagetest . A blank screen will appear with a single empty tab (Waterfall).<strong> </strong><strong> </strong><strong> </strong><strong> </strong></li>
</ol>
<p><a href="http://www.theclientview.net/wp-content/uploads/2011/04/pt1.png"><img class="alignnone size-full wp-image-227" title="pt1" src="http://www.theclientview.net/wp-content/uploads/2011/04/pt1.png" alt="" width="628" height="332" /></a></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<h3>Capturing Information:</h3>
<p>There are 3 useful page loading scenarios that will be gathered during this exercise to see how the web page reacts to a cleared browser cache, a page reload, and a page request with a loaded cache.</p>
<p><strong> </strong></p>
<ul>
<li>Cleared browser cache &#8211; This will simulate the first time a page has been visited from the browser being used.
<ul>
<li>To clear the browser cache for IE 8 and above:
<ul>
<li>From the Safety menu, click Delete Browsing History&#8230;</li>
<li>Deselect Preserve Favorites website data, and select Temporary Internet Files, Cookies, and History</li>
</ul>
</li>
<li>To clear the browser cache for IE 7:
<ul>
<li>From the Tools menu select Internet Options</li>
<li>Under Browsing History, click Delete&#8230;</li>
<li>To delete you cache, click Delete files&#8230;</li>
<li>Click Close, and then click OK to exit.</li>
</ul>
</li>
</ul>
</li>
<li>Page reload or refresh &#8211; This will force requests to be made to cached objects,  resulting in 304 status codes.  When a 304 status appears, a request is still made for an object, even though no download occurs.</li>
<li>Accessing a recently visited page (typing in the URL) &#8211; This will result in a page with a much reduced request chain, since items that were previously loaded into the browser cache will be accessed without making any requests.</li>
</ul>
<p><strong><span style="color: #000000;">First Pass &#8211; Cleared browser cache:</span></strong></p>
<ol>
<li>Launch IE.</li>
<li>Clear the browser cache (see above).</li>
<li>Launch AOL Pagetest.</li>
<li>Type in the URL you wish to test (for example:  http://www.sitecore.net)</li>
<li>The AOL Pagetest window will now show 4 tabs (Waterfall, Checklist, Optimization Report, and Load Details).  How to interpret the information presented in each tab will be discussed below.</li>
<li>Observations from this view include:
<ol>
<li>Notice that the Waterfall view shows a full request made to each object in the webpage.</li>
<li>That assets such as CSS and JS files have not been combined, so multiple requests are being made to download them.  By combining all of your CSS and JS files, the time line will be pushed to the left, due to a single request being made, shortening the time to render the page.</li>
</ol>
</li>
</ol>
<p><strong> </strong></p>
<p><a href="http://www.theclientview.net/wp-content/uploads/2011/04/pt2.png"><img class="alignnone size-full wp-image-228" title="pt2" src="http://www.theclientview.net/wp-content/uploads/2011/04/pt2.png" alt="" width="716" height="433" /></a></p>
<address>Waterfall Tab View</address>
<p><strong> </strong></p>
<p><a href="http://www.theclientview.net/wp-content/uploads/2011/04/pt3.png"><img class="alignnone size-full wp-image-229" title="pt3" src="http://www.theclientview.net/wp-content/uploads/2011/04/pt3.png" alt="" width="708" height="556" /></a></p>
<p><strong> </strong></p>
<address>Checklist Tab View</address>
<p><strong> </strong></p>
<p><a href="http://www.theclientview.net/wp-content/uploads/2011/04/pt4.png"><img class="alignnone size-full wp-image-230" title="pt4" src="http://www.theclientview.net/wp-content/uploads/2011/04/pt4.png" alt="" width="727" height="513" /></a></p>
<p><strong> </strong></p>
<address>Optimization Report Tab View</address>
<p><strong> </strong></p>
<p><a href="http://www.theclientview.net/wp-content/uploads/2011/04/pt5.png"><img class="alignnone size-full wp-image-231" title="pt5" src="http://www.theclientview.net/wp-content/uploads/2011/04/pt5.png" alt="" width="727" height="840" /></a></p>
<p><strong> </strong></p>
<address>Load Details Tab View</address>
<p><strong> </strong></p>
<p><strong>Second Pass &#8211; Refresh browser page</strong>:</p>
<ol>
<li>From the AOL Pagetest File menu, select New</li>
<li>Refresh the browser page (click on the refresh page icon, or hit F5)</li>
<li>Only the results of the Waterfall Tab are shown as a means to present the differences from the first pass.</li>
<li>Observations from this view include:
<ol>
<li>The objects highlighted in yellow are 30x status codes.</li>
<li>The results below show that cached items are requested, but not downloaded.  This is expected behavior for a page that has been refreshed.</li>
<li>What can be taken from this view is that those items with a 304 status code should not be requested during the 3rd pass, &#8220;A recently visited page&#8221;.</li>
</ol>
</li>
</ol>
<p><strong> </strong><strong> </strong></p>
<p><strong> </strong></p>
<p><a href="http://www.theclientview.net/wp-content/uploads/2011/04/pt6.png"><img class="alignnone size-full wp-image-232" title="pt6" src="http://www.theclientview.net/wp-content/uploads/2011/04/pt6.png" alt="" width="628" height="615" /></a></p>
<address>Waterfall Tab &#8211; 2nd pass, page refresh</address>
<p><strong> </strong></p>
<p><strong>Third Pass &#8211; Recently visited page:</strong></p>
<ol>
<li>From the AOL Pagetest File menu, select New</li>
<li>In the browser select the URL and hit enter (do not click on the browsers refresh button).</li>
<li>Only the results of the Waterfall Tab are shown as a means to present the differences from the first and second passes.</li>
<li>Observations that can be taken from this view include:
<ol>
<li>The request tree has been reduced significantly.</li>
<li>It is known that the first two requests, / and visitor.css, are dynamic and not cached.</li>
<li>The third item requires investigation as to why it is not coming from cache. Upon further investigation it was found that this request is a rotating image, which changes across visits. (OK not to be in cache).</li>
</ol>
</li>
</ol>
<p><strong> </strong><strong> </strong></p>
<p><strong> </strong></p>
<p><a href="http://www.theclientview.net/wp-content/uploads/2011/04/pt7.png"><img class="alignnone size-full wp-image-233" title="pt7" src="http://www.theclientview.net/wp-content/uploads/2011/04/pt7.png" alt="" width="628" height="138" /></a></p>
<address>Waterfall Tab &#8211; 3rd pass, recently visited page</address>
<p><strong> </strong></p>
<h2>Interpreting the results:</h2>
<p>Here we will dive into the Waterfall, Checklist, Optimization Report, and Load Details tabs, explaining the information that is presented.</p>
<p><strong> </strong></p>
<h3>Waterfall Tab</h3>
<p>The Waterfall tab presents a view of the request chain that makes up the requested objects for a web page.  The requested objects are listed down the left side, and the time is listed along the top.</p>
<p><strong> </strong></p>
<p><strong>The colors that make up a request / response are:</strong></p>
<p><strong><a href="http://www.theclientview.net/wp-content/uploads/2011/04/Key.jpg"><img class="alignnone size-full wp-image-244" title="Key" src="http://www.theclientview.net/wp-content/uploads/2011/04/Key.jpg" alt="" width="301" height="430" /></a><br />
</strong></p>
<p><strong> </strong></p>
<p><strong> </strong><strong> </strong></p>
<ul>
<li>DNS Lookup &#8211; This is the time it takes to look up the IP Address for the requested URL.</li>
<li>Initial Connection &#8211; This is the time that it takes to go from the client to the server to open up a socket.  Note, if an initial connection is made on every request, this could be an indication that the HTTP keep-alive has not been enabled on the server.</li>
<li>Time to First Byte &#8211; This is the time that it takes from request to receiving the first byte of the object.  Extended Time to First Byte times could be an indicator of a problem at the server (i.e. performance issues), or network issues.</li>
<li>Content Download &#8211; This is the time required to download an object.  Extended Content Download times could be an indicator of large objects.  An inspection of the size of the object may be required.  For example:  images that have not been optimized or compressed could have an effect on the performance of the web page.</li>
<li>Start Render &#8211; This is the green vertical line shown on the Waterfall.  This indicates when the user starts to see content appear in the browser.  Technically this represents the time when the web page has a height and width &gt; 0.</li>
<li>Document Complete &#8211; This is the time when the document complete event had fired.</li>
<li>3xx Result &#8211;  Objects that are highlighted in yellow indicate that 3xx status code has occurred, such as a request or cache request.</li>
<li>4xx Result &#8211; Objects that are highlighted in red indicate that a 4xx status, or error code has occurred.  These should be investigated ASAP.</li>
</ul>
<p><strong> </strong></p>
<h3>Checklist Tab</h3>
<p>The checklist tab is a report card of how well your site takes advantage of performance related settings and procedures.</p>
<p><strong> </strong></p>
<ul>
<li>Topics are listed from left to right in order of importance.</li>
<li>A green check mark indicates a &#8220;pass&#8221;</li>
<li>A yellow triangle indicates a &#8220;warning&#8221;</li>
<li>A red X indicates a &#8220;failure&#8221;</li>
</ul>
<p><strong> </strong></p>
<p><strong> </strong><strong> </strong></p>
<p><a href="http://www.theclientview.net/wp-content/uploads/2011/04/pt9.png"><img class="alignnone size-full wp-image-235" title="pt9" src="http://www.theclientview.net/wp-content/uploads/2011/04/pt9.png" alt="" width="628" height="428" /></a></p>
<address>Sample Checklist</address>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p>The table below provides information on the meaning of each topic, what objects they apply to, as well as what is checked<strong>.</strong></p>
<p><em>The table below is courtesy of <a href="&lt;a href=">WebPageTest.org</a> </em></p>
<table border="2" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td rowspan="2" valign="top"><strong>Cache Static</strong></td>
<td valign="top">Applicable Objects</td>
<td valign="top">Any non-html object with a mime type of &#8220;text/*&#8221;,   &#8220;*javascript*&#8221; or &#8220;image/*&#8221; that does not explicitly have   an Expires header of 0 or -1, a cache-control header of &#8220;private&#8221;,   &#8220;no-store&#8221; or &#8220;no-cache&#8221; or a pragma header of   &#8220;no-cache&#8221;</td>
</tr>
<tr>
<td valign="top">What is checked</td>
<td valign="top">An &#8220;Expires&#8221; header is present (and is not 0 or -1)   or a &#8220;cache-control: max-age&#8221; directive is present and set for an   hour or greater. If the expiration is set for less than 30 days you will get   a warning (only applies to max-age currently).</td>
</tr>
<tr>
<td rowspan="2" valign="top"><strong>Use A CDN</strong></td>
<td valign="top">Applicable Objects</td>
<td valign="top">All static non-html content (css, js and images)</td>
</tr>
<tr>
<td valign="top">What is checked</td>
<td valign="top">Checked to see if it is hosted on a known CDN (CNAME mapped to   a known CDN network). The known CDN&#8217;s are Akamai, Amazon CloudFront, Coral   Cache, Edgecast, Google, Highwinds, Internap, Limelight, Mirror Image,   Panther and Yahoo</td>
</tr>
<tr>
<td rowspan="2" valign="top"><strong>Combine CSS/JS</strong></td>
<td valign="top">Applicable Objects</td>
<td valign="top">All css and javascript objects</td>
</tr>
<tr>
<td valign="top">What is checked</td>
<td valign="top">If multiple files of the same type are served then each   additional css file beyond 1 will subtract 5 percent and each Javascript file   beyond the first wil subtract 10 percent</td>
</tr>
<tr>
<td rowspan="2" valign="top"><strong>GZIP Text</strong></td>
<td valign="top">Applicable Objects</td>
<td valign="top">All objects with a mime type of &#8220;text/*&#8221; or   &#8220;*javascript*&#8221;</td>
</tr>
<tr>
<td valign="top">What is checked</td>
<td valign="top">Transfer-encoding is checked to see if it is gzip. If it is   not then the file is compressed and the percentage of compression is the   result (so a page that can save 30% of the size of it&#8217;s text by compressing   would yield a 70% test result)</td>
</tr>
<tr>
<td rowspan="2" valign="top"><strong>Compress Images</strong></td>
<td valign="top">Applicable Objects</td>
<td valign="top">Any object with a mime type of &#8220;image/*&#8221;</td>
</tr>
<tr>
<td valign="top">What is checked</td>
<td valign="top">GIF &#8211; All pass<br />
PNG &#8211; Must be 8 bit or lower (no 24-bit PNGs will pass)<br />
JPEG &#8211; Within 10% of a photoshop quality 50 will pass, up to 50% larger will   warn and anything larger than that will fail.<br />
The overall score is the percentage of image bytes that can be saved by   re-compressing the images.</td>
</tr>
<tr>
<td rowspan="2" valign="top"><strong>Keep-Alive</strong></td>
<td valign="top">Applicable Objects</td>
<td valign="top">All objects that are from a domain that serves more than one   object for the page (i.e. if only a single object is served from a given   domain it will not be checked)</td>
</tr>
<tr>
<td valign="top">What is checked</td>
<td valign="top">The response header contains a &#8220;keep-alive&#8221;   directive or the same socket was used for more than one object from the given   host</td>
</tr>
<tr>
<td rowspan="2" valign="top"><strong>Cookies</strong></td>
<td valign="top">Applicable Objects</td>
<td valign="top">All requests</td>
</tr>
<tr>
<td valign="top">What is checked</td>
<td valign="top">Any request for a static object that sends up a cookie will   fail. All other requests that send up cookies will warn.</td>
</tr>
<tr>
<td rowspan="2" valign="top"><strong>Minify JS</strong></td>
<td valign="top">Applicable Objects</td>
<td valign="top">All html, javascript and json responses</td>
</tr>
<tr>
<td valign="top">What is checked</td>
<td valign="top">Javascript will be run through jsmin. If the original content   was gzip encoded, the minified version will also be gzipped for comparison.   If &gt; 5KB or 10% is saved then it will fail. If &gt; 1KB is saved, it will   warn, otherwise it will pass.</td>
</tr>
<tr>
<td rowspan="2" valign="top"><strong>No Etags</strong></td>
<td valign="top">Applicable Objects</td>
<td valign="top">All requests</td>
</tr>
<tr>
<td valign="top">What is checked</td>
<td valign="top">If the response headers include an ETag header then the   request will fail.</td>
</tr>
</tbody>
</table>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>Information to solving failures and warnings:</strong></p>
<p><strong> </strong></p>
<ul>
<li>Failures in the Cache Statics column indicate that the HTTP Expires Web content header is not set.</li>
<li>Warnings in the Cache Statics column indicate that the HTTP Expires Web content header has a value set to less than 30 days.</li>
<li>Failures in the Combine CSS /JS column indicate that CSS and or JS files are not combined into fewer files, indicating that multiple requests are being made to pull in these objects.</li>
<li>Failures in the GZIP text column indicate that static compression is not enabled on the web server.</li>
<li>Failures in the Keep-Alive column indicate that HTTP keep-alive is not enabled on the web server, causing a connection having to be initiated for every object requested.</li>
</ul>
<h3>Optimization Report Tab</h3>
<p>The Optimization Report provides general information related to load times for the page, as well as where improvements can be made (based on the topics in the Checklist Tab).  In some cases, such as compression settings, an estimate of how much savings in terms of size will be provided.</p>
<p>The Optimization Report is a textual view of what is presented in both the Waterfall and Checklist tabs.</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<h3>Load Details Tab</h3>
<p>The Load Details view is a detailed account of what happens with every request.  This information is useful for narrowing down issues with a particular request.</p>
]]></content:encoded>
			<wfw:commentRss>http://theclientview.net/2011/04/using-aol-pagetest-browser-plug-in-to-investigate-page-performance/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sitecore Recommended Practices &#8211; part 6 (Presentation,Page Editor, and Solution Code)</title>
		<link>http://theclientview.net/2011/04/sitecore-recommended-practices-part-6-presentationpage-editor-and-solution-code/</link>
		<comments>http://theclientview.net/2011/04/sitecore-recommended-practices-part-6-presentationpage-editor-and-solution-code/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 19:57:37 +0000</pubDate>
		<dc:creator>Dan Brown</dc:creator>
				<category><![CDATA[Implementation]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Recommend Practices]]></category>
		<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://www.theclientview.net/?p=220</guid>
		<description><![CDATA[This is the final part to the series Sitecore Recommended Practices.  In this posting Presentation, Page Editor, and Solution Code will be covered.  These topics are not entirely related, but I thought I would combine them into a single posting &#8230; <a href="http://theclientview.net/2011/04/sitecore-recommended-practices-part-6-presentationpage-editor-and-solution-code/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is the final part to the series Sitecore Recommended Practices.  In this posting Presentation, Page Editor, and Solution Code will be covered.  These topics are not entirely related, but I thought I would combine them into a single posting to finish up the series.</p>
<p>As always, comments are welcome to help keep Recommended Practices current and dynamic.  Thanks &#8211; Dan.</p>
<p><span id="more-220"></span><span style="color: #000000; font-size: 23px; line-height: 35px;">Presentation</span></p>
<ul>
<li>Limit the number of layouts in favor of sublayouts. The aim should be to have one layout per site per device.</li>
<li>Place components that appear in every single page statically (in the markup) of the layout. Use placeholders to dynamically bind components that only appear in some pages. Group components that are always used together in sublayouts.</li>
<li>Set presentation details on the _standard values whenever possible.</li>
<li>Use the FieldRenderer or the other Sitecore presentation controls to enable the PageEditor functionality. You can still use those components for rendering fields that should not be editable setting the disable-web-editing attribute.</li>
<li>Make sure to use the appropriate image manipulation parameters to ensure that images are re-sized on the server and unnecessarily large files are not sent to the browser.</li>
<li>Make sure to use the DataSource — by using $sc_item instead of $sc_currentitem in xslts, the DataSource attribute on WebServer controls or with the appropriate code in Subalyouts. This facilitates creating multi-variant tests (MVT) and personalization rules in the OMS.</li>
<li>Leverage the presentation component parameters. You could use the parameters to allow users to configure/modify the behavior of the component, for example, the number of items shown in a list, the CSS classes to use, the URL for a feed it is showing, and so on.</li>
<li>Make sure to create a template for any parameters in the presentation component, and set the Parameters Template Property.</li>
<li>Test components appropriately. For example, a menu rendering might work fine with a few items, but struggle when you have large amounts of data.</li>
</ul>
<h2>Page Editor</h2>
<ul>
<li>Sitecore recommends that you enable and configure the Page Editor for non-technical users.</li>
<li>Configure the placeholder settings so that users are able to add the right components to the page. In addition, use the Editable check-box to disable the ability to add components in the Page Editor to a particular placeholder. Also use security (disable Write access) to disable the placeholder for certain users only.</li>
<li>Use EditFrames to enable editing fields that cannot be edited inline.</li>
<li>Consider using the Page Editor buttons, and the Datasource Location, and Datasource Template fields in Sitecore 6.4 and later.</li>
<li>Make sure you test your CSS. It might have an impact the way the PageEditor displays.</li>
</ul>
<p><span style="color: #000000; font-size: 23px; line-height: 35px;">Solution Code</span></p>
<ul>
<li>Sitecore highly recommends using C#. All of the Sitecore programming examples are in C# and C# is the language spoken by Sitecore Support.</li>
<li>Follow best practices for Web, Windows, IIS, ASP.NET, XML, XSL, SQL, .NET, CSS, JavaScript, and other technologies. For example, comment your code to describe the intent, not the implementation.</li>
<li>Use GUIDs where possible instead of path / name. This will improve performance, as well as prevent any breakage if you move content to a new location in the content tree.</li>
<li>Use the Sitecore Search API instead of query or fast query. This allows querying based on indexes, rather than the content structure. For more information about search, see Alex Shyba&#8217;s blog post <a href="http://sitecoreblog.alexshyba.com/2011/02/8-reasons-to-use-new-search-in-sitecore.html">http://sitecoreblog.alexshyba.com/2011/02/8-reasons-to-use-new-search-in-sitecore.html</a> and <a href="http://sdn.sitecore.net/Reference/Sitecore%206/Sitecore%20Search%20and%20Indexing.aspx">http://sdn.sitecore.net/Reference/Sitecore%206/Sitecore%20Search%20and%20Indexing.aspx</a></li>
<li>Avoid //, descendant and descendant-or-self axis in XSL renderings.</li>
<li>Use App_Config/Include files instead of directly modifying the web.config file.</li>
<li>Don’t hardcode information in the code, use &lt;settings&gt; in a *.config file.</li>
<li>Use parameters and properties when creating pipelines/events.</li>
<li>Don’t hardcode labels and other static text information, consider modeling it with items, or create a dictionary in Sitecore.</li>
<li>Minimize the use of the SecurityDisabler, and try using SecuritySwitcher when possible.</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://theclientview.net/2011/04/sitecore-recommended-practices-part-6-presentationpage-editor-and-solution-code/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sitecore Recommended Practices &#8211; part 5 (Media)</title>
		<link>http://theclientview.net/2011/04/sitecore-recommended-practices-part-5-media/</link>
		<comments>http://theclientview.net/2011/04/sitecore-recommended-practices-part-5-media/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 19:51:01 +0000</pubDate>
		<dc:creator>Dan Brown</dc:creator>
				<category><![CDATA[Implementation]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://www.theclientview.net/?p=216</guid>
		<description><![CDATA[This is part 5 in the series Sitecore Recommended Practices.  This posting will cover recommended practices for implementation and storage of media items. Media We recommended that you store media in the database, rather than the file system. Storing media &#8230; <a href="http://theclientview.net/2011/04/sitecore-recommended-practices-part-5-media/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is part 5 in the series Sitecore Recommended Practices.  This posting will cover recommended practices for implementation and storage of media items.</p>
<p><span id="more-216"></span></p>
<h2>Media</h2>
<ul>
<li>We recommended that you store media in the database, rather than the file system. Storing media in the file system instead of the database limits the CMS functionality that is available.</li>
</ul>
<p style="padding-left: 60px;">For example, you can easily publish media that is stored in the database to a production target, whereas file system based media requires synchronization of directories and files between servers.</p>
<ul>
<li>The folder structure of the media library should be organized so that it is easy to navigate for non-technical users.</li>
<li>Give media items names that can easily be recognized and understood by business users, such as content authors.</li>
<li>Media items should be optimized, using a graphics program such as Photoshop to decrease the size of a rendered page thereby increasing performance.</li>
<li>Image Fields — Define the source field to show the point in the media library that is relevant to the item being created.</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://theclientview.net/2011/04/sitecore-recommended-practices-part-5-media/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sitecore Recommended Practices &#8211; part 4 (Workflow)</title>
		<link>http://theclientview.net/2011/04/sitecore-recommended-practices-part-4-workflow/</link>
		<comments>http://theclientview.net/2011/04/sitecore-recommended-practices-part-4-workflow/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 19:48:04 +0000</pubDate>
		<dc:creator>Dan Brown</dc:creator>
				<category><![CDATA[Implementation]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Recommend Practices]]></category>
		<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://www.theclientview.net/?p=212</guid>
		<description><![CDATA[This is part 4 in the series Sitecore Recommended Practices.  This posting will cover ways to best implement workflow(s). Workflow Sitecore recommends that you enable workflow. Workflows ensure that items move through a predefined set of states before they become &#8230; <a href="http://theclientview.net/2011/04/sitecore-recommended-practices-part-4-workflow/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is part 4 in the series Sitecore Recommended Practices.  This posting will cover ways to best implement workflow(s).</p>
<p><span id="more-212"></span></p>
<h2>Workflow</h2>
<ul>
<li>Sitecore recommends that you enable workflow. Workflows ensure that items move through a predefined set of states before they become publishable. This ensures that content always receives the appropriate reviews and approval before it is published on the live web site.</li>
<li>Workflow can be very useful even when approval is not required. A simple two state workflow (Edit, Publish) can be useful to ensure that items that are currently being edited are not published when you run the <em>Publish</em> wizard. In addition, this provides auto-versioning. By using an auto-publish action in the <em>Publish</em> state, users who are not members of the <em>Publishing</em> role can also publish content.</li>
<li>Apply appropriate workflow security.</li>
<li>Limit workflow publishing to specific roles and users. In the workflow, provide a default final step with the publish action.</li>
<li>Avoid email notification of every workflow state. Only provide email notification where it makes sense for a critical workflow event. Alternatively, you can use of the RSS feeds instead of email.</li>
<li>Try to minimize the number of workflows, states, and the number of actors involved.</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://theclientview.net/2011/04/sitecore-recommended-practices-part-4-workflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sitecore Recommended Practices &#8211; part 3 (Security Roles and Users)</title>
		<link>http://theclientview.net/2011/04/sitecore-recommended-practices-part-3-security-roles-and-users/</link>
		<comments>http://theclientview.net/2011/04/sitecore-recommended-practices-part-3-security-roles-and-users/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 14:18:17 +0000</pubDate>
		<dc:creator>Dan Brown</dc:creator>
				<category><![CDATA[Implementation]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://www.theclientview.net/?p=206</guid>
		<description><![CDATA[This is part 3 in the series of Sitecore Recommended Practices.  This post will cover recommended practices for setting up and implementing Sitecore Security Roles and Users. Security (Users and Roles) Break inheritance rather than explicitly deny access rights. It &#8230; <a href="http://theclientview.net/2011/04/sitecore-recommended-practices-part-3-security-roles-and-users/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is part 3 in the series of Sitecore Recommended Practices.  This post will cover recommended practices for setting up and implementing Sitecore Security Roles and Users.</p>
<p><span id="more-206"></span></p>
<h2>Security (Users and Roles)</h2>
<ul>
<li><strong>Break inheritance rather than explicitly deny access rights</strong>. It is a recommended practice to break inheritance in case the access right should be denied instead of explicitly denying it for a security account. If you deny an access right explicitly, it won’t be possible to override the denying access unless you do it directly on a user account. This will create an overhead in security management in case you would like a user to inherit this role and some other one that should allow the right access.</li>
</ul>
<p style="padding-left: 60px;">Example:<br />
There is a role A that denies a write access to a “/home/contact us” item. There is a role B that allows write access to the item. There is a user AB that should have power of both roles A and B. But due to explicit deny permission on the item, the user won’t be able to get write access on it. When you break the security inheritance it sets permissions into default deny state, which could be overridden, by setting up explicit allow access on a role. But explicit deny access can never be overridden by explicit allow access.<br />
Refer to:  <a href="http://sdn.sitecore.net/upload/sitecore6/security_administrators_cookbook-usletter.pdf%C2%A0">http://sdn.sitecore.net/upload/sitecore6/security_administrators_cookbook-usletter.pdf </a>section 5.3</p>
<ul>
<li><strong>Security applied to roles rather than users. </strong> It’s recommended to configure security rights for a role security account rather than a user one. Even if there will be only one user in the system with unique access level, it’s still better to have permissions configured for a role account. It’s much easier to maintain security system which has all the configuration setup on role security accounts</li>
<li>Limit access to parts of the content tree that are relevant to the user logged into the system.  For example, a person responsible for news items may not have requirements to access the about us page.  This not only allows the user to focus only on what is relevant, but also provides performance benefits by not having to render the entire content tree.</li>
<li>Limit access to the ribbon items by disabling features that are not relevant to the user logged in.</li>
<li>No users should have empty or obvious passwords.</li>
<li>Use the profile setting of the user properties to lock a user to use a certain interface no matter what they select in the login screen.</li>
<li>Make sure that users belong to only the required Sitecore Client roles.</li>
<li>Administrator users should only be used to perform administrator tasks (mainly unlocking other user’s items).</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://theclientview.net/2011/04/sitecore-recommended-practices-part-3-security-roles-and-users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sitecore Recommended Practices &#8211; part 2 (Content Structure)</title>
		<link>http://theclientview.net/2011/04/sitecore-recommended-practices-part-2-content-structure/</link>
		<comments>http://theclientview.net/2011/04/sitecore-recommended-practices-part-2-content-structure/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 19:44:10 +0000</pubDate>
		<dc:creator>Dan Brown</dc:creator>
				<category><![CDATA[Implementation]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Recommend Practices]]></category>
		<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://www.theclientview.net/?p=202</guid>
		<description><![CDATA[This is the part 2 in the series of Sitecore Recommended practices, covering Information Architecture (Content Structure). Soon, all of the sections that make up the Sitecore Recommended Practices will be available as a document on the SDN (Sitecore Developers &#8230; <a href="http://theclientview.net/2011/04/sitecore-recommended-practices-part-2-content-structure/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is the part 2 in the series of Sitecore Recommended practices, covering Information Architecture (Content Structure).</p>
<p>Soon, all of the sections that make up the Sitecore Recommended Practices will be available as a document on the SDN (Sitecore Developers Network).</p>
<p>As always, comments are encouraged to help keep this document current and dynamic.</p>
<p><span id="more-202"></span></p>
<h2>Information Architecture (Content Structure)</h2>
<ul>
<li>Provide a content structure that closely mimics that of the web site.  This will allow for navigational controls to easily be built, allow for security rules to easily deny or allow access to various parts of the tree, as well as simplify the task of finding any given item within the content structure.</li>
<li>Limit the number of items under any given node that share the same parent, to 100 items or less for performance and usability.</li>
<li>Limit the number of versions of any item to the fewest possible.  Sitecore recommends keeping 10 or fewer versions on any item, but policy may dictate this to be a higher number.  There is a shared source module, Version Manager, available at: <a title="http://trac.sitecore.net/VersionManager" href="http://trac.sitecore.net/VersionManager">http://trac.sitecore.net/VersionManager</a> to help manage versions.</li>
<li>For business users, such as content authors, turn off Standard Fields to improve performance.</li>
<li>Avoid using the Rich Text Editor to define structure, this is the job of the presentation layer.</li>
<li>Use the special syntax to restrict the results on Treelists, DropTrees and TreelistEx to make sure users can only select the appropriate items, or Sitecore query in the other selection fields.</li>
<li>Use TreelistEx instead of Treelist when showing very big trees (like the Home node and descendants) or having lots of Treelist fields in one single item. TreelistEx only computes the tree when clicking “edit” whereas Treelist will compute it every time on render.</li>
<li>Remember the structure of the tree has an impact on URLs by default. If you put items inside a folder, that folder name will be part of the URL.</li>
<li>Do not put items that should be accessed by URL (and have presentation details set) outside of the Home of the site, as you will get /Sitecore/content in your URL.</li>
<li>Remember to set Insert Options appropriately to enforce the topology of the tree by restricting what types of items users can create in the different parts of the tree. This can be further restricted through security.</li>
<li>Insert options can be tailored further through Rules (/sitecore/system/Settings/Rules/Insert Options) This allows to add/remove insert options according to dynamic conditions (number of existing children), or type of content. This feature is particularly useful to avoid having to create new “Folder templates” to assign the insert options.</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://theclientview.net/2011/04/sitecore-recommended-practices-part-2-content-structure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sitecore Recommended Practices &#8211; part 1 (Templates and _Standard Values)</title>
		<link>http://theclientview.net/2011/04/sitecore-recommended-practices-part-1-templates-and-_standard-values/</link>
		<comments>http://theclientview.net/2011/04/sitecore-recommended-practices-part-1-templates-and-_standard-values/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 18:53:31 +0000</pubDate>
		<dc:creator>Dan Brown</dc:creator>
				<category><![CDATA[Implementation]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Recommend Practices]]></category>
		<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://www.theclientview.net/?p=195</guid>
		<description><![CDATA[This is the first in a series of recommended practices, covering Templates and _Standard Values. These recommended practices have been gathered from performing Sitecore solution reviews in the field, reviewing reviews that other Sitecore professionals have performed, Sitecore documentation, as &#8230; <a href="http://theclientview.net/2011/04/sitecore-recommended-practices-part-1-templates-and-_standard-values/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is the first in a series of recommended practices, covering Templates and _Standard Values.  These recommended practices have been gathered from performing Sitecore solution reviews in the field, reviewing reviews that other Sitecore professionals have performed, Sitecore documentation, as well as information gathered from various blogs regarding the subject.</p>
<p>I encourage people to comment, so that this series of recommended practices will stay dynamic and current.</p>
<p><span id="more-195"></span></p>
<h2>Templates and _Standard Values</h2>
<ul>
<li><strong>Naming conventions</strong> &#8211; When naming templates, fields, and sections use simple, relevant, and easy to understand names.  By default, Sitecore displays the names you provided to both technical and non-technical users.  Choose names that business users, such as content authors, will easily recognize and understand. <strong>Folder structure</strong> &#8211; Provide a folder structure to classify by web site, site section, section content, function, etc.  This will make for easier navigation and finding of a given template.</li>
<li><strong>Good use of inheritance</strong> &#8211; Commonly used sections and fields should be placed in their own template, so that more specific templates can inherit them.  For example, the fields page title and page text are used in multiple different content templates.  Rather than duplicate theses fields in each content template, simply inherit the page title and text template.</li>
<li><strong>Avoid duplicating field names</strong>.  Even though sections separate fields, do not reuse a field name within the same template. Be careful of not have two fields with the same name in the inheritance chain either. If you really need two fields with the same apparent name in the Content Editor in different sections, use the Title field of the field definition item. Whenever this field is set it is used by the Content Editor instead of the name.</li>
<li><strong>Assign icons to templates</strong> &#8211; Provides a visual clue to the type of item that will be created.</li>
<li><strong>_Standard Values</strong> &#8211; Define layout details, initial workflow, and insert options to a template.  This will reduce administration and centrally manage system settings, rather than setting them on individual items.</li>
<li><strong>_Standard Values</strong> &#8211; Provide default values using tokens that are meaningful and provided clues to business users, such as content authors, as to what information is expected in a given field.</li>
<li><strong>_Standard Values</strong> &#8211; Use tokens, such as $name, to reduce the amount of text that a content author is required to enter when creating a new item.</li>
<li><strong>Image Fields</strong> &#8211; Define the source field to show the point in the media library that is relevant to the item being created.</li>
<li><strong>Rich Text Editor Fields</strong> &#8211; Set the source property to a profile (found in the core database under /sitecore/system/Settings/Html Editor Profiles) that only shows the controls you want to make available to your business users.</li>
<li>Do not override, or delete any templates located under /Sitecore/Templates/System.</li>
<li>Use the Help option in the individual field definition items to provide extra information to users about fields. Also consider using the “Title” field of the definition item to present to the user a different name for the field.</li>
<li>Remember that the name of your templates will appear as the insert options. Try to use something meaningful to the users. Use the Display Name to provide a different text to the user to the name of the template.</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://theclientview.net/2011/04/sitecore-recommended-practices-part-1-templates-and-_standard-values/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Set IIS Expire Web Content Header to Improve Performance</title>
		<link>http://theclientview.net/2011/03/set-iis-expire-web-content-header-to-improve-performance/</link>
		<comments>http://theclientview.net/2011/03/set-iis-expire-web-content-header-to-improve-performance/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 16:45:17 +0000</pubDate>
		<dc:creator>Dan Brown</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://www.theclientview.net/?p=182</guid>
		<description><![CDATA[The Expire Web content header (located in common HTTP Response headers) is how IIS determines whether or not to return a new version of the requested web page if the request is made after the web-page content has expired.  IIS &#8230; <a href="http://theclientview.net/2011/03/set-iis-expire-web-content-header-to-improve-performance/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The Expire Web content header (located in common HTTP Response headers) is how IIS determines whether or not to return a new version of the requested web page if the request is made after the web-page content has expired.  IIS will mark each web page before it&#8217;s sent using the settings you provide for content expiration.  The end-user&#8217;s browser will translate the expiration mark.</p>
<p>By setting Expire Web content to something  other than immediately, you can reduce second-access load times by 50 to 70 percent.  This setting will not affect dynamically generated content.</p>
<p><span id="more-182"></span></p>
<h3>To enable the Expire Web content header (note: this is based on IIS 7.x):</h3>
<ol>
<li>Launch IIS Manager.</li>
<li>Navigate to the site that you wish to enable the Expire Web content header.</li>
<li> Double click on the HTTP Response Headers (located in the IIS grouping).</li>
<li>In the Actions panel, click on Set common headers&#8230;</li>
<li>Make sure that the Expire Web content is checked.</li>
<li>Make sure that After is selected.</li>
<li>Keep the number of days at its default (7).</li>
<li>Click OK when finished.</li>
</ol>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://theclientview.net/2011/03/set-iis-expire-web-content-header-to-improve-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

