<?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>Ben Robb&#039;s SharePoint Blog</title>
	<atom:link href="http://sharepointtales.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://sharepointtales.wordpress.com</link>
	<description>SharePoint Tales. Or SharePoint Ales. Take your pick...</description>
	<lastBuildDate>Wed, 23 Feb 2011 10:44:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='sharepointtales.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Ben Robb&#039;s SharePoint Blog</title>
		<link>http://sharepointtales.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://sharepointtales.wordpress.com/osd.xml" title="Ben Robb&#039;s SharePoint Blog" />
	<atom:link rel='hub' href='http://sharepointtales.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Best Practice Conference DC</title>
		<link>http://sharepointtales.wordpress.com/2010/08/12/best-practice-conference-dc/</link>
		<comments>http://sharepointtales.wordpress.com/2010/08/12/best-practice-conference-dc/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 13:05:51 +0000</pubDate>
		<dc:creator>Ben Robb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sharepointtales.wordpress.com/?p=77</guid>
		<description><![CDATA[I&#8217;m putting the final finishing touches to my sessions at this year&#8217;s Best Practices Conference in Washington, D.C, and I&#8217;m really looking forward to catching up with lots of old friends from across the pond &#8211; especially since so many couldn&#8217;t make it over to SP Evolution because of the Ash Cloud in April. The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=77&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m putting the final finishing touches to my sessions at this year&#8217;s Best Practices Conference in Washington, D.C, and I&#8217;m really looking forward to catching up with lots of old friends from across the pond &#8211; especially since so many couldn&#8217;t make it over to SP Evolution because of the Ash Cloud in April. The line up this year is absolutely fantastic, with lots of MVPs, MCMs and other experts making the time to put on one of the biggest SharePoint conferences of the year.</p>
<p style="text-align:center;"><strong><a href="http://www.bestpracticesconference.com"><img class="aligncenter size-full wp-image-78" title="banner304x168" src="http://sharepointtales.files.wordpress.com/2010/08/banner304x168.jpg?w=700" alt="Best Practices Conference 2010"   /></a></strong></p>
<p>I&#8217;m doing 3 sessions:</p>
<ul>
<li>Building search driven internet applications using FAST and SharePoint WCM</li>
<li>Build a SharePoint 2010 publishing website in 60 minutes</li>
<li>Extending Web Analytics reports to provide campaign / goal driven websites SharePoint 2010</li>
</ul>
<p>3 sessions in 3 days, plus an Ask the Experts sessions is going to be hard going, but should be good fun too. I&#8217;ll be posting supporting material up during the conference, so keep tuned.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sharepointtales.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sharepointtales.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sharepointtales.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sharepointtales.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sharepointtales.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sharepointtales.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sharepointtales.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sharepointtales.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sharepointtales.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sharepointtales.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sharepointtales.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sharepointtales.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sharepointtales.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sharepointtales.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=77&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sharepointtales.wordpress.com/2010/08/12/best-practice-conference-dc/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/70c037b6bfbf264ca6e42bb9719f81c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ben Robb</media:title>
		</media:content>

		<media:content url="http://sharepointtales.files.wordpress.com/2010/08/banner304x168.jpg" medium="image">
			<media:title type="html">banner304x168</media:title>
		</media:content>
	</item>
		<item>
		<title>Demo content: importing the complete works of Shakespeare to SharePoint</title>
		<link>http://sharepointtales.wordpress.com/2010/07/19/demo-content-importing-the-complete-works-of-shakespeare-to-sharepoint/</link>
		<comments>http://sharepointtales.wordpress.com/2010/07/19/demo-content-importing-the-complete-works-of-shakespeare-to-sharepoint/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 13:09:40 +0000</pubDate>
		<dc:creator>Ben Robb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sharepointtales.wordpress.com/?p=67</guid>
		<description><![CDATA[We often find that we need a fair amount of sample content to really showcase some extended WCM and FAST scenarios, and found that lorem ipsum and other automated text generation just wasn&#8217;t cutting it. As someone with a keen interest in the theatre, where better to turn to than Shakespeare&#8217;s plays, especially since I found out [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=67&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We often find that we need a fair amount of sample content to really showcase some extended WCM and FAST scenarios, and found that lorem ipsum and other automated text generation just wasn&#8217;t cutting it. As someone with a keen interest in the theatre, where better to turn to than Shakespeare&#8217;s plays, especially since I found out that someone went to the <a href="http://metalab.unc.edu/bosak/xml/eg/shaks200.zip" target="_blank">trouble of marking up all 37 plays in XML</a>. </p>
<p>There were a number of challenges to work through:     </p>
<ol type="1">
<li>The XML I downloaded had DTD references that I couldn&#8217;t be bothered working through how to make work via the System.Xml.XmlDocument object, so I went in and deleted these in all of the files. This made processing easier. </li>
<li>The structure I chose to implement this in was a series of webs beneath a root web, with Root / Plays / [Play name] / [Act name]. Each act web has pages beneath it.</li>
<li>I needed to convert the data in each scene to XHTML to push into the PageContent field.</li>
<li>It takes about an hour on my VM to process all 37 plays – resulting in around 130 webs and nearly 1000 SharePoint publishing pages.</li>
</ol>
<p>With this is mind I had the following code:  </p>
<div>$xmlpath = &#8220;C:\SPBPC2010\Assets\shaks200&#8243;<br />
$xmlpath | ls -Filter &#8220;*.xml&#8221; | % { Process-Play -play ([xml] (Get-Content $_.VersionInfo.FileName)) -parentweb $playsWeb }</div>
<p>This iterates through the folder that contains the XML files for the plays, and calls “Process-Play”.             </p>
<p>function Process-Play([xml] $play, [Microsoft.SharePoint.SPWeb] $parentWeb)<br />
{<br />
Write-Host &#8220;Processing play: &#8221; $play.PLAY.TITLE </p>
<div>## 1. Create the web for the PLAY</div>
<div>$name = Convert-ToSafeString $play.PLAY.TITLE</div>
<div>$playWeb = New-SPWeb (&#8220;{0}/{1}&#8221; -f $playsWeb.Url, $name) -name $play.PLAY.TITLE -Template $basetemplate</div>
<div> </div>
<div>## 2. Process the ACTS</div>
<div>$play.PLAY.ACT | % { Process-Act -act $_ -web $playWeb}</div>
<div> </div>
<div>Write-Host &#8220;Finished processing play: &#8221; $play.PLAY.TITLE</div>
<div>Write-Host &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&#8221;</div>
<div>}</div>
<div>
<div> </div>
<p>Here, we are using a function called “Convert-ToSafeString” to get rid of spaces, quotes and other characters which will cause issues in a URL, and then create a new web for that play. We then walk down through the XML ($play.PLAY.ACT) and call “Process-Act”. This does a very similar thing, and also calls “Process-Scene”:$act.SCENE | % { Process-Scene -scene $_ -web $actWeb}</p>
</div>
<div>
<div>Powershell is great for doing this kind of iterative processing, and is really a time saver when it comes to writing quick scripts to do this kind of task.</div>
<p>Process-Scene is where we start actually putting in some content. For each scene, we want to create a Publishing Page and then add content to the Page Content field: </p>
</div>
<div>function Process-Scene([System.Xml.XmlElement] $scene, [Microsoft.SharePoint.SPWeb] $web)</div>
<div>{</div>
<div>Write-Host &#8220;Processing the scene: &#8220;$scene.TITLE</div>
<div>## 1. Create the page</div>
<div> </div>
<div>$pubweb = Get-SPPublishingWeb -web $web</div>
<div>$PageLayout = Get-SPPublishingPageLayout -web $web -name $basepagelayout</div>
<div>$pagename = Convert-ToSafeString ($scene.TITLE.Substring(0, $scene.TITLE.IndexOf(&#8220;.&#8221;)))</div>
<div>$pagecollection = [Microsoft.SharePoint.Publishing.PublishingPageCollection] $pubweb.GetPublishingPages()</div>
<div>$page = New-SPPublishingPage -PageCollection $pagecollection -name $pagename -pagelayout $pagelayout -title $scene.TITLE</div>
<div> </div>
<div>## 2. Field: PageContent</div>
<div>$pagecontent = Transform-Xml -xsl $sceneXsl -xml $scene</div>
<div>$page.ListItem.Set_Item(&#8220;PublishingPageContent&#8221;, $pagecontent)      </div>
<div> </div>
<div>## 5. Update and Publish</div>
<div>$page.Update()</div>
<div>$page.ListItem.Update()</div>
<div>$page.CheckIn($true)</div>
<div>$page.ListItem.File.Publish($true)</div>
<div> </div>
<div>}</div>
<div>
Here you can see we are creating a new publishing page [I have a utility function for this – it isn’t out of the box], and calling another utility function “Transform-Xml” to set the value of the PublishingPageContent field to the transformed content.<br />
 </div>
<div>These utility functions are here: </div>
<div>## ==============================================================================</div>
<div>## UTILITY FUNCTIONS</div>
<div>## ==============================================================================</div>
<div> </div>
<div>function Get-SPPublishingWeb( [Microsoft.SharePoint.SPWeb] $web )</div>
<div>{</div>
<div>&lt;#</div>
<div>       .SYNOPSIS</div>
<div>              Gets a SharePoint publishing web</div>
<div>       .EXAMPLES</div>
<div>                    </div>
<div>#&gt;</div>
<div>       return [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($web)</div>
<div>}</div>
<div> </div>
<div>## ==============================================================================</div>
<div> </div>
<div>function Get-SPPublishingPageLayout(</div>
<div>       [Microsoft.SharePoint.SPWeb] $web,</div>
<div>       [string] $name)</div>
<div>{</div>
<div>&lt;#</div>
<div>       .SYNOPSIS</div>
<div>              Gets a publishing page layout</div>
<div>       .EXAMPLES</div>
<div>                    </div>
<div>#&gt;</div>
<div>       $pubWeb = Get-SPPublishingWeb($web)</div>
<div>       return $pubWeb.GetAvailablePageLayouts() | ? { $_.Name -eq $name}   </div>
<div>}</div>
<div> </div>
<div>## ==============================================================================</div>
<div> </div>
<div>function New-SPPublishingPage(</div>
<div>       [Microsoft.SharePoint.Publishing.PublishingPageCollection] $PageCollection,</div>
<div>       [string] $Name,</div>
<div>       [Microsoft.SharePoint.Publishing.PageLayout] $PageLayout,</div>
<div>       [string] $Title)</div>
<div>{</div>
<div>&lt;#</div>
<div>       .SYNOPSIS</div>
<div>              Creates a publishing page in the SPPublishingPageCollection supplied</div>
<div>       .EXAMPLES</div>
<div>                    </div>
<div>#&gt;</div>
<div>Write-Host &#8220;Creating page: $PageName&#8221;</div>
<div>       $newPage = $PageCollection.Add(($Name + &#8220;.aspx&#8221;), $PageLayout)</div>
<div>       $newPage.Title = $Title   </div>
<div>       $newPage.Update()</div>
<div>       $newPage.ListItem.Update()</div>
<div> </div>
<div>       return [Microsoft.SharePoint.Publishing.PublishingPage] $newPage</div>
<div>}</div>
<div> </div>
<div>## ==============================================================================</div>
<div> </div>
<div>function Convert-ToSafeString([string] $s)</div>
<div>{</div>
<div>       return $s.Replace(&#8221; &#8220;, &#8220;-&#8221;).Replace(&#8220;&#8216;&#8221;, &#8220;&#8221;).Replace(&#8220;,&#8221;,&#8221;")</div>
<div>}</div>
<div> </div>
<div>## ==============================================================================</div>
<div> </div>
<div>function Transform-Xml([System.Xml.Xsl.XslCompiledTransform] $xsl, $xml)</div>
<div>{</div>
<div>       $sw = New-Object System.IO.StringWriter</div>
<div>       $xsl.Transform($xml, $null, $sw) | Out-Null</div>
<div>       Write-Output $sw.ToString()</div>
<div>}</div>
<div><a href="http://www.cscape.com/Documents/ShakespeareInSP.zip">See here for the complete PS and XSL.</a></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sharepointtales.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sharepointtales.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sharepointtales.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sharepointtales.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sharepointtales.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sharepointtales.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sharepointtales.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sharepointtales.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sharepointtales.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sharepointtales.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sharepointtales.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sharepointtales.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sharepointtales.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sharepointtales.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=67&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sharepointtales.wordpress.com/2010/07/19/demo-content-importing-the-complete-works-of-shakespeare-to-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/70c037b6bfbf264ca6e42bb9719f81c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ben Robb</media:title>
		</media:content>
	</item>
		<item>
		<title>Manipulating the Terms Store through Powershell</title>
		<link>http://sharepointtales.wordpress.com/2010/05/06/manipulating-the-terms-store-through-powershell/</link>
		<comments>http://sharepointtales.wordpress.com/2010/05/06/manipulating-the-terms-store-through-powershell/#comments</comments>
		<pubDate>Thu, 06 May 2010 16:42:04 +0000</pubDate>
		<dc:creator>Ben Robb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sharepointtales.wordpress.com/?p=64</guid>
		<description><![CDATA[I really like Powershell, for its repeatability, the fact that it means I know that that once I&#8217;ve worked out how to do something I can save it in my stash of modules for later, and the way that I can spin up lots of different scenarios very quickly. For my session on &#8220;Build a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=64&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I <strong>really</strong> like Powershell, for its repeatability, the fact that it means I know that that once I&#8217;ve worked out how to do something I can save it in my stash of modules for later, and the way that I can spin up lots of different scenarios very quickly.</p>
<p>For my session on &#8220;Build a website in 60 minutes&#8221; at SP Evo, I spent a fair amount of time pulling together scripts for manipulating term store data quickly. I could, I guess, have just used the out of the box &#8220;import CSV file&#8221; option from the UI. But that won&#8217;t cut it when going between multiple environments in the real world. I need to be able to do it from my build scripts, and I couldn&#8217;t find any way via the API to import from a CSV &#8211; it seems that code is locked into the web UI, not baked into the core APIs.</p>
<p>There are other posts out there for how to set up the term store in the first place, both manually and via Powershell, so I&#8217;ll not repeat them here. But assuming you have a term store available, here is some very straightforward Powershell to start populating it:</p>
<p>Assuming you have an XML file in this format:</p>
<pre>&lt;?xml version="1.0"?&gt;
&lt;termstore name="Managed Metadata Service Application Proxy"&gt; 
  &lt;group name="SPEvo"&gt;
    &lt;termset name="Services"&gt;
      &lt;term name="Customer Engagement"&gt;
        &lt;term name="Analytics"&gt;
        &lt;/term&gt;
        &lt;term name="Search Engine Optimisation"&gt;
        &lt;/term&gt;
        &lt;term name="Engagement Strategies"&gt;
        &lt;/term&gt;
      &lt;/term&gt;
      &lt;term name="Technology"&gt;
        &lt;term name="Technical Build and Delivery"&gt;
        &lt;/term&gt;
        &lt;term name="Technical Consultancy"&gt;
        &lt;/term&gt;
        &lt;term name="Technical Design"&gt;
        &lt;/term&gt;
      &lt;/term&gt;
      &lt;term name="User Experience"&gt;
        &lt;term name="Creative Design"&gt;
        &lt;/term&gt;
        &lt;term name="Information Architecture"&gt;
        &lt;/term&gt;
      &lt;/term&gt;
    &lt;/termset&gt;
  &lt;/group&gt;
&lt;/termstore&gt;</pre>
<p>You should be able to manipulate that like this:</p>
<pre> $TermStoreData = [xml] (Get-Content ($xmlpath))
 $site = Get-SPSite $url
 $session = new-object Microsoft.SharePoint.Taxonomy.TaxonomySession($site)
 $termstore = $session.TermStores[$TermStoreData.termstore.name]
 $TermStoreData.termstore.group |
 ForEach-Object {
  ## create the group
  if ($termstore.Groups[$_.name] -eq $null)
  {
   $group = $termstore.CreateGroup($_.name);
   Write-Host -ForegroundColor Cyan "Added group $_.name"
   $_.termset |
   ForEach-Object {
    ## create the termset
    $termset = $group.CreateTermSet($_.name)
    Write-Host -ForegroundColor Cyan "Added termset $_.name"
    SetTermsRecursive -termsetitem $termset -parentnode $_
   }
  }
 }
 $termstore.CommitAll()</pre>
<p>Some of the &#8220;power&#8221; of &#8220;Powershell&#8221; is in its ability to load up standard .NET objects; in this case there are no out of the box cmdlets to add term store data, so we have to make use of &#8220;new-object&#8221; to load up the TaxonomySession object. From that we are into native SharePoint code &#8211; walking down the XML and creating Term Store Groups, Term Sets and then ultimately Terms. The terms in this example are deployed in a recursive function:</p>
<pre>function SetTermsRecursive ([Microsoft.SharePoint.Taxonomy.TermSetItem] $termsetitem, $parentnode)
{
 $parentnode.term |
 ForEach-Object {
  ## create the term
  $newterm = $termsetitem.CreateTerm($_.name, 1033)
  Write-Host -ForegroundColor Cyan "Added term $_.name"
  SetTermsRecursive($termsetitem, $_)
 }
}</pre>
<p>Pretty neat? Some core Powershell abilities are showcased here:</p>
<ul>
<li>Walking through XML DOM structures via the &#8220;dot&#8221; shorthand notation. For example, $TermStoreData.termstore.group is equivalent to $TermStoreData.SelectNodes(&#8220;/termstore/group&#8221;) &#8211; the dot notation means less typing and more readable code.</li>
<li>Pipelines &#8211; for example, the ForEach-object and pipeline associated $_ syntax.</li>
</ul>
<p>These can be difficult to read in examples, but I strongly advise anyone starting out in Powershell to get to grips with these, particularly the piping model.</p>
<p>Anyway, the end result is that in a few lines of fairly simple Powershell you can take an XML file and build up a term store with data as part of your deployment model. I&#8217;ll post later about why that is important if you ever want to <em>use</em> those term sets in, say a site column declaration&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sharepointtales.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sharepointtales.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sharepointtales.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sharepointtales.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sharepointtales.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sharepointtales.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sharepointtales.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sharepointtales.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sharepointtales.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sharepointtales.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sharepointtales.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sharepointtales.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sharepointtales.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sharepointtales.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=64&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sharepointtales.wordpress.com/2010/05/06/manipulating-the-terms-store-through-powershell/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/70c037b6bfbf264ca6e42bb9719f81c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ben Robb</media:title>
		</media:content>
	</item>
		<item>
		<title>Creating SharePoint Page Layouts as features in 2010</title>
		<link>http://sharepointtales.wordpress.com/2010/04/27/creating-sharepoint-page-layouts-as-features-in-2010/</link>
		<comments>http://sharepointtales.wordpress.com/2010/04/27/creating-sharepoint-page-layouts-as-features-in-2010/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 15:53:02 +0000</pubDate>
		<dc:creator>Ben Robb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sharepointtales.wordpress.com/?p=57</guid>
		<description><![CDATA[You have hacked together a proof of concept in SharePoint Designer, and now you need to start working for real in SharePoint features. In 2007, you had little choice other than knowing the syntax and working out the values for the associated content type.   What we are looking for is something like:  &#60;File Path=&#8221;MyPageLayout.aspx&#8221; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=57&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:Georgia;font-size:10pt;">You have hacked together a proof of concept in SharePoint Designer, and now you need to start working for real in SharePoint features. In 2007, you had little choice other than knowing the syntax and working out the values for the associated content type.  </span><span style="font-size:1pt;"><br />
</span></p>
<p><span style="font-family:Georgia;font-size:10pt;">What we are looking for is something like: <br />
</span></p>
<p><span style="color:maroon;font-family:Courier New;font-size:10pt;">&lt;File Path=&#8221;MyPageLayout.aspx&#8221; Url=&#8221;MyPageLayout.aspx&#8221; Type=&#8221;GhostableInLibrary&#8221;&gt;<br />
</span><span style="color:maroon;font-family:Courier New;font-size:10pt;">    &lt;Property Name=&#8221;Title&#8221; Value=&#8221;My Page Layout&#8221;/&gt;<br />
</span><span style="color:maroon;font-family:Courier New;font-size:10pt;">    &lt;Property Name=&#8221;ContentType&#8221; Value=&#8221;$Resources:cmscore, contenttype_pagelayout_name&#8221;/&gt;<br />
</span><span style="color:maroon;font-family:Courier New;font-size:10pt;">    &lt;Property Name=&#8221;PublishingAssociatedContentType&#8221; Value=&#8221;#;MyContentType;[a really long id];#&#8221;/&gt;<br />
</span><span style="color:maroon;font-family:Courier New;font-size:10pt;">&lt;/File&gt;<br />
</span></p>
<p><span style="font-family:Georgia;font-size:10pt;">Ideally, we&#8217;d like some nice powerful mechanisms from within the Visual Studio IDE for generating this stuff. I&#8217;m working on that as part of a submission to the CKS:DEV team, but in the meantime we do have another solution. In 2010, you now have Powershell. And look what it can do for you… <br />
</span></p>
<p><span style="font-family:Georgia;font-size:10pt;">First, we need to be able to get the page layout in question from a supplied SPWeb and name.<br />
</span></p>
<p><span style="color:blue;font-family:Courier New;font-size:10pt;">function <span style="color:black;"><span style="color:mediumblue;">Get-SPPublishingPageLayout<span style="color:black;">(<br />
</span></span></span></span><span style="color:black;font-family:Courier New;font-size:10pt;">    [<span style="color:saddlebrown;">Microsoft.SharePoint.SPWeb<span style="color:black;">] <span style="color:purple;">$web<span style="color:black;">,<br />
</span></span></span></span></span><span style="color:black;font-family:Courier New;font-size:10pt;">    [<span style="color:blue;">string<span style="color:black;">] <span style="color:purple;">$name<span style="color:black;">)<br />
</span></span></span></span></span><span style="color:black;font-family:Courier New;font-size:10pt;">{<br />
</span><span style="color:black;font-family:Courier New;font-size:10pt;">    <span style="color:purple;">$pubWeb <span style="color:black;"><span style="color:red;">= <span style="color:black;"><span style="color:cadetblue;">Get-SPPublishingWeb <span style="color:black;"><span style="color:cadetblue;">-web <span style="color:black;"><span style="color:purple;">$web <br />
</span></span></span></span></span></span></span></span></span></span><span style="color:black;font-family:Courier New;font-size:10pt;">    <span style="color:blue;">return <span style="color:black;"><span style="color:purple;">$pubWeb<span style="color:black;">.<span style="color:saddlebrown;">GetAvailablePageLayouts<span style="color:black;">() <span style="color:blue;">|<span style="color:black;"> ? { <span style="color:navy;">$_<span style="color:black;">.<span style="color:saddlebrown;">Name <span style="color:black;"><span style="color:red;">-eq <span style="color:black;"><span style="color:purple;">$name<span style="color:black;">} <br />
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="color:black;font-family:Courier New;font-size:10pt;">}<br />
</span></p>
<p><span style="font-family:Georgia;font-size:10pt;">Next, we need to format all those bits into the right structure:<br />
</span></p>
<p><span style="color:blue;font-family:Courier New;font-size:10pt;">function <span style="color:black;"><span style="color:mediumblue;">Get-XmlForPageLayout<span style="color:black;">([<span style="color:blue;">string<span style="color:black;">] <span style="color:purple;">$name<span style="color:black;">)<br />
</span></span></span></span></span></span></span></span><span style="color:black;font-family:Courier New;font-size:10pt;">{<br />
  </span><span style="color:purple;font-family:Courier New;font-size:10pt;">$layout <span style="color:black;"><span style="color:red;">= <span style="color:black;"><span style="color:cadetblue;">Get-SPPublishingPageLayout  <span style="color:black;"><span style="color:cadetblue;">-web<span style="color:black;"> (<span style="color:cadetblue;">Get-SPWeb <span style="color:black;"><span style="color:purple;">$siteurl<span style="color:black;">) <span style="color:cadetblue;">-name <span style="color:black;"><span style="color:purple;">$name<br />
  </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="color:blue;font-family:Courier New;font-size:10pt;">return<span style="color:black;"> (<span style="color:blue;">@&#8221;</span></span></span><span style="color:maroon;font-family:Courier New;font-size:10pt;">&lt;File Path=&#8221;{0}&#8221; Url=&#8221;{0}&#8221; Type=&#8221;GhostableInLibrary&#8221;&gt;<br />
</span><span style="color:maroon;font-family:Courier New;font-size:10pt;">    &lt;Property Name=&#8221;Title&#8221; Value=&#8221;{1}&#8221;/&gt;<br />
</span><span style="color:maroon;font-family:Courier New;font-size:10pt;">    &lt;Property Name=&#8221;ContentType&#8221; Value=&#8221;$Resources:cmscore, contenttype_pagelayout_name&#8221;/&gt;<br />
</span><span style="color:maroon;font-family:Courier New;font-size:10pt;">    &lt;Property Name=&#8221;PublishingAssociatedContentType&#8221; Value=&#8221;#;{2};{3};#&#8221;/&gt;<br />
</span><span style="color:maroon;font-family:Courier New;font-size:10pt;">&lt;/File&gt;<br />
</span><span style="color:blue;font-family:Courier New;font-size:10pt;">&#8220;@ <span style="color:black;"><span style="color:red;">-f <span style="color:black;"><span style="color:maroon;">&#8220;PublishingModule\$name&#8221;<span style="color:black;">, <span style="color:purple;">$layout<span style="color:black;">.<span style="color:saddlebrown;">Title<span style="color:black;">, <span style="color:purple;">$layout<span style="color:black;">.<span style="color:saddlebrown;">AssociatedContentType<span style="color:black;">.<span style="color:saddlebrown;">Name<span style="color:black;">, <span style="color:purple;">$layout<span style="color:black;">.<span style="color:saddlebrown;">AssociatedContentType<span style="color:black;">.<span style="color:saddlebrown;">Id<span style="color:black;">)<br />
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="color:black;font-family:Courier New;font-size:10pt;">}</span> </p>
<p><span style="font-family:Georgia;font-size:10pt;">This now makes it really easy to get the format you need for your elements.xml file. All you need to do now is call this function:<br />
</span></p>
<p><span style="color:purple;font-family:Courier New;"><span style="font-size:10pt;">$siteurl <span style="color:black;"><span style="color:red;">= </span></span></span><span style="color:maroon;">&#8220;http://www.fabrikam.com&#8221;<span style="color:cadetblue;"><br />
Get-XmlForPageLayout  <span style="color:black;"><span style="color:cadetblue;">-name <span style="color:black;"><span style="color:maroon;">&#8220;homepage.aspx&#8221;</span></span></span></span></span></span></span></p>
<p><span style="font-family:Georgia;font-size:10pt;">Now all you need to do is cut and paste that output from your Powershell command into Visual Studio.</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sharepointtales.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sharepointtales.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sharepointtales.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sharepointtales.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sharepointtales.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sharepointtales.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sharepointtales.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sharepointtales.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sharepointtales.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sharepointtales.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sharepointtales.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sharepointtales.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sharepointtales.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sharepointtales.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=57&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sharepointtales.wordpress.com/2010/04/27/creating-sharepoint-page-layouts-as-features-in-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/70c037b6bfbf264ca6e42bb9719f81c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ben Robb</media:title>
		</media:content>
	</item>
		<item>
		<title>SPEvo slides</title>
		<link>http://sharepointtales.wordpress.com/2010/04/26/spevo-slides/</link>
		<comments>http://sharepointtales.wordpress.com/2010/04/26/spevo-slides/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 08:18:53 +0000</pubDate>
		<dc:creator>Ben Robb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sharepointtales.wordpress.com/?p=53</guid>
		<description><![CDATA[SharePoint Evolution was a blast, and even though a lot of speakers didn&#8217;t make it over, everyone pulled together. All credit to the Combined Knowledge team, especially Steve Smith and Zoe Watson for not breaking under the pressure of #ashtag. Like many others (especially Spence Harbar and Eric Shupps), I did a number of extra [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=53&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>SharePoint Evolution was a blast, and even though a lot of speakers didn&#8217;t make it over, everyone pulled together. All credit to the Combined Knowledge team, especially Steve Smith and Zoe Watson for not breaking under the pressure of #ashtag.</p>
<p>Like many others (especially Spence Harbar and Eric Shupps), I did a number of extra sessions, and I&#8217;ve uploaded three of the decks to Slideshare.</p>
<p><a title="Building high scale, highly available websites in SharePoint 2010" href="http://www.slideshare.net/benrobb/building-high-scale-highly-available-websites-in-sharepoint-2010">Building high scale, highly available websites in SharePoint 2010</a></p>
<p><a title="Introduction to the Client OM in SharePoint 2010" href="http://www.slideshare.net/benrobb/introduction-to-the-client-om-in-sharepoint-2010">Introduction to the Client OM in SharePoint 2010</a></p>
<p><a title="Build a SharePoint website in 60 minutes" href="http://www.slideshare.net/benrobb/sp-evolution-robb">Build a SharePoint website in 60 minutes</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sharepointtales.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sharepointtales.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sharepointtales.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sharepointtales.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sharepointtales.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sharepointtales.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sharepointtales.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sharepointtales.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sharepointtales.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sharepointtales.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sharepointtales.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sharepointtales.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sharepointtales.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sharepointtales.wordpress.com/53/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=53&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sharepointtales.wordpress.com/2010/04/26/spevo-slides/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/70c037b6bfbf264ca6e42bb9719f81c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ben Robb</media:title>
		</media:content>
	</item>
		<item>
		<title>Customising the SharePoint management UI &#8211; just say no!</title>
		<link>http://sharepointtales.wordpress.com/2010/03/29/customising-the-sharepoint-management-ui-just-say-no/</link>
		<comments>http://sharepointtales.wordpress.com/2010/03/29/customising-the-sharepoint-management-ui-just-say-no/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 10:48:02 +0000</pubDate>
		<dc:creator>Ben Robb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sharepointtales.wordpress.com/?p=45</guid>
		<description><![CDATA[I was recently asked at an event how to make changes to some of the core management UI features of SharePoint 2010. The question was specifically around how to make a change to the Silverlight control you get when you click on &#8220;Create&#8221; in the &#8220;View all site content&#8221; page. What you get when you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=45&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was recently asked at an event how to make changes to some of the core management UI features of SharePoint 2010. The question was specifically around how to make a change to the Silverlight control you get when you click on &#8220;Create&#8221; in the &#8220;View all site content&#8221; page.</p>
<p>What you get when you click on that link now, v4&#8242;s &#8220;Fluent UI&#8221; in place is in full swing, and a nifty Silverlight control which looks very similar to the Backstage found in the new Office clients.</p>
<div id="attachment_48" class="wp-caption aligncenter" style="width: 310px"><a href="http://sharepointtales.files.wordpress.com/2010/03/addgallery1.png"><img class="size-medium wp-image-48" title="AddGallery" src="http://sharepointtales.files.wordpress.com/2010/03/addgallery1.png?w=300&#038;h=191" alt="" width="300" height="191" /></a><p class="wp-caption-text">Add Gallery in SharePoint 2010</p></div>
<div id="attachment_49" class="wp-caption aligncenter" style="width: 310px"><a href="http://sharepointtales.files.wordpress.com/2010/03/backstage1.png"><img class="size-medium wp-image-49" title="backstage" src="http://sharepointtales.files.wordpress.com/2010/03/backstage1.png?w=300&#038;h=182" alt="" width="300" height="182" /></a><p class="wp-caption-text">Backstage in Word</p></div>
<p>My response to clients who ask for the management UI in SharePoint to be customised [beyond what you get from master pages and themes] is to ask them: &#8220;What is the business value that doing so will add?&#8221;. Without clear business drivers to making these changes, they quickly become a drain on the project, and over time will add considerable cost to the ongoing support of the solution.</p>
<p>Spence Harbar had a great <a href="http://www.harbar.net/archive/2007/06/21/SharePoint-Egg-Timer-1-quotWe-want-a-SharePoint-site-that.aspx" target="_blank">post </a>on this back in the 2007 days, and much of what he said then still holds. You get higher TCO by changing core features like this &#8211; on-going maintenance, support, training and so on will all be higher, and there is a higher chance that you will be locked into your delivery partner for a longer time frame. Also, chances are that you will be hit by additional testing and development as service packs and other hotfixes get released.</p>
<p>So I&#8217;d push back when you see this kind of requirement come in. If the client understands the cost, the additional risk, and the downsides, to customising the UI, then fine, but don&#8217;t walk in blind to that kind of scenario.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sharepointtales.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sharepointtales.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sharepointtales.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sharepointtales.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sharepointtales.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sharepointtales.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sharepointtales.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sharepointtales.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sharepointtales.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sharepointtales.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sharepointtales.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sharepointtales.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sharepointtales.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sharepointtales.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=45&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sharepointtales.wordpress.com/2010/03/29/customising-the-sharepoint-management-ui-just-say-no/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/70c037b6bfbf264ca6e42bb9719f81c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ben Robb</media:title>
		</media:content>

		<media:content url="http://sharepointtales.files.wordpress.com/2010/03/addgallery1.png?w=300" medium="image">
			<media:title type="html">AddGallery</media:title>
		</media:content>

		<media:content url="http://sharepointtales.files.wordpress.com/2010/03/backstage1.png?w=300" medium="image">
			<media:title type="html">backstage</media:title>
		</media:content>
	</item>
		<item>
		<title>Semantic mark-up for menus</title>
		<link>http://sharepointtales.wordpress.com/2010/03/26/semantic-mark-up-for-menus/</link>
		<comments>http://sharepointtales.wordpress.com/2010/03/26/semantic-mark-up-for-menus/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 15:10:02 +0000</pubDate>
		<dc:creator>Ben Robb</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>

		<guid isPermaLink="false">http://sharepointtales.wordpress.com/?p=34</guid>
		<description><![CDATA[In SharePoint 2007, if you were building a tightly designed website, chances are that you were faced with a problem when using the out of the box (or ASP.NET) menu controls. Before ScottGu’s team were converted into believing that standards compliance was a good thing, the ASP.NET 2.0 controls came up woefully short when it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=34&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In SharePoint 2007, if you were building a tightly designed website, chances are that you were faced with a problem when using the out of the box (or ASP.NET) menu controls. Before ScottGu’s team were converted into believing that standards compliance was a good thing, the ASP.NET 2.0 controls came up woefully short when it came to clean mark up, relying on nested tables to get the layout right.   </p>
<p>SharePoint 2007 continued this theme, wrapping their Microsoft.SharePoint.WebControls.AspMenu control with more tables, and worse, marking it so that you couldn’t inherit from the control to solve the rendering issue. Thankfully, there was a work around using control adapters to delegate the Render() method.   </p>
<p>But it was still a pain. The configuration files for your control adapter have to live in the file system, in the App_Browsers directory, which means that a WSP cannot deploy them to your farm. And they sometimes introduce performance penalties in high scale sites. And in the case of menu controls, there was business logic wrapped into the original Render() method which was hard to reproduce, since it called internal methods.   </p>
<p>How has the story improved in 2010? ASP.NET 4.0 does solve that problem, but SharePoint 2010 will not be shipping with support for ASP.NET 4.0 – that will have to wait for a service pack. But all is not lost: the SharePoint product team has made a significant investment in standards compliance and providing better quality mark-up. An example is the new <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.aspmenu.usesimplerendering(office.14).aspx">UseSimpleRendering</a> property on the AspMenu control. This Boolean flag is now all you need to set if you want navigation list to be rendered using &lt;li&gt; tags.    </p>
<p>So let’s check what output we get with that property set.  With <code>UseSimpleRendering=”false”</code>, the output is the traditional output that 2007 had, with nested tables and inline styles, both frowned on by the web designer community. </p>
<pre>
<span style="color:#000080;">&lt;table id="zz1_TopNavigationMenuV4" class="menu zz1_TopNavigationMenuV4_2"
cellpadding="0" cellspacing="0" border="0"&gt;
  &lt;tr&gt;
    &lt;td onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)"
    onkeyup="Menu_Key(this)" id="zz1_TopNavigationMenuV4n0"&gt;
      &lt;table cellpadding="0" cellspacing="0" border="0" width="100%"&gt;
        &lt;tr&gt;
          &lt;td style="white-space:nowrap;"&gt;
            &lt;a class="zz1_TopNavigationMenuV4_1" href="/" accesskey="1"&gt;Home&lt;/a&gt;
          &lt;/td&gt;
       &lt;/tr&gt;
     &lt;/table&gt;
   &lt;/td&gt;
   &lt;td style="width:3px;"&gt;&lt;/td&gt;
   &lt;td onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)"
   onkeyup="Menu_Key(this)" id="zz1_TopNavigationMenuV4n1"&gt;
     &lt;table cellpadding="0" cellspacing="0" border="0" width="100%"&gt;
       &lt;tr&gt;
         &lt;td style="white-space:nowrap;"&gt;
           &lt;a class="zz1_TopNavigationMenuV4_1" href="/about-us/Pages/default.aspx"&gt;About us&lt;/a&gt;
         &lt;/td&gt;
       &lt;/tr&gt;
     &lt;/table&gt;
   &lt;/td&gt;
   &lt;td style="width:3px;"&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;</span> </pre>
<p>With  <code>UseSimpleRendering=”true”</code>, the output is now much cleaner: </p>
<pre>   
<span style="color:#000088;">&lt;div id="zz15_TopNavigationMenuV4" class="menu"&gt;
  &lt;div class="menu horizontal menu-horizontal"&gt;
    &lt;ul class="root static"&gt;
      &lt;li class="static"&gt;
        &lt;a class="static menu-item" href="/" accesskey="1"&gt;
          </span><span style="color:#000088;">&lt;span class="additional-background"&gt;
            </span><span style="color:#000088;">&lt;span class="menu-item-text"&gt;Home&lt;/span&gt;
          </span><span style="color:#000088;">&lt;/span&gt;
        </span><span style="color:#000088;">&lt;/a&gt;
      &lt;/li&gt;
      &lt;li class="static selected"&gt;
        &lt;a class="static selected menu-item" href="/about-us/Pages/default.aspx"&gt;
          &lt;span class="additional-background"&gt;
            </span><span style="color:#000088;">&lt;span class="menu-item-text"&gt;About us&lt;/span&gt;
            &lt;span class="ms-hidden"&gt;Currently selected&lt;/span&gt;
          &lt;/span&gt;
        &lt;/a&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
</span><span style="color:#000080;"><span style="color:#000088;">  &lt;/div&gt;
&lt;/div&gt;</span></span></pre>
<p><span style="color:#000080;"><span style="color:#000000;"> </span><span style="color:#000000;">Note the lack of tables, the fact that there are no inline styles, and that accessibility has clearly been taken care of with the inclusion of specific textual clues that a particular item is selected.</span></span></p>
<p><span style="color:#000080;"><span style="color:#000000;">Rock on!</span><br />
</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sharepointtales.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sharepointtales.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sharepointtales.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sharepointtales.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sharepointtales.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sharepointtales.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sharepointtales.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sharepointtales.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sharepointtales.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sharepointtales.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sharepointtales.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sharepointtales.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sharepointtales.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sharepointtales.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=34&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sharepointtales.wordpress.com/2010/03/26/semantic-mark-up-for-menus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/70c037b6bfbf264ca6e42bb9719f81c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ben Robb</media:title>
		</media:content>
	</item>
		<item>
		<title>Slides from SUGUK session on BI</title>
		<link>http://sharepointtales.wordpress.com/2010/03/16/slides-from-suguk-session-on-bi/</link>
		<comments>http://sharepointtales.wordpress.com/2010/03/16/slides-from-suguk-session-on-bi/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 15:24:45 +0000</pubDate>
		<dc:creator>Ben Robb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sharepointtales.wordpress.com/2010/03/16/slides-from-suguk-session-on-bi/</guid>
		<description><![CDATA[I presented at the London SharePoint User Group (SUGUK-London) last Thursday, on what is coming in the 2010 wave of products around BI. There was a great turnout and a lot of new (and familiar) faces in the audience. Obviously SharePint afterwards was also fun Some people have asked for a copy of my slides: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=33&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I presented at the London SharePoint User Group (SUGUK-London) last Thursday, on what is coming in the 2010 wave of products around BI. There was a great turnout and a lot of new (and familiar) faces in the audience.</p>
<p>Obviously SharePint afterwards was also fun <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Some people have asked for a copy of my slides: <a href="http://sharepointtales.files.wordpress.com/2010/03/suguk_business_intelligence.pdf">SUGUK Business Intelligence slide deck</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sharepointtales.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sharepointtales.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sharepointtales.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sharepointtales.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sharepointtales.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sharepointtales.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sharepointtales.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sharepointtales.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sharepointtales.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sharepointtales.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sharepointtales.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sharepointtales.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sharepointtales.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sharepointtales.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=33&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sharepointtales.wordpress.com/2010/03/16/slides-from-suguk-session-on-bi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/70c037b6bfbf264ca6e42bb9719f81c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ben Robb</media:title>
		</media:content>
	</item>
		<item>
		<title>“Insights in SharePoint 2010” (featured article on Technet Flash Magazine, UK)</title>
		<link>http://sharepointtales.wordpress.com/2010/03/05/%e2%80%9cinsights-in-sharepoint-2010%e2%80%9d-featured-article-on-technet-flash-magazine-uk/</link>
		<comments>http://sharepointtales.wordpress.com/2010/03/05/%e2%80%9cinsights-in-sharepoint-2010%e2%80%9d-featured-article-on-technet-flash-magazine-uk/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 10:53:31 +0000</pubDate>
		<dc:creator>Ben Robb</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[TechNet]]></category>

		<guid isPermaLink="false">http://sharepointtales.wordpress.com/2010/03/05/%e2%80%9cinsights-in-sharepoint-2010%e2%80%9d-featured-article-on-technet-flash-magazine-uk/</guid>
		<description><![CDATA[I was recently asked to write a feature article on the UK TechNet magazine, published in Feb this year. Business intelligence has always been a key business problem for which Microsoft has sought to provide rich tooling. From a client point of view, Excel has been in the market since the early 1980s, and the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=30&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:Verdana;font-size:8pt;">I was recently asked to write a feature article on the UK TechNet magazine, published in Feb this year.<br />
</span></p>
<p><span style="font-family:Verdana;font-size:8pt;">Business intelligence has always been a key business problem for which Microsoft has sought to provide rich tooling. From a client point of view, Excel has been in the market since the early 1980s, and the SQL team released SQL Reporting Services in 2004. By acquiring ProClarity, and releasing Performance Point to the market with the Office 2007 wave, Microsoft&#8217;s dedication to the BI market has been clear.</p>
<p>2010 sees a clear step forward in making it easier to build business intelligence applications by unifying the technology stack. The Office, SharePoint and SQL teams have been working together to make it easier for end-users, developers and IT Pros to gain insight into how their business is running.</p>
<p><strong>Familiar client tools</strong><br />
End users are creatures of habit, and thankfully the new Office 2010 suite of products includes enhancements to Excel and Visio to help users build their own self-service reports and dashboards, while leveraging data from line of business applications securely.</p>
<p><strong>SharePoint investments</strong><br />
SharePoint has become the de facto corporate development platform to build business intelligence solutions on. As well as new features, within areas such as <a href="http://technet.microsoft.com/en-us/sharepoint/ee692578.aspx"><strong>Excel Services</strong></a>, <a href="http://blogs.msdn.com/visio/archive/2009/10/30/introducing-visio-services.aspx"><strong>Visio Services</strong></a>, and the Chart Web Parts and Performance Point Services, the team has worked hard to make the process of deploying these solutions easier for IT Pros. How?<br />
</span></p>
<ul>
<li><span style="font-family:Verdana;font-size:8pt;">Simplifying management by providing <a href="http://msdn.microsoft.com/en-us/library/dd835506(VS.85).aspx"><strong>Powershell</strong></a> interfaces for IT Pros to use to manage their deployments.<br />
</span></li>
<li><span style="font-family:Verdana;font-size:8pt;">SharePoint now has a <a href="http://technet.microsoft.com/en-us/library/ee806866(office.14).aspx"><strong>Secure Store Service</strong></a> which allows users to have confidence that their system credentials are well secured.<br />
Performance Point, Excel Services and Visio Services are all first class citizens leveraging the new <a href="http://msdn.microsoft.com/en-us/library/ee535716(office.14).aspx"><strong>Service Application architecture</strong></a>, and are configured from a central place within your SharePoint Farm.<br />
</span></li>
<li><span style="font-family:Verdana;font-size:8pt;">Connecting to Line of Business applications is made easy and secure via <a href="http://blogs.msdn.com/bcs/archive/2009/10/19/overview-of-business-connectivity-services.aspx">Business Connectivity Services</a><br />
</span></li>
</ul>
<p><span style="font-family:Verdana;font-size:8pt;"><strong>SQL Server 2008 R2</strong><br />
The SQL team have provided some key enabling technologies for building more powerful BI solutions.<br />
</span></p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=48a5b47b-8c9c-450f-ab6e-178600a733ca&amp;displaylang=en"><span style="font-family:Verdana;font-size:8pt;"><strong>PowerPivot</strong></span></a><span style="font-family:Verdana;font-size:8pt;"> is a joint effort between the SQL, Excel and SharePoint teams to allow large amounts of data to be manipulated in pivot tables and reports.<br />
</span></li>
<li><span style="font-family:Verdana;font-size:8pt;"><strong>Reporting Services Add-In</strong> provides a simple way of displaying Reporting Services assets within a SharePoint deployment.<br />
</span></li>
</ul>
<p><span style="font-family:Verdana;font-size:8pt;"><strong>The best of both worlds?</strong><br />
The 2010 wave of products is a major step change in creating business intelligence solutions. It gives end-users the power to create rich self-service solutions, while at the same time giving IT the governance and tools it needs to ensure quality of service and data security.</p>
<p>All of the products mentioned in this article are now in public beta, downloadable from <a href="http://technet.microsoft.com/en-gb/newsletter/bb403698.aspx">TechNet</a>.</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sharepointtales.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sharepointtales.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sharepointtales.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sharepointtales.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sharepointtales.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sharepointtales.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sharepointtales.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sharepointtales.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sharepointtales.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sharepointtales.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sharepointtales.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sharepointtales.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sharepointtales.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sharepointtales.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=30&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sharepointtales.wordpress.com/2010/03/05/%e2%80%9cinsights-in-sharepoint-2010%e2%80%9d-featured-article-on-technet-flash-magazine-uk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/70c037b6bfbf264ca6e42bb9719f81c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ben Robb</media:title>
		</media:content>
	</item>
		<item>
		<title>SharePoint Evolution Conference</title>
		<link>http://sharepointtales.wordpress.com/2010/03/02/sharepoint-evolution-conference/</link>
		<comments>http://sharepointtales.wordpress.com/2010/03/02/sharepoint-evolution-conference/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 15:14:41 +0000</pubDate>
		<dc:creator>Ben Robb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[SharePoint Evolution]]></category>

		<guid isPermaLink="false">http://sharepointtales.wordpress.com/?p=17</guid>
		<description><![CDATA[I&#8217;m really looking forward to the SharePoint Evolution conference next month in London. Last year&#8217;s Best Practice conference was a blast; not least because it is on my home turf. I&#8217;m really looking forward to seeing all my SP friends from around the world &#8211; the speaker list is mind blowing, featuring at least 5 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=17&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m really looking forward to the SharePoint Evolution conference next month in London. Last year&#8217;s Best Practice conference was a blast; not least because it is on my home turf. I&#8217;m really looking forward to seeing all my SP friends from around the world &#8211; the <a href="http://www.sharepointevolutionconference.com/Event_Speakers.html" target="_blank">speaker list </a>is mind blowing, featuring at least 5 MCMs, dozens of MVPs and representation from leading Microsoft partners and MCS. And it&#8217;s looking likely that the conference will sell out.</p>
<p>cScape are going to have a good presence there: not only am I speaking, but one of my colleagues (Ari Bakker) also has a session, and we are Gold sponsors.</p>
<p><a href="http://sharepointtales.files.wordpress.com/2010/03/evolution1.png"><img class="aligncenter size-full wp-image-22" title="SP Evolution 2010" src="http://sharepointtales.files.wordpress.com/2010/03/evolution1.png?w=700" alt="SP Evolution 2010"   /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sharepointtales.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sharepointtales.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sharepointtales.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sharepointtales.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sharepointtales.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sharepointtales.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sharepointtales.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sharepointtales.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sharepointtales.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sharepointtales.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sharepointtales.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sharepointtales.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sharepointtales.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sharepointtales.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sharepointtales.wordpress.com&amp;blog=9901802&amp;post=17&amp;subd=sharepointtales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sharepointtales.wordpress.com/2010/03/02/sharepoint-evolution-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/70c037b6bfbf264ca6e42bb9719f81c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ben Robb</media:title>
		</media:content>

		<media:content url="http://sharepointtales.files.wordpress.com/2010/03/evolution1.png" medium="image">
			<media:title type="html">SP Evolution 2010</media:title>
		</media:content>
	</item>
	</channel>
</rss>
