<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Steve Green</title>
	<atom:link href="http://blog.capaxsolutions.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.capaxsolutions.co.uk</link>
	<description>C# Flavoured ASP.Net Web Development using Sitecore CMS</description>
	<lastBuildDate>Tue, 13 Dec 2011 20:53:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.capaxsolutions.co.uk' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Steve Green</title>
		<link>http://blog.capaxsolutions.co.uk</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.capaxsolutions.co.uk/osd.xml" title="Steve Green" />
	<atom:link rel='hub' href='http://blog.capaxsolutions.co.uk/?pushpress=hub'/>
		<item>
		<title>I&#8217;ve moved!</title>
		<link>http://blog.capaxsolutions.co.uk/2010/09/07/ive-moved/</link>
		<comments>http://blog.capaxsolutions.co.uk/2010/09/07/ive-moved/#comments</comments>
		<pubDate>Tue, 07 Sep 2010 02:54:32 +0000</pubDate>
		<dc:creator>Steve Green</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.capaxsolutions.co.uk/?p=280</guid>
		<description><![CDATA[I&#8217;ve packed up all things Sitecore related and moved to my new home at: http://www.sitecore.net/en/Community/Technical-Blogs/Dev-Sitecored.aspx By now this blog should be off the main Sitecore RSS feed so this shouldn&#8217;t be a double post except for those of you who subscribe to my blog directly (thank you). For now this will lay dormant but I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=280&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve packed up all things Sitecore related and moved to my new home at:<br />
<a href="http://www.sitecore.net/en/Community/Technical-Blogs/Dev-Sitecored.aspx"> http://www.sitecore.net/en/Community/Technical-Blogs/Dev-Sitecored.aspx</a></p>
<p>By now this blog should be off the main <a href="http://pipes.yahoo.com/pipes/pipe.info?_id=ZsFOz4a62xG9Py3Idbq02Q">Sitecore RSS feed</a> so this shouldn&#8217;t be a double post except for those of you who subscribe to my blog directly (thank you).</p>
<p>For now this will lay dormant but I might from time to time post non-Sitecore related musings.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitecored.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitecored.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitecored.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitecored.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitecored.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitecored.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitecored.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitecored.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitecored.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitecored.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitecored.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitecored.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitecored.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitecored.wordpress.com/280/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=280&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.capaxsolutions.co.uk/2010/09/07/ive-moved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da00436ef9beff20d0f70144c9e75385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve Green</media:title>
		</media:content>
	</item>
		<item>
		<title>Video of Sitecore Performance Webinar</title>
		<link>http://blog.capaxsolutions.co.uk/2010/08/11/video-of-sitecore-performance-webinar/</link>
		<comments>http://blog.capaxsolutions.co.uk/2010/08/11/video-of-sitecore-performance-webinar/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 07:54:16 +0000</pubDate>
		<dc:creator>Steve Green</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.capaxsolutions.co.uk/?p=254</guid>
		<description><![CDATA[As promised here is the recording of the Sitecore Performance Webinar: http://mediacontent.sitecore.net/webinars/SitecorePerformanceWebinar/ Also since the resolution of the video isn&#8217;t high enough to see the code I&#8217;ve also included a Sitecore package containing all the code samples I used during the presentation which you can download here. I really hope this is of use to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=254&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As promised here is the recording of the Sitecore Performance Webinar:</p>
<p><a href="http://mediacontent.sitecore.net/webinars/SitecorePerformanceWebinar/">http://mediacontent.sitecore.net/webinars/SitecorePerformanceWebinar/</a></p>
<p>Also since the resolution of the video isn&#8217;t high enough to see the code I&#8217;ve also included a Sitecore package containing all the code samples I used during the presentation which you can download <a href="http://www.sitecore.net//~/media/Community/Technical%20Blogs/Dev%20Sitecored/performance webinar/performancewebinar10.ashx">here</a>.</p>
<p>I really hope this is of use to everyone, feel free to post any questions or suggest additions that could have been made to the webinar.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitecored.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitecored.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitecored.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitecored.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitecored.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitecored.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitecored.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitecored.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitecored.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitecored.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitecored.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitecored.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitecored.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitecored.wordpress.com/254/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=254&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.capaxsolutions.co.uk/2010/08/11/video-of-sitecore-performance-webinar/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da00436ef9beff20d0f70144c9e75385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve Green</media:title>
		</media:content>
	</item>
		<item>
		<title>View overridden presentation values in Quick Action Bar</title>
		<link>http://blog.capaxsolutions.co.uk/2010/07/28/view-overridden-presentation-values-in-quick-action-bar/</link>
		<comments>http://blog.capaxsolutions.co.uk/2010/07/28/view-overridden-presentation-values-in-quick-action-bar/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 06:23:41 +0000</pubDate>
		<dc:creator>Steve Green</dc:creator>
				<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://blog.capaxsolutions.co.uk/?p=260</guid>
		<description><![CDATA[I know I should be posting a video of the performance webinar but at over 350mb finding a decent way to host it is taking longer than expected. Instead I thought I&#8217;d post a little module I wrote which should help anyone who is having trouble keeping track of what items have overridden the presentation [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=260&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I know I should be posting a video of the performance webinar but at over 350mb finding a decent way to host it is taking longer than expected. Instead I thought I&#8217;d post a little module I wrote which should help anyone who is having trouble keeping track of what items have overridden the presentation values in the standard template.</p>
<p>This is a common problem and becoming even more so as more people take advantage of the more advanced features in the Design Panel and OMS. The module is pretty straight forward, you install it and then can switch on and off an actionbar warning for overridden values as shown here:</p>
<p><a href="http://sitecored.files.wordpress.com/2010/07/presentationoverridden.png"><img class="alignnone size-full wp-image-261" title="presentationOverridden" src="http://sitecored.files.wordpress.com/2010/07/presentationoverridden.png?w=510" alt=""   /></a></p>
<p>You can then click on the icon to reset back to the standard values, it also shows a different tooltip/icon if the value is overridden but the same as the standard value.</p>
<p><a href="http://www.sitecore.net/~/media/Community/Technical%20Blogs/Dev%20Sitecored/uienhancementlibrary10.ashx" target="_blank">Download</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitecored.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitecored.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitecored.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitecored.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitecored.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitecored.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitecored.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitecored.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitecored.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitecored.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitecored.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitecored.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitecored.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitecored.wordpress.com/260/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=260&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.capaxsolutions.co.uk/2010/07/28/view-overridden-presentation-values-in-quick-action-bar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da00436ef9beff20d0f70144c9e75385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve Green</media:title>
		</media:content>

		<media:content url="http://sitecored.files.wordpress.com/2010/07/presentationoverridden.png" medium="image">
			<media:title type="html">presentationOverridden</media:title>
		</media:content>
	</item>
		<item>
		<title>Slides for Sitecore Performance Webinar</title>
		<link>http://blog.capaxsolutions.co.uk/2010/07/25/slides-for-sitecore-performance-webinar/</link>
		<comments>http://blog.capaxsolutions.co.uk/2010/07/25/slides-for-sitecore-performance-webinar/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 08:44:18 +0000</pubDate>
		<dc:creator>Steve Green</dc:creator>
				<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://blog.capaxsolutions.co.uk/?p=256</guid>
		<description><![CDATA[Thanks to everyone who attended Fridays webinar, as promised I&#8217;m uploading a recording but converting codecs, hosting etc is taking time. In the meantime here are the slides from the presentation, I&#8217;ll follow this with the code samples from the demonstrations. Slides<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=256&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Thanks to everyone who attended Fridays webinar, as promised I&#8217;m uploading a recording but converting codecs, hosting etc is taking time. In the meantime here are the slides from the presentation, I&#8217;ll follow this with the code samples from the demonstrations.</p>
<p><a href="http://www.sitecore.net/~/media/Community/Technical%20Blogs/Dev%20Sitecored/performance webinar/performancepresentation.ashx">Slides</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitecored.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitecored.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitecored.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitecored.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitecored.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitecored.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitecored.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitecored.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitecored.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitecored.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitecored.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitecored.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitecored.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitecored.wordpress.com/256/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=256&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.capaxsolutions.co.uk/2010/07/25/slides-for-sitecore-performance-webinar/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da00436ef9beff20d0f70144c9e75385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve Green</media:title>
		</media:content>
	</item>
		<item>
		<title>Sitecore Performance Technical Deep Dive</title>
		<link>http://blog.capaxsolutions.co.uk/2010/06/29/sitecore-performance-technical-deep-dive/</link>
		<comments>http://blog.capaxsolutions.co.uk/2010/06/29/sitecore-performance-technical-deep-dive/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 03:48:27 +0000</pubDate>
		<dc:creator>Steve Green</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.capaxsolutions.co.uk/?p=248</guid>
		<description><![CDATA[Quick post, I&#8217;m going to be running a Webinar next month on how to get the most out of your Sitecore site in terms of performance and stability. You can reserve your spot here and if you&#8217;re not able to make it I&#8217;ll be recording it for download later. It&#8217;s going to be a technical [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=248&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Quick post, I&#8217;m going to be running a Webinar next month on how to get the most out of your Sitecore site in terms of performance and stability. You can reserve your spot <a href="https://www2.gotomeeting.com/register/872516754" target="_blank">here</a> and if you&#8217;re not able to make it I&#8217;ll be recording it for download later.</p>
<p>It&#8217;s going to be a technical deep dive so if that&#8217;s not for you then feel free to forward the invite url to anyone who might be interested.</p>
<p>Fri, Jul 23, 2010 10:00 AM &#8211; 12:00 PM AEST</p>
<p><a rel="nofollow" href="https://www2.gotomeeting.com/register/872516754" target="_blank">https://www2.gotomeeting.com/register/872516754</a></p>
<ul>
<li>Technical Introduction &#8211; What should we be able to expect from Sitecore in terms of performance?</li>
<li>Divide and conquer &#8211; First steps, how to break down the problem.</li>
<li>Starting on a solid footing &#8211; Avoid &#8220;gut feelings&#8221;; get solid stats on how the site performs.</li>
<li>General improvements &#8211; What can we do outside of Sitecore?</li>
<li>Sitecore specific improvements &#8211; What can we change in Sitecore?</li>
<li>Content Entry &#8211; How can we speed up the Sitecore UI?</li>
<li>Next steps&#8230; &#8211; How to maintain performance improvements.</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitecored.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitecored.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitecored.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitecored.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitecored.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitecored.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitecored.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitecored.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitecored.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitecored.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitecored.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitecored.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitecored.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitecored.wordpress.com/248/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=248&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.capaxsolutions.co.uk/2010/06/29/sitecore-performance-technical-deep-dive/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da00436ef9beff20d0f70144c9e75385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve Green</media:title>
		</media:content>
	</item>
		<item>
		<title>Sitecore Item Mirroring &#8211; Making an Item appear in more than one place.</title>
		<link>http://blog.capaxsolutions.co.uk/2010/06/09/sitecore-item-mirroring-making-an-item-appear-in-more-than-one-place/</link>
		<comments>http://blog.capaxsolutions.co.uk/2010/06/09/sitecore-item-mirroring-making-an-item-appear-in-more-than-one-place/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 11:37:20 +0000</pubDate>
		<dc:creator>Steve Green</dc:creator>
				<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://blog.capaxsolutions.co.uk/?p=202</guid>
		<description><![CDATA[Working at Sitecore Australia brings me into contact with a lot of interesting problems and gives me the opportunity to solve them in (hopefully) interesting ways. A customer recently made the fairly common request to find a way have Items appear in more than one place. What I mean by that is they were looking to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=202&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Working at Sitecore Australia brings me into contact with a lot of interesting problems and gives me the opportunity to solve them in (hopefully) interesting ways. A customer recently made the fairly common request to find a way have Items appear in more than one place. What I mean by that is they were looking to have an item appear as a child item to multiple parent items, an example being a book item appearing under multiple genre items.</p>
<p><a href="http://sitecored.files.wordpress.com/2010/06/itemmirror1.png"><img class="alignnone size-full wp-image-232" title="itemmirror" src="http://sitecored.files.wordpress.com/2010/06/itemmirror1.png?w=510&#038;h=273" alt="" width="510" height="273" /></a></p>
<p>For this I wrote a Data Provider module called ItemMirror, below is a package with the book/genre example I mentioned and I&#8217;ve also included the code, both will be up on Shared Source very shortly.</p>
<p><a href="https://docs.google.com/uc?id=0BznYZ-_ruD62YjQ2YzA5NmYtYWNiNy00N2I4LWFiZGMtMzc2YTY5ZjdmNzM1&amp;export=download&amp;hl=en" target="_blank">Package</a></p>
<p><a href="https://docs.google.com/uc?id=0BznYZ-_ruD62MGRjZmY1MGMtYWI2YS00OTU0LTg1MDAtMzExMDhlYjRkMDVm&amp;export=download&amp;hl=en" target="_blank">Code</a></p>
<p>Typically the solution to this problem is to have a multi-select field such as a treelistex on each of the genre items and select the books you want to appear under it, you then can leave it up to the renderings to sort out where each book appears. In the vast bulk of cases this is a sufficient solution but the customer felt that in this case it left 3 unresolved issues:</p>
<ol>
<li>Increased difficulty editing the book items.</li>
<li>Sub-par URLs, instead of landing on site.com/genre/book.aspx you would either land on site.com/genre.aspx?bookid=xxx or link to site.com/bookrespository/book.aspx</li>
<li>Increased difficulty creating renderings.</li>
</ol>
<p>What they said was needed was the ability to have book items that are otherwise stored in the book repository (called bookpile in the image above) shown under the genre items as children. This would neatly solve all 3 problems they were having, only problem being that it wasn&#8217;t possible out of the box with Sitecore (yet) hence the need for the ItemMirror module.</p>
<p>Configuration of the ItemMirror is done via the ItemMirror.config include file which you should find in App_Config/Include once the package is installed. The only line you&#8217;ll want to change is the one which configures the active template and the field which picks the items to replicate:</p>
<blockquote><p>&lt;template id=&#8221;{2BA6F255-67F5-4EDD-B626-11224F707658}&#8221; field=&#8221;bookSelection&#8221; /&gt;</p></blockquote>
<p>The module should support multiple templates so you can have both genre/book and category/product running on the same website.</p>
<h3>Quick Disclaimer</h3>
<ul>
<li>Documentation is forthcoming, in fact the lack of that is what&#8217;s holding it back from going on Shared Source really, think of this as the beta release.</li>
<li>Yes the virtual items publish and yes they become &#8220;real&#8221; once that happens, this is mostly because I didn&#8217;t feel that having the ItemMirror system running on the web database was particular wise or necessary.</li>
<li>The use of the master database is currently hardcoded in, if anyone can &#8220;solve&#8221; the XPATH statement needed at Line 75 in MirrorProvider.cs please post in the comments, otherwise I&#8217;ll have it solved for the Shared Source version.</li>
</ul>
<p>Otherwise enjoy and feel free to suggest improvements.</p>
<h3>Update:</h3>
<p><em>A few quick replies based on comments via email/msn.</em></p>
<p><strong>You could have used the</strong><a href="http://trac.sitecore.net/InlineItemListField" target="_blank"><strong> Inline Item List Field</strong></a><strong>.</strong></p>
<p style="padding-left:30px;"><strong> </strong>Yes but sadly it wasn&#8217;t actually released when we started, it could in fact still be used alongside the ItemMirror.</p>
<p><strong>What about </strong><a href="http://larsnielsen.blogspirit.com/archive/2007/01/09/sitecore-avoiding-query-string-in-dynamic-url.html" target="_blank"><strong>Wildcard items</strong></a><strong>?</strong></p>
<p style="padding-left:30px;">Yep, that would have solved the URL issue but the customer wasn&#8217;t keen on the * items.</p>
<p><strong>Is writing renderings to pull items from a multilist really that hard?</strong></p>
<p style="padding-left:30px;">Well no, not for you and I but the customer was looking to do a lot of development in house, been able to simply render all child items would make their life a lot easier.</p>
<p><strong>Isn&#8217;t this just Item Proxying?</strong></p>
<p style="padding-left:30px;">No, come on guys, read the post, install the module!</p>
<p><strong>What about stability/performance/daisy-chaining/other?</strong></p>
<p style="padding-left:30px;">All good concerns and really this is why I made sure it only runs on the master database and gets turned into real items on publish. Daisy-chaining should only be possible if you explicitly set it up that way in the include file, in that case best of luck to you. Stability and performance were fine during development (isn&#8217;t it always?), it&#8217;s got two layers of caching, item and entity which should in theory cover you but it&#8217;s still needing some stress testing before it goes on Shared Source. Any volunteers?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitecored.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitecored.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitecored.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitecored.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitecored.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitecored.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitecored.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitecored.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitecored.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitecored.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitecored.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitecored.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitecored.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitecored.wordpress.com/202/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=202&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.capaxsolutions.co.uk/2010/06/09/sitecore-item-mirroring-making-an-item-appear-in-more-than-one-place/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da00436ef9beff20d0f70144c9e75385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve Green</media:title>
		</media:content>

		<media:content url="http://sitecored.files.wordpress.com/2010/06/itemmirror1.png" medium="image">
			<media:title type="html">itemmirror</media:title>
		</media:content>
	</item>
		<item>
		<title>XHTML Compliance and the Rich Text Editor</title>
		<link>http://blog.capaxsolutions.co.uk/2010/05/18/xhtml-compliance-and-the-rich-text-editor/</link>
		<comments>http://blog.capaxsolutions.co.uk/2010/05/18/xhtml-compliance-and-the-rich-text-editor/#comments</comments>
		<pubDate>Tue, 18 May 2010 12:24:28 +0000</pubDate>
		<dc:creator>Steve Green</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.capaxsolutions.co.uk/?p=215</guid>
		<description><![CDATA[HTML is a bit of a tricky beast, for a long time you couldn’t make any changes at all without technical knowledge of how it works. Quickly enough people created HTML “editors” but until recently they’ve been well, frankly rubbish. Thankfully the one used it Sitecore ticks all the boxes; it has all the standard [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=215&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">
<p>HTML is a bit of a tricky beast, for a long time you couldn’t make any changes at all without technical knowledge of how it works. Quickly enough people created HTML “editors” but until recently they’ve been well, frankly rubbish. Thankfully the one used it Sitecore ticks all the boxes; it has all the standard editing features you’d expect to see and behaves in a WYSIWYG fashion.</p>
</div>
<p>The only downside to this process however is that rich text editors still can’t replicate a web developer’s ability to produce HTML that is <strong>always </strong>compliant with XHTML standards, especially once all the features of the rich text editor have been enabled.</p>
<p>This presents a particular problem for projects caught between the conflicting requirements of 100% compliant XHTML websites while also allowing non-technical content editors to make changes using the fully featured Rich Text Editor. Here are 5 suggestions that will help you with both of these:</p>
<div id="_mcePaste">
<ol>
<li><strong>Rich Text Editor Snippets</strong> – This feature in Sitecore allows you to insert prefabricated HTML templates that have already been validated for XHTML compliance. An example would be a div containing <a href="http://en.wikipedia.org/wiki/Lorem_ipsum" target="_blank">Lorem Ipsum</a> text with a placeholder image floating to the right. Content editors can then insert this snippet into the RTE via a dropdown menu and then change the filler text and image to suit, the underlying HTML itself however will be unchanged. A good example of how this can be done can be found on <a href="http://learnsitecore.cmsuniverse.net/en/Editors/Articles/2009/06/How%20to%20use%20snippets.aspx" target="_blank">learnsitecore.cmsuniverse.net</a>.</li>
<li><strong>Sitecore WebStylesheet</strong> – Any CSS classes stored in this style sheet (default.css) will be available in the rich text editor via the “Apply CSS Class” dropdown menu. This allows editors to style their content according to a predefined style guide instead of using hardcoded inline styles. This also greatly reduces the amount of non-transitional compliant HTML generated as most of the invalid statements are regarding style related tags such as align=”left”. Additional details on configuring this feature can be found in the <a href="http://sdn.sitecore.net/upload/sitecore6/sc62keywords/client_configuration_cookbook_sc62_a4.pdf#page=21" target="_blank">Client Configuration Cookbook</a> on the Sitecore Developer Network.</li>
<li><strong>Automatic Workflow triaging of content</strong> – With a small amount of development a workflow action could be created that would automatically put items that fail validation into an “Awaiting Web Developer” state. From here someone with technical HTML knowledge could manually fix the errors and then move the item into the normal “Awaiting Approval” state. This way the content editors would no longer have to worry about HTML validation and items would only be escalated if special attention was required. I&#8217;ve gone ahead and created this in a previous blog post which you can find <a href="/2010/04/19/sitecore-triage-workflow-action/" target="_blank">here</a>.</li>
<li><strong>Customize the RTE Profile</strong> – Each rich text field is associated to a profile which defines which buttons are available (e.g. bullet points, bold, italic). I would recommend standardising this across the site and only removing those features which aren’t required. More information on configuring the RTE profiles can be found in the <a href="http://sdn.sitecore.net/upload/sitecore6/sc62keywords/client_configuration_cookbook_sc62_a4.pdf#page=19" target="_blank">Client Configuration Cookbook</a> on the Sitecore Developer Network.</li>
<li><strong>Reduce use of Rich Text fields</strong> &#8211; In many cases the problem can be avoided in its entirety by simply redesigning the page so it no longer needs the rich text field, you can achieve this by replacing it with a series of single and multi-line text fields. This has the added bonus of keeping content and presentation separate which allows for greater reuse and flexibility.</li>
</ol>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitecored.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitecored.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitecored.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitecored.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitecored.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitecored.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitecored.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitecored.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitecored.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitecored.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitecored.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitecored.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitecored.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitecored.wordpress.com/215/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=215&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.capaxsolutions.co.uk/2010/05/18/xhtml-compliance-and-the-rich-text-editor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da00436ef9beff20d0f70144c9e75385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve Green</media:title>
		</media:content>
	</item>
		<item>
		<title>Improving Code Quality</title>
		<link>http://blog.capaxsolutions.co.uk/2010/05/04/improving-code-quality/</link>
		<comments>http://blog.capaxsolutions.co.uk/2010/05/04/improving-code-quality/#comments</comments>
		<pubDate>Tue, 04 May 2010 06:02:26 +0000</pubDate>
		<dc:creator>Steve Green</dc:creator>
				<category><![CDATA[Best Practice]]></category>
		<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://blog.capaxsolutions.co.uk/?p=218</guid>
		<description><![CDATA[Last week someone asked me to email them a list of tips for improving code quality and I thought it would make a nice blog post; I picked just three areas and only made a few bullet points for each one: Automated code quality Resharper + StyleCop Plugin – This is a fantastic product that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=218&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">Last week someone asked me to email them a list of tips for improving code quality and I thought it would make a nice blog post; I picked just three areas and only made a few bullet points for each one:</div>
<p></p>
<h3>Automated code quality</h3>
<div id="_mcePaste">
<ul>
<li><strong>Resharper + StyleCop Plugin</strong> – This is a fantastic product that will both spot common programming mistakes and suggest improvements. With the stylecop plugin it will enforce the Microsoft formatting standard ensuring code consistency and readability.</li>
<li><strong>FxCop </strong>– Scans your compiled dlls for known issues recorded by Microsoft, it’s a bit noisy but some of the potential problems it spots can be incredibly useful.</li>
<li><strong>GhostDoc </strong>–Auto-generates and scaffolds out your comments based on the code naming, so a method called GetCustomerRecords will create a comment that simply says “Gets the customer records”. Still requires you to fill in the comments but does the initial legwork.</li>
</ul>
</div>
<h3>Training</h3>
<div id="_mcePaste">
<ul>
<li><strong>MCPD training</strong> – Sadly rife with cheating due to the answers been freely available online the MCPD certification are still a really fantastic certification, not so much for the depth of information but rather the breadth.</li>
<li><strong>Transcender </strong>– The intention of Transcender is to help people prepare for exams but I would recommend using it for people who have already passed. It will often show up gaps in their training and areas they need to work on.</li>
<li><strong>Blogs </strong>– I would recommend that every developer has a rss reader which they check every morning, my personal favourite is google reader. Below are some of the blogs I’d recommend:
<ul>
<li><a href="http://weblogs.asp.net/scottgu/" target="_blank">Scott Gu, Product Manager of the .NET Framework (upcoming .Net features) </a></li>
<li><a href="http://blogs.msdn.com/ericlippert/" target="_blank">Fabulous Adventures In Coding (High level coding concepts) </a></li>
<li><a href="http://thedailywtf.com/" target="_blank">The Daily WTF (Humorous coding problems) </a></li>
<li><a href="http://pipes.yahoo.com/pipes/pipe.run?_id=ZsFOz4a62xG9Py3Idbq02Q&amp;_render=rss" target="_blank">Sitecore Pipe (Combined RSS feeds from Sitecore bloggers) </a></li>
<li><a href="http://www.hanselman.com/blog/" target="_blank">Scott Hanselman’s Blog (Microsoft Principal Program Manager) </a></li>
</ul>
</li>
<li><strong>Books </strong>– A great idea is to setup a company library and regularly stock it with new books on topics like Linq, MVC and C#/SQL/HTML reference material etc. The one book I would recommend as a “must buy” is Code Complete (2nd edition) by Steve McConnell, I couldn’t recommend it enough.</li>
<li><strong>Knowledge sharing</strong> – Naturally over time developers tend to become the expert, or go-to person for a particular topic, MVC, SQL or maybe an internal system. It’s great to have someone with a deep understanding of a topic but all too often this results in everyone else having zero understanding of it. Regular knowledge sharing sessions where that expert gives a 15 minute presentation on the topic helps everyone fill in the gaps and prevents disaster occurring if that expert leaves or is unavailable.</li>
<li><strong>Code review</strong> – Formal code reviews can be quite time consuming and by extension expensive, in situations where this isn’t possible you can still encourage quick peer review of code. Before checking in the final version of their code each developer should ask a co-worker to look over their work and see if they can spot any areas for improvement. Quite often glaring mistakes can be spotted that are otherwise invisible to the person who wrote them.</li>
</ul>
</div>
<h3>Testing</h3>
<div id="_mcePaste">
<ul>
<li><strong>JMeter </strong>– Stress testing during development is a must to ensure that performance issues don’t creep into a project only to be found after launch. It will also help you estimate infrastructure requirements and meet any agreed upon response times.</li>
<li><strong>Continuous Integration</strong> – CI is a broad topic but I’ll steal the definition from Wikipedia: “CI implements continuous processes of applying quality control &#8211; small pieces of effort, applied frequently. Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development.”</li>
<li><strong>Watin </strong>– Automated testing is typically restricted to just integration or unit testing of code. Watin allows you to write tests in C# that check the webpage itself, at the minimum I would recommend a recursive Watin test that checks the entire site for 500 errors and XSLT rendering warnings.</li>
<li><strong>Nunit </strong>– Since Sitecore is so tightly coupled to the HTTP context it’s difficult to write true unit tests but integration tests can be just as useful. Coupled with Watin running on a dedicated build server you can see real leaps in code quality and a massive reduction in unseen problems been deployed to production servers.</li>
</ul>
</div>
<p>The topic itself is massive and many books have been written on it (as I mentioned my favorite been Code Complete by Steve McConnell), make sure you post your favorites that I missed in the comments <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitecored.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitecored.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitecored.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitecored.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitecored.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitecored.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitecored.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitecored.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitecored.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitecored.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitecored.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitecored.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitecored.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitecored.wordpress.com/218/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=218&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.capaxsolutions.co.uk/2010/05/04/improving-code-quality/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da00436ef9beff20d0f70144c9e75385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve Green</media:title>
		</media:content>
	</item>
		<item>
		<title>Sitecore Triage Workflow Action</title>
		<link>http://blog.capaxsolutions.co.uk/2010/04/19/sitecore-triage-workflow-action/</link>
		<comments>http://blog.capaxsolutions.co.uk/2010/04/19/sitecore-triage-workflow-action/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 12:15:13 +0000</pubDate>
		<dc:creator>Steve Green</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://blog.capaxsolutions.co.uk/?p=203</guid>
		<description><![CDATA[Long time and no post but I&#8217;m hoping to get back into the swing of things. Decided to start off with something straightforward but hopefully useful, it&#8217;s a workflow action that will triage items that fail validation into another state. This would help content editors who lack technical skills and would otherwise have to fix XHTML [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=203&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Long time and no post but I&#8217;m hoping to get back into the swing of things.</p>
<p>Decided to start off with something straightforward but hopefully useful, it&#8217;s a workflow action that will triage items that fail validation into another state. This would help content editors who lack technical skills and would otherwise have to fix XHTML validation errors themselves.</p>
<p>I&#8217;ve included both the code below and a <a href="https://docs.google.com/uc?id=0B4IeqDDi6WLXMmNiYmU4NGUtMDY2OC00OGIwLTkzMzYtMWI1MWFlZjk0YWYz&amp;export=download&amp;hl=en_US" target="_blank">prefab package</a>, should be as simple as installing, adding the action to your workflow command and pointing it to the awaiting validation state, give me a shout if you have any trouble with it.</p>
<pre style="background-color:#ffffff;width:100%;overflow:scroll;"><span style="color:#0000ff;">using</span> System.Threading;
<span style="color:#0000ff;">using</span> Sitecore;
<span style="color:#0000ff;">using</span> Sitecore.Data.Items;
<span style="color:#0000ff;">using</span> Sitecore.Data.Validators;
<span style="color:#0000ff;">using</span> Sitecore.Diagnostics;
<span style="color:#0000ff;">using</span> Sitecore.Web.UI.Sheer;
<span style="color:#0000ff;">using</span> Sitecore.Workflows.Simple;
<span style="color:#0000ff;">namespace</span> WorkflowActionLibrary
{
    <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">class</span> TriageAction
    {
        <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> Process(WorkflowPipelineArgs args)
        {
            var workflowItem = args.DataItem;
            var validators = ValidatorManager.BuildValidators(ValidatorsMode.Workflow, workflowItem);
            var options = <span style="color:#0000ff;">new</span> ValidatorOptions(<span style="color:#0000ff;">true</span>);
            ValidatorManager.Validate(validators, options);
            ValidatorResult validatorResult = Validate(validators, args);
            <span style="color:#0000ff;">if</span> (validatorResult != ValidatorResult.Valid)
            {
                Item processorItem = args.ProcessorItem.InnerItem;
                <span style="color:#0000ff;">string</span> triageState = processorItem.Fields["<span style="color:#8b0000;">TriageState</span>"].Value;
                <span style="color:#0000ff;">if</span>(!<span style="color:#0000ff;">string</span>.IsNullOrEmpty(triageState))
                {
                    workflowItem.Editing.BeginEdit();
                    workflowItem.Fields[FieldIDs.WorkflowState].Value = triageState;
                    workflowItem.Editing.EndEdit();
                    args.AbortPipeline();
                }
            }
        }
        <span style="color:#0000ff;">private</span> <span style="color:#0000ff;">static</span> ValidatorResult Validate(ValidatorCollection validators, WorkflowPipelineArgs args)
        {
            Assert.ArgumentNotNull(validators, "<span style="color:#8b0000;">validators</span>");
            Assert.ArgumentNotNull(args, "<span style="color:#8b0000;">args</span>");
            ProcessorItem processorItem = args.ProcessorItem;
            <span style="color:#0000ff;">if</span> (processorItem == <span style="color:#0000ff;">null</span>)
            {
                <span style="color:#0000ff;">return</span> ValidatorResult.Valid;
            }
            <span style="color:#0000ff;">const</span> <span style="color:#0000ff;">int</span> @timout = 0x2710;
            <span style="color:#0000ff;">const</span> <span style="color:#0000ff;">int</span> timoutIncrement = 500;
            <span style="color:#0000ff;">int</span> counter = 0;
            <span style="color:#0000ff;">while</span> (<span style="color:#0000ff;">true</span>)
            {
                ValidatorResult validatorResult = ValidatorResult.Valid;
                <span style="color:#0000ff;">foreach</span> (BaseValidator validator <span style="color:#0000ff;">in</span> validators)
                {
                    <span style="color:#0000ff;">if</span> (validator.IsEvaluating)
                    {
                        validatorResult = ValidatorResult.Unknown;
                        <span style="color:#0000ff;">break</span>;
                    }
                    <span style="color:#0000ff;">if</span> (validator.Result &gt; validatorResult)
                    {
                        validatorResult = validator.Result;
                    }
                }
                <span style="color:#0000ff;">if</span> (validatorResult != ValidatorResult.Unknown)
                {
                    <span style="color:#0000ff;">return</span> validatorResult;
                }
                counter++;
                <span style="color:#0000ff;">if</span> ((counter * timoutIncrement) &gt; timout)
                {
                    SheerResponse.Alert("<span style="color:#8b0000;">Timeout on item validation during Triage Workflow action.</span>");
                    args.AbortPipeline();
                    <span style="color:#0000ff;">return</span> ValidatorResult.Unknown;
                }
                Thread.Sleep(timoutIncrement);
                ValidatorManager.UpdateValidators(validators);
            }
        }
    }
}</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitecored.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitecored.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitecored.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitecored.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitecored.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitecored.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitecored.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitecored.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitecored.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitecored.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitecored.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitecored.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitecored.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitecored.wordpress.com/203/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=203&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.capaxsolutions.co.uk/2010/04/19/sitecore-triage-workflow-action/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da00436ef9beff20d0f70144c9e75385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve Green</media:title>
		</media:content>
	</item>
		<item>
		<title>Goodbye London, Hello Brisbane</title>
		<link>http://blog.capaxsolutions.co.uk/2010/01/21/goodbye-london-hello-brisbane/</link>
		<comments>http://blog.capaxsolutions.co.uk/2010/01/21/goodbye-london-hello-brisbane/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 23:32:08 +0000</pubDate>
		<dc:creator>Steve Green</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.capaxsolutions.co.uk/?p=168</guid>
		<description><![CDATA[Good news everyone! I&#8217;ve joined Sitecore as a Solution Architect in their Brisbane Australia office! Things have been pretty hectic since I decided to jump ship for the other hemisphere which hopefully explains the lack of blog posts. Once everything is settled I&#8217;m sure I&#8217;ll get back into the swing of things. I&#8217;ve been keen to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=168&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Hubert_J._Farnsworth" target="_blank">Good news everyone!</a></p>
<p>I&#8217;ve joined Sitecore as a Solution Architect in their Brisbane Australia office!</p>
<p>Things have been pretty hectic since I decided to jump ship for the other hemisphere which hopefully explains the lack of blog posts. Once everything is settled I&#8217;m sure I&#8217;ll get back into the swing of things.</p>
<p>I&#8217;ve been keen to work for Sitecore for a while now but why Brisbane? Below is a sample of what tempted me back to the the Antipodes:</p>
<p><a href="http://sitecored.files.wordpress.com/2010/01/london1.png"><img class="alignleft size-medium wp-image-184" title="London weather" src="http://sitecored.files.wordpress.com/2010/01/london1.png?w=216&#038;h=300" alt="" width="216" height="300" /></a><a href="http://sitecored.files.wordpress.com/2010/01/brisbane1.png"><img class="alignright size-medium wp-image-183" title="Brisbane weather" src="http://sitecored.files.wordpress.com/2010/01/brisbane1.png?w=210&#038;h=300" alt="" width="210" height="300" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitecored.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitecored.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitecored.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitecored.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitecored.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitecored.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitecored.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitecored.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitecored.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitecored.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitecored.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitecored.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitecored.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitecored.wordpress.com/168/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.capaxsolutions.co.uk&amp;blog=9199105&amp;post=168&amp;subd=sitecored&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.capaxsolutions.co.uk/2010/01/21/goodbye-london-hello-brisbane/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da00436ef9beff20d0f70144c9e75385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve Green</media:title>
		</media:content>

		<media:content url="http://sitecored.files.wordpress.com/2010/01/london1.png?w=216" medium="image">
			<media:title type="html">London weather</media:title>
		</media:content>

		<media:content url="http://sitecored.files.wordpress.com/2010/01/brisbane1.png?w=210" medium="image">
			<media:title type="html">Brisbane weather</media:title>
		</media:content>
	</item>
	</channel>
</rss>
