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

<channel>
	<title>novolocus.com &#187; 2008 &#187; June</title>
	<atom:link href="http://www.novolocus.com/2008/06/feed" rel="self" type="application/rss+xml" />
	<link>http://www.novolocus.com</link>
	<description>Whatever Andy Burns is working on...</description>
	<pubDate>Tue, 18 Nov 2008 12:00:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Can you sync a Pages library with Outlook?</title>
		<link>http://www.novolocus.com/2008/06/30/can-you-sync-a-pages-library-with-outlook/</link>
		<comments>http://www.novolocus.com/2008/06/30/can-you-sync-a-pages-library-with-outlook/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 12:00:53 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Office]]></category>

		<category><![CDATA[SharePoint]]></category>

		<category><![CDATA[Outlook]]></category>

		<category><![CDATA[Publishing]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=674</guid>
		<description><![CDATA[An interesting question from one of my colleagues:
Can you sync the Pages list with an Outlook 2007 folder and still be able to read the HTML without the MOSS CSS and XSLT stuff?
Well, my gut feel was no, but I thought I&#8217;d take a look.
I found that the Connect to Outlook option was available on [...]]]></description>
			<content:encoded><![CDATA[<p>An interesting question from one of my colleagues:</p>
<blockquote><p><span style="font-size: 11pt; font-family: ">Can you sync the Pages list with an Outlook 2007 folder and still be able to read the HTML without the MOSS CSS and XSLT stuff?</span></p></blockquote>
<p>Well, my gut feel was no, but I thought I&#8217;d take a look.</p>
<p>I found that the <em>Connect to Outlook</em> option was available on the Pages library settings, so I thought I&#8217;d give it a try.</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/06/the-pages-library-in-outlook.png"><img class="alignnone size-medium wp-image-675" title="the-pages-library-in-outlook" src="http://www.novolocus.com/wp-content/uploads/2008/06/the-pages-library-in-outlook-300x195.png" alt="Outlook showing the Pages library, but can\'t preview the page." width="300" height="195" /></a></p>
<p>As we can see, we do have the Pages library synched, and you can see the pages within, but Outlook doesn&#8217;t know how to display them. I&#8217;m not surprised to be honest; I suspect that the default.aspx item actually just contains the data for the page - but isn&#8217;t yet rendered by the page layout or page. Still, one way to find out - open it and take a look:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/06/opening-a-page-from-the-pages-library.png"><img class="alignnone size-medium wp-image-676" title="opening-a-page-from-the-pages-library" src="http://www.novolocus.com/wp-content/uploads/2008/06/opening-a-page-from-the-pages-library-300x141.png" alt="An XML file that is shown when you open the Page item from Outlook" width="300" height="141" /></a></p>
<p>Yup, there you go - the XML of the page <strong>ListItem</strong>, and not a nice, rendered page with all the layout, master page, styles and stuff. Not really surprising, to be honest, but it would be nice if it did. I can&#8217;t think of how it might do that though - clearly the whole browser page would need to be rendered. An alternative would be to generate your pages via the Document Conversion Service, and to synch with the source documents themselves, rather than the pages.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/30/can-you-sync-a-pages-library-with-outlook/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Still not convinced about InfoPath in SharePoint Workflow Forms</title>
		<link>http://www.novolocus.com/2008/06/27/still-not-convinced-about-infopath-in-sharepoint-workflow-forms/</link>
		<comments>http://www.novolocus.com/2008/06/27/still-not-convinced-about-infopath-in-sharepoint-workflow-forms/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 12:00:53 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Infopath]]></category>

		<category><![CDATA[Workflow]]></category>

		<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=673</guid>
		<description><![CDATA[So, recently I&#8217;ve been looking at .aspx forms in SharePoint workflow. It turned out to be a very hard experience, although there is a project on codeplex that might make life easier. I&#8217;d like to try it, and if it works as billed, I&#8217;d like to buy it&#8217;s author a pint.
Anyway, this set me thinking [...]]]></description>
			<content:encoded><![CDATA[<p>So, recently I&#8217;ve been looking at .aspx forms in SharePoint workflow. It turned out to be a very hard experience, although there is <a href="http://www.codeplex.com/wss3workflow">a project on codeplex that might make life easier</a>. I&#8217;d like to try it, and if it works as billed, I&#8217;d like to buy it&#8217;s author a pint.</p>
<p>Anyway, this set me thinking - <strong>why are .ASPX forms not the default way of creating forms in SharePoint workflows?</strong></p>
<p>Infopath has it&#8217;s uses. In the last few months I&#8217;ve played with it a few times and found it fairly useful for what it was originally designed for - providing forms for people to fill in. It has some nice features, which I must post my thoughts about sometime. And, for what is quite a complex task, it&#8217;s relatively simple to use (relative to development, I mean, not relative to using, say, MS Word).</p>
<p>What it&#8217;s not designed for is providing workflow forms for SharePoint, and that&#8217;s part of the reason this is such an arcane process.</p>
<p>Worse, one of InfoPath&#8217;s selling points is that &#8216;power users&#8217; can create and use forms without needing developer input. However, creating SharePoint workflows through Visual Studio is clearly a developer activity - no non-techy is going to manage it. So what are we using InfoPath forms for, rather than ASPX forms which we can also write in Visual Studio?</p>
<p>Finally, InfoPath forms don&#8217;t work with WSS3. With the lack of documentation and tooling for using ASPX forms, this effectively cripples writing custom workflows for WSS3. The cynical amongst us might suggest that this is a way of trying to force companies to cough up for MOSS (which contains InfoPath form server), but to be honest, I think it&#8217;s just an oversight.</p>
<p>Curiously, InfoPath forms seem to work much better in <a href="http://blackpoint.k2.com/en/index.aspx">K2&#8217;s BlackPoint </a>than with SharePoint&#8217;s workflows. Building InfoPath form tasks in K2 was simple compared, and worked with little effort. Unfortunately, the simplicity comes with a price tag, and as SharePoint already &#8216;does workflow&#8217;, few companies are <em>that</em> keen to pay for it.</p>
<p>So please, please, <strong>for Office 14 make ASPX task pages the default workflow building scenario</strong>, and make InfoPath the &#8216;alternative&#8217;. That&#8217;s in addition to making InfoPath forms actually work properly in workflows&#8230; &#8230;and maybe take some lessons from K2.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/27/still-not-convinced-about-infopath-in-sharepoint-workflow-forms/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Content Classes and Search</title>
		<link>http://www.novolocus.com/2008/06/26/content-classes-and-search/</link>
		<comments>http://www.novolocus.com/2008/06/26/content-classes-and-search/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 12:00:19 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Search]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=669</guid>
		<description><![CDATA[So I was playing with SharePoint search a while back, and I was wanting to display some results differently based upon what type of item the result was for.
It turns out that there is a node in the results xml file that shows this - ContentClass :

As you can see, the first highlighted result is [...]]]></description>
			<content:encoded><![CDATA[<p>So I was playing with SharePoint search a while back, and I was wanting to display some results differently based upon what type of item the result was for.</p>
<p>It turns out that there is a node in the results xml file that shows this - <strong>ContentClass</strong> :</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/06/contentclass.png"><img class="alignnone size-medium wp-image-670" title="contentclass" src="http://www.novolocus.com/wp-content/uploads/2008/06/contentclass-300x205.png" alt="Results XML showing ContentClass" width="300" height="205" /></a></p>
<p>As you can see, the first highlighted result is <strong>STS_ListItem_DocumentLibrary</strong>. Pretty clear what that is. Not all results actually have a content class - the second highlighted result is from a document on a file share, and it doesn&#8217;t have a <strong>ContentClass</strong>.</p>
<p>So what content classes are there? Well, <a href="http://www.devcow.com/blogs/jdattis/archive/2007/12/20/the-contentclass-and-isdocument-properties-along-with-the-welcome-page-caveat.aspx">Dan Attis has a good list</a>, along with a caveat about Welcome pages in the results. There is <a href="http://mdablog.spaces.live.com/blog/cns!B0C40902E1212960!382.entry">a similar list here</a>. (Nobody mentions not having a <strong>ContentClass </strong>though). But unfortunately, I don&#8217;t know how to add new content classes</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/26/content-classes-and-search/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SharePoint Workflow with ASPX forms</title>
		<link>http://www.novolocus.com/2008/06/25/sharepoint-workflow-with-aspx-forms/</link>
		<comments>http://www.novolocus.com/2008/06/25/sharepoint-workflow-with-aspx-forms/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 12:00:07 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Workflow]]></category>

		<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=671</guid>
		<description><![CDATA[Well, I said I&#8217;d blog about how well I managed with using SharePoint Workflows with ASPX forms. The short answer - badly.
First off, the SDK no longer seems to include the CollectFeedback workflow, which was the only example of building a workflow for WSS and, therefore, using ASPX pages. Great, thanks for removing my one [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I said <a href="http://www.novolocus.com/2008/06/18/facing-workflow-with-trepidation/">I&#8217;d blog about how well I managed</a> with using SharePoint Workflows with ASPX forms. The short answer - badly.<span id="more-671"></span></p>
<p>First off, the SDK no longer seems to include the CollectFeedback workflow, which was the only example of building a workflow for WSS and, therefore, using ASPX pages. Great, thanks for removing my one example. I eventually dug out a copy (well, actually, a colleague did) - <a href="http://www.novolocus.com/wp-content/uploads/2008/06/aspxcollectfeedback.zip">here it is for those of you who&#8217;re curious</a>.</p>
<p>I also referred to <a href="http://blogs.msdn.com/sharepoint/archive/2006/12/19/what-about-workflow-and-aspx-forms.aspx">the SharePoint Team Blog&#8217;s one post about ASPX forms</a> for workflow, which made it all <em>look </em>pretty simple. Really, <em>it isn&#8217;t simple</em>. I read that post and it sounded pretty straight forward and sensible to me, but when I tried to do it, well, I was soon lost.</p>
<p>Next I referred to the book <em>Workflow in the 2007 Microsoft Office System</em> by David Mann. It has a whole section about using ASPX forms. Unfortunately, it doesn&#8217;t really describe how to create the code for one - it pretty much says &#8216;download what I&#8217;ve done&#8217;, which isn&#8217;t that useful. I still don&#8217;t know how he generated this code, or understand the principle behind what he&#8217;s done.</p>
<p>Reverse engineering it was a bit more more interesting - though still not exactly fruitful. It turns out that his example and the CollectFeedback example both</p>
<ul>
<li>Create a content type for each <em>type </em>of Task in the workflow, which could well mean a content type for <em>each </em>user Task in the workflow.</li>
<li>Deploy their forms into the <em>_layouts</em> directory, so these forms are available farm-wide.</li>
</ul>
<p>I&#8217;m not dreadfully convinced about either of these things.</p>
<p>I get the first point - although having a single task content type that supports multiple forms would be useful. Often, you have the same &#8216;body&#8217; of data, but need different forms; this method means that for different forms, you have to write the population of data into them uniquely. However, it&#8217;s not very intuitive.</p>
<p>The second point is more irritating - that the Task forms have to go into the <em>_layouts</em> directory. Okay, at one level, that&#8217;s fair enough; adding new .aspx files is safe enough. But how will that fit with different versions of the form? You could have different versions of the workflow available in different web apps in your farm. Can I use the site&#8217;s own master page (rather than application.master)? I can&#8217;t see that being a problem, but it&#8217;s another thing to think about. What if we wanted customisation of some of these forms, as you can do for the forms on a library? The whole customising process thing is one of the neat (and mind bending) things about SharePoint - but we&#8217;ve not got that facility for our .aspx workflow forms.</p>
<p>Anyway, I tried writing my own workflow; it didn&#8217;t work. Or, more accurately, the workflow&#8217;s tasks using .aspx forms didn&#8217;t work. Repeated efforts continued to fail. Frustration mounted, and then I received an email from the Ted Pattison Group about the <a href="http://www.codeplex.com/wss3workflow">WSS3 Workflow tools</a>. &#8220;Interesting&#8221;, I thought, &#8220;as they must use .aspx forms&#8221;.</p>
<p>Well, they do.  I&#8217;ve not tried them yet, but hope to do so shortly (though I&#8217;m now out of prototyping time). Consequently, I can&#8217;t say if they&#8217;re any good, but to quote a commenter on my previous post:</p>
<blockquote><p>Best case you find it useful, worst case, it’s an example of how to write custom ASP.NET WSS workflow forms.</p></blockquote>
<p>It looks like a pretty good framework, anyway. This does also highlight one of the pain points about workflow development in SharePoint - there is a lack of basic tooling. Given how late the Workflow Foundation settled down and how soon after SharePoint was released, I can&#8217;t really blame the development team, but it does seem sad that the development story (usually so good in Visual Studio) was so basic.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/25/sharepoint-workflow-with-aspx-forms/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Setting the Master Page of a Team Site with a Feature</title>
		<link>http://www.novolocus.com/2008/06/24/setting-the-master-page-of-a-team-site-with-a-feature/</link>
		<comments>http://www.novolocus.com/2008/06/24/setting-the-master-page-of-a-team-site-with-a-feature/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 12:00:41 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Branding]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[Features]]></category>

		<category><![CDATA[Master Pages]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=667</guid>
		<description><![CDATA[Team sites don&#8217;t have the Publishing features of MOSS enabled by default, and for WSS systems, well, you don&#8217;t have them to enable. Consequently, if you deploy a master page as a feature, you&#8217;ll have a bit of fun setting it as the master page.
You can do this though SharePoint Designer, but it&#8217;s possible you [...]]]></description>
			<content:encoded><![CDATA[<p>Team sites don&#8217;t have the Publishing features of MOSS enabled by default, and for WSS systems, well, you don&#8217;t have them to enable. Consequently, if you deploy a master page as a feature, you&#8217;ll have a bit of fun setting it as the master page.</p>
<p>You can do this though SharePoint Designer, but it&#8217;s possible you don&#8217;t want your Site owners to have SharePoint Designer, or maybe you just don&#8217;t want the hassle of the second step when you provide the master page for a site. Instead, it is possible to set the Master Page through code, and to fire this using a Feature Receiver. <a href="http://www.novolocus.com/wp-content/uploads/2008/06/setmaster.zip">This features shows just that - setting the master page through code</a>. <em>Note that to install it, you might well need to make some changes to install.bat.</em><span id="more-667"></span></p>
<p>So how does this work? Well, the feature.xml file refers to a feature receiver <strong>SetMaster.FeatureReceiver</strong> (catchy name, eh?) It also defines the name of the master page that we&#8217;re installing as a property:</p>
<p><code>&lt;Properties&gt;<br />
&lt;Property Key="MasterPageFile" Value="mymaster.master"/&gt;<br />
&lt;/Properties&gt;</code></p>
<p>This property will be used by <strong>SetMaster.FeatureReceiver </strong>to determine the correct master page to use.</p>
<p>The code itself is pretty straight forward, if you look inside FeatureReceiver.cs:</p>
<p><code>public override void FeatureActivated(SPFeatureReceiverProperties properties)<br />
{<br />
SPWeb site = properties.Feature.Parent as SPWeb;<br />
SPFeatureProperty masterFile = properties.Definition.Properties["MasterPageFile"];<br />
if (masterFile != null)<br />
{<br />
//Save original Master Page URL<br />
site.Properties["OriginalMasterURL"] = site.MasterUrl;<br />
site.Properties["OriginalCustomMasterURL"] = site.CustomMasterUrl ;<br />
site.Properties.Update();<br />
//Update Master Pages to new URL<br />
site.CustomMasterUrl = site.ServerRelativeUrl + &#8220;/_catalogs/masterpage/&#8221; + masterFile.Value;<br />
site.MasterUrl = site.ServerRelativeUrl + &#8220;/_catalogs/masterpage/&#8221; + masterFile.Value;<br />
site.Update();<br />
}<br />
}</code></p>
<p>Yup, all we do is get the master page name from the feature&#8217;s properties,  save the URLs to the original master pages, and update the master page URLs. And yes, there are two of them, and no, I&#8217;m not entirely sure what the difference is. If anyone knows, I&#8217;d be interested.</p>
<p>Feature deactivation simply does the reverse.</p>
<p>If you dig into the other files in the manifest you&#8217;ll see that I also install an image and a CSS file, but these aren&#8217;t used in the master page we&#8217;ve installed. Unfortunately, <a href="http://www.novolocus.com/2008/06/23/relative-urls-in-sharepoint-sites-using-spurl/">I&#8217;ve yet to figure out how to do relative URLs that are WSS friendly</a>, and this solution should work with WSS as is (though I&#8217;ve only tested on a MOSS system&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/24/setting-the-master-page-of-a-team-site-with-a-feature/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Relative URLs in SharePoint Sites using $SPUrl</title>
		<link>http://www.novolocus.com/2008/06/23/relative-urls-in-sharepoint-sites-using-spurl/</link>
		<comments>http://www.novolocus.com/2008/06/23/relative-urls-in-sharepoint-sites-using-spurl/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 14:19:13 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Branding]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[Master Pages]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=666</guid>
		<description><![CDATA[So, I was really stuck with a Master Page that I&#8217;ve been building as a demo. This master page was for use on a site without the publishing features, such as a Team Site.
I wanted to provide a separate CSS file and an image for with this example. However, I hit a snag - how [...]]]></description>
			<content:encoded><![CDATA[<p>So, I was really stuck with a Master Page that I&#8217;ve been building as a demo. This master page was for use on a site without the publishing features, such as a Team Site.</p>
<p>I wanted to provide a separate CSS file and an image for with this example. However, I hit a snag - how to get relative URLs to the CSS file and image that I was putting into the site?</p>
<p>For Publishing sites, this isn&#8217;t normally a problem - you put things such as the master page or images or CSS near the root, and then reference them from the root of the site collection. But from the subsite I was using, this proved hard.</p>
<p>Well, in the end I turned up <a href="http://www.sharepointblogs.com/benrobb/archive/2007/04/20/how-to-create-an-img-tag-relative-to-the-current-site-collection.aspx">this post from Ben Robb about using $SPUrl</a>. It turns out that this works nicely for images, and for links to other content, such as CSS files:<br />
<code>&lt;link id="css1" runat="server" rel="stylesheet" type="text/css" href="&lt;% $SPUrl:~site/_catalogs/styles/mystyles.css%&gt;" /&gt;</code><br />
or<br />
<code>&lt;img id="img1" src="&lt;% $SPUrl:~site/images/badger.png%&gt;" /&gt;</code></p>
<p>Unfortunately, it relies on the Microsoft.SharePoint.Publishing namespace, which means that this solution isn&#8217;t WSS friendly; certainly I couldn&#8217;t get it working. Or rather, maybe it isn&#8217;t - perhaps the Microsoft.SharePoint.Publishing namespace is available in WSS3, even if the publishing features themselves aren&#8217;t. Does anybody know about that?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/23/relative-urls-in-sharepoint-sites-using-spurl/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Facing workflow with trepidation</title>
		<link>http://www.novolocus.com/2008/06/18/facing-workflow-with-trepidation/</link>
		<comments>http://www.novolocus.com/2008/06/18/facing-workflow-with-trepidation/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 10:53:00 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Workflow]]></category>

		<category><![CDATA[Infopath]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=663</guid>
		<description><![CDATA[So I&#8217;ve got a big project that is, apparently, to be based around workflow coming up. I&#8217;m a little scared of this, to be honest. I&#8217;ve noticed a few things:

The most viewed item on my blog is currently &#8216;Blood, Sweat, and Windows Workflow in SharePoint&#8216;.
There are so many questions on the SharePoint UK user group [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve got a big project that is, apparently, to be based around workflow coming up. I&#8217;m a little scared of this, to be honest. I&#8217;ve noticed a few things:</p>
<ul>
<li>The most viewed item on my blog is currently &#8216;<a href="http://www.novolocus.com/2006/06/20/blood-sweat-and-windows-workflow-in-sharepoint/">Blood, Sweat, and Windows Workflow in SharePoint</a>&#8216;.</li>
<li>There are so many questions on the SharePoint UK user group about workflow.</li>
<li>There are so many questions on the Microsoft forums.</li>
</ul>
<p>So, anyway, my boss was wise enough to give us some time to refresh ourselves about SharePoint workflow, and to try out some things we didn&#8217;t do before (like using ASPX forms). It seems to me that some things have moved on - the projects in Visual Studio have got better (although I&#8217;m not sure I like the &#8216;deploy&#8217; thing in the Visual Studio 2008 templates - what if I have other steps to perform? Is the deploy the same as what I would do if I was deploying a new WSP? It doesn&#8217;t seem so - it appears to be too fast!)</p>
<p>However, some things still really don&#8217;t work:</p>
<ul>
<li>We can still see odd (and incorrect) behaviour for infopath forms that use Repeating groups. One of my colleague gave this a look - it still doesn&#8217;t work.</li>
<li>Still no proper tracking and auditing - I guess we&#8217;ll have to build it into the workflow ourselves.</li>
<li>Still a general lack of documentation about workflow, and this is 18 months after release.</li>
</ul>
<p>Anyway, I&#8217;m off to try using ASPX forms - I remember reading that that was possible. Wish me luck (for the ASPX and for the project). I&#8217;ll blog about how it goes</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/18/facing-workflow-with-trepidation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Is the SharePoint Administrative Model really working?</title>
		<link>http://www.novolocus.com/2008/06/16/is-the-sharepoint-administrative-model-really-working/</link>
		<comments>http://www.novolocus.com/2008/06/16/is-the-sharepoint-administrative-model-really-working/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 12:00:56 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Admin]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=658</guid>
		<description><![CDATA[I like the Admin model in SharePoint. We have a structure of Farm administrators, who keep the system running, backed up and reliable. Then we&#8217;ve got Site Collection admins, and Site Admins.
Delegation of administrative responsibility is, in my eyes, a Good Thing. IT departments are busy, and have to prioritise work, which can make them [...]]]></description>
			<content:encoded><![CDATA[<p>I like the Admin model in SharePoint. We have a structure of Farm administrators, who keep the system running, backed up and reliable. Then we&#8217;ve got Site Collection admins, and Site Admins.</p>
<p>Delegation of administrative responsibility is, in my eyes, a Good Thing. IT departments are busy, and have to prioritise work, which can make them seem unresponsive to an individual user&#8217;s/team&#8217;s needs. By giving the users the right to administer their team&#8217;s/department/group&#8217;s site, they can get on with getting things done without having to bug IT all the time - which ultimately annoys both parties.</p>
<p>However, I&#8217;m not convinced it is working.<span id="more-658"></span></p>
<p>Let&#8217;s have a look at the types of administrator again.</p>
<ul>
<li><strong>Farm Admins</strong>, who we&#8217;ll assume are techies in the IT department. Their job is to keep the farm running, and that is a technical job. This level is quite distinct, and makes sense to be so.</li>
<li><strong>Site Collection Admins</strong>. Depending on what your site collection is for, these could be technical staff or advanced users. (Normally people talk about &#8216;business users&#8217;, but that makes it sound like having a suit give you technical ability, or that the Luddite MD isn&#8217;t part of the business). Site collection admins are in charge of the settings for the top-level site in the collection (which is usually the most high profile in the collection), and has control of Site Collection wide settings, such as search settings, usage reporting, policies, and collection-wide features. This is in addition to the usual Site administrator&#8217;s tasks, so being a site collection admin can be a pretty technical task.</li>
<li><strong>Site Administrators</strong> look after individual sites. They create lists and libraries, configure the look of pages with Web Parts, add columns of metadata to lists, set up site features, configure site navigation and set up user permissions. That&#8217;s before you look at other settings, like versioning on lists, use of content types, use of workflows, audiences. This level is supposed to be open to advanced users rather than just technical staff.</li>
</ul>
<p>I&#8217;m not convinced this works for site admins, for several reasons:</p>
<ul>
<li><strong>These roles are technical</strong>. All the concepts controlled by even just a site admin make it a technical role. You have to understand the idea behind things like Web Parts, lists and columns and views, and the slightly non-intuitive permissions structure. You have to be able to understand data and it&#8217;s relationships, and that doesn&#8217;t come naturally for everyone (thankfully, or I probably would have work).</li>
<li><strong>Advanced users don&#8217;t necessarily want to be advanced</strong>. They just want to get on with things. &#8216;Business&#8217; users particularly are busy people, and don&#8217;t want to take time to learn or train - they just want to get things done.</li>
<li><strong>By reducing the IT department&#8217;s work, we&#8217;ve given advanced users more to do</strong>. It&#8217;s the classic thing in changing business processes - if one group&#8217;s job gets even slightly harder they scream foul, even if it is much better for the rest of the organisation.</li>
<li><strong>The wrong training is given&#8230; &#8230;or none is given at all</strong>. It&#8217;s become a standing joke that companies prepare their advanced users by&#8230; sending them on a <em>SharePoint Designer</em> course! This has nothing to do with how to set up or administer a SharePoint Site. Worse, some companies just skip the whole training of administrators (and often users) entirely. SharePoint is not as simple as a network drive, and under-trained admins and users <span style="text-decoration: underline;">will </span>fail to use it correctly.</li>
<li><strong>Organisations themselves don&#8217;t won&#8217;t delegate responsibility</strong>. I guess this is the crux of things - some companies want all changes coming through an IT department. I think that there are a number of reasons:
<ul>
<li>IT departments have first hand experience of what their users are like and are correctly worried about giving them control. This is a pretty legitimate concern.</li>
<li>IT want to protect &#8216;their domain&#8217;.</li>
<li>Wanting centralised control for branding, structure, etc..</li>
<li>Departmental/branch power wrangling.</li>
</ul>
</li>
<li><strong>Alternatively, the organisation has outsourced it&#8217;s IT</strong>. In this case giving the users lots of power just results in lots of expensive support calls. This factor alone has resulted in a number of pretty reduced-feature</li>
</ul>
<p>Now, you could get around some of these issues by changing your structure, but how many organisations are going to change how their IT function works just for the sake of SharePoint? That main (and easiest) wins are, I think:</p>
<ul>
<li><strong>Investing in adequate training.</strong> This is usually skipped. I&#8217;ve not yet met an organisation that planned to train it&#8217;s SharePoint users in how to use, well, SharePoint.</li>
<li><strong>Achieving buy-in from the people who&#8217;ll be doing the site administration.</strong> They might have just been given more work - you need to show them the benefits. If you don&#8217;t, they won&#8217;t do the work, and they&#8217;ll find ways of avoiding the system you&#8217;ve built.</li>
</ul>
<p>So where does that leave us? Well, if we&#8217;re not going to change any of the parameters like training, IT structure, etc., you could well be back to having trained IT staff, in their own department, looking after SharePoint and it&#8217;s sites for the users. And actually, that&#8217;s not a <em>bad</em> place to be, but I do feel like it could have been so much <em>better</em>.</p>
<p>Personally, I just think that <strong>we need to be clear that SharePoint sites need to be administered by technical staff</strong>. You could still have a distributed administration model if, for example, your Finance department has their own technical administrator - but often, that isn&#8217;t the case.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/16/is-the-sharepoint-administrative-model-really-working/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Property bags are useful - but there isn&#8217;t one on SPLists?</title>
		<link>http://www.novolocus.com/2008/06/13/property-bags-are-useful-but-there-isnt-one-on-splists/</link>
		<comments>http://www.novolocus.com/2008/06/13/property-bags-are-useful-but-there-isnt-one-on-splists/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 12:00:29 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[SharePoint Development]]></category>

		<category><![CDATA[SPList]]></category>

		<category><![CDATA[SPWeb]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=665</guid>
		<description><![CDATA[Edit: As Steven Van de Craen points out, you can use the Properties collection on the Root folder for the List. Neat, didn&#8217;t think of that.
I like property bags in things. Sure, they&#8217;re open to abuse, but they give an easy way of storing a little extra data, and as a developer, I find that [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Edit: As Steven Van de Craen points out, you can use the Properties collection on the Root folder for the List. Neat, didn&#8217;t think of that.</strong></p>
<p>I like property bags in things. Sure, they&#8217;re open to abuse, but they give an easy way of storing a little extra data, and as a developer, I find that very useful.</p>
<p>For those of you who are wondering what a property bag is, well, it&#8217;s a collection on a object where a programmer can just store stuff. E.g.</p>
<p><code>SPWeb site = properties.Feature.Parent as SPWeb;<br />
site.Properties["Kumquat"] = &#8220;True&#8221;;</code></p>
<p>Now, clearly the <strong>SPWeb </strong>object in SharePoint&#8217;s API doesn&#8217;t have a property called Kumquat; we&#8217;re defining a new one, and storing a string. In fact, string objects is all you can store.</p>
<p>Anyway, <strong>SPListItems </strong>and <strong>SPWeb </strong>both have property bags, but <strong>SPList </strong>and <strong>SPSite </strong>do not. Which is a little annoying, as I want to store some data at the list level, dammit. And I hadn&#8217;t realised this ommission until now&#8230;</p>
<p><em>Thoughts on Steven&#8217;s point - it&#8217;s a good one, and using the root folder would work. Naturally, this means that you&#8217;re storing the properties in the <strong>SPFolder </strong>object, but each list should have one of those, I think. It&#8217;s a bit of a pain as, if you&#8217;re using the Web Services then I&#8217;m sure that  getting that root folder will take another call - but as I&#8217;ve not validated that the properties are available via the web services, then that might be a moot point anyway.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/13/property-bags-are-useful-but-there-isnt-one-on-splists/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Limiting the levels shown in SharePoint Breadcrumbs</title>
		<link>http://www.novolocus.com/2008/06/11/limiting-the-levels-shown-in-sharepoint-breadcrumbs/</link>
		<comments>http://www.novolocus.com/2008/06/11/limiting-the-levels-shown-in-sharepoint-breadcrumbs/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 17:09:33 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Breadcrumbs]]></category>

		<category><![CDATA[Navigation]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=659</guid>
		<description><![CDATA[This was such a good question, I thought I&#8217;d reply in a post about it:
I am trying to limit the depth of the breadcrumbs. I have a sub sub sub subsite that I want breadcrumbs to show from that site and down one more level. I can make the breadcrumbs invisible using SPD but I [...]]]></description>
			<content:encoded><![CDATA[<p>This was <a href="http://www.novolocus.com/2008/02/22/more-sharepoint-breadcrumb-wtf/#comment-1881">such a good question</a>, I thought I&#8217;d reply in a post about it:</p>
<blockquote><p>I am trying to limit the depth of the breadcrumbs. I have a sub sub sub subsite that I want breadcrumbs to show from that site and down one more level. I can make the breadcrumbs invisible using SPD but I wonder if I can make them limited … like we could in WSS 2. <em>- Jo Arnspiger</em></p></blockquote>
<p>Well, there are a couple of ways that spring to mind (there are many approaches, but these are probably the best two) - one that uses SharePoint Designer, and one that uses SharePoint&#8217;s own navigation configuration.</p>
<p>First off, let&#8217;s look at the SharePoint Designer route. If you go to your master page or page layout, you&#8217;ll see an ASP control called the <strong>SiteMapPath </strong>control. It has a property called <a href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sitemappath.parentlevelsdisplayed.aspx">ParentLevelsDisplayed</a>.</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/06/breadcrumblevels.png"><img class="alignnone size-medium wp-image-660" title="breadcrumblevels" src="http://www.novolocus.com/wp-content/uploads/2008/06/breadcrumblevels-300x107.png" alt="A SiteMapPath control showing the ParentLevelsDisplayed property." width="300" height="107" /></a></p>
<p>Set that to a number, and that should be the maximum number of levels shown. If you set it to -1, it will show however many levels there are, which is it&#8217;s default.  (I&#8217;ve not tried it, but I&#8217;m pretty sure that&#8217;s the case). That&#8217;s probably what you want, but there is a problem - it&#8217;s not just your master page which defines the <strong>SiteMapPath </strong>control. There is one on most of the Publishing Page layouts that come out of the box too. Still, if you&#8217;re happy taking a little time to change all of them, then that&#8217;s probably fine.</p>
<p>The other problem is a little more fundamental - <strong>this setting will apply across your entire site collection.</strong> Well, okay, maybe not, but it&#8217;ll apply for all pages using that master page or page layouts&#8230;</p>
<p>Alternatively, you could change the Site&#8217;s navigation settings to get what you want. At the &#8216;<em>sub sub sub subsite</em>&#8216; you could change the site&#8217;s navigation setting to not inherit it&#8217;s top navigation settings from the parent site. This will add a level to the &#8216;Global Navigation&#8217; breadcrumb, but also make all URLs below the &#8216;<em>sub sub sub subsite</em>&#8216; start at that level. See my <a href="http://www.novolocus.com/2008/02/21/what-the-heck-is-going-on-with-sharepoint-breadcrumbs/">previous article</a> for an explanation.</p>
<p>The down side about this approach, though, is that it means <strong>all of your top navigation tabs will change</strong> - you really are breaking with the &#8216;navigation context&#8217; of the parent site. (That&#8217;s my term - I didn&#8217;t know what else to call it.) There is an example of this on the article linked to above.</p>
<p>A final note, these approaches do have two slightly different results - the first route is a &#8216;only show the last X items&#8217;, while the second is &#8216;chop all breadcrumbs below this site to start here&#8217;.</p>
<p>Anyway Jo, I hope that one of those is suitable.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/11/limiting-the-levels-shown-in-sharepoint-breadcrumbs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Easy opening of SharePoint Designer</title>
		<link>http://www.novolocus.com/2008/06/11/easy-opening-of-sharepoint-designer/</link>
		<comments>http://www.novolocus.com/2008/06/11/easy-opening-of-sharepoint-designer/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 11:30:46 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Branding]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=653</guid>
		<description><![CDATA[A tip that much has been made of, but good nonetheless - in Internet Explorer, set the Default program for editting pages to SharePoint Designer to make life easy. Go to Tools &#62; Internet Options &#62; Programs &#62; HTML Editor and select SharePoint Designer.

Then in Internet Explorer you&#8217;ll have the option to open SharePoint Designer [...]]]></description>
			<content:encoded><![CDATA[<p>A tip that much has been made of, but good nonetheless - in Internet Explorer, set the Default program for editting pages to SharePoint Designer to make life easy. Go to <em>Tools &gt; Internet Options &gt; Programs &gt; HTML Editor</em> and select SharePoint Designer.</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/06/easy-spd.png"><img class="alignnone size-medium wp-image-656" title="easy-spd" src="http://www.novolocus.com/wp-content/uploads/2008/06/easy-spd-300x149.png" alt="Configuring IE options" width="300" height="149" /></a></p>
<p>Then in Internet Explorer you&#8217;ll have the option to open SharePoint Designer to edit the page. And that&#8217;s what it does.</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/06/easy-spd-2.png"><img class="alignnone size-medium wp-image-657" title="easy-spd-2" src="http://www.novolocus.com/wp-content/uploads/2008/06/easy-spd-2-300x131.png" alt="Opening the page in SharePoint Designer." width="300" height="131" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/11/easy-opening-of-sharepoint-designer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why I was getting duplicate rows from the SharePoint Lists Web service</title>
		<link>http://www.novolocus.com/2008/06/10/why-i-was-getting-duplicate-rows-from-the-sharepoint-lists-web-service/</link>
		<comments>http://www.novolocus.com/2008/06/10/why-i-was-getting-duplicate-rows-from-the-sharepoint-lists-web-service/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 12:00:58 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[SharePoint Development]]></category>

		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=652</guid>
		<description><![CDATA[A couple of months ago I was making some calls to the SharePoint Lists Web Service, and I found that I was getting the same item back multiple times. This puzzled me - I mean, it was clearly by design, but why would anyone want a copy of the item for each value selected in [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of months ago I was making some calls to the SharePoint Lists Web Service, and I found that <a href="http://www.novolocus.com/2008/04/07/duplicate-rows-from-the-sharepoint-lists-webservice/">I was getting the same item back multiple times</a>. This puzzled me - I mean, it was clearly by design, but why would anyone want a copy of the item for each value selected in a multiple-selection lookup?</p>
<p><a href="http://suguk.org/forums/11092/ShowThread.aspx#11092">It hit me last weekend </a>(like a bolt from the blue) - you could use this <a href="http://suguk.org/forums/11092/ShowThread.aspx#11092">to support <strong>Group By</strong> clauses </a>on queries on a list. Yes, I know, SharePoint itself doesn&#8217;t support this functionality, but you could use the behaviour that I&#8217;d seen to support this. It&#8217;s the only explanation I&#8217;ve found that makes sense.</p>
<p>Now, can you turn off this behaviour, so you only get one item. That would be a lot more useful for what I was trying to do, although I now get why you might want that behaviour. Well, <a href="http://msdn.microsoft.com/en-us/library/lists.lists.getlistitems.aspx">I don&#8217;t see a query option for it</a> in the documentation, and cracking the service open in Lutz Reflector doesn&#8217;t show an option for it either.</p>
<p>I guess we&#8217;ll just have to accept the GetListItems command in the Web service API supporting Group By functionality, while SharePoint&#8217;s user interface itself does not. It&#8217;s a bit weird though that there isn&#8217;t an option I can find to turn it off though, and the Object Model behaves quite differently - it only returns one ListItem, and is unaffected by the multi-select lookup.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/10/why-i-was-getting-duplicate-rows-from-the-sharepoint-lists-web-service/feed/</wfw:commentRss>
		</item>
		<item>
		<title>When will a page run inline code in SharePoint?</title>
		<link>http://www.novolocus.com/2008/06/09/when-will-a-page-run-inline-code-in-sharepoint/</link>
		<comments>http://www.novolocus.com/2008/06/09/when-will-a-page-run-inline-code-in-sharepoint/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 13:33:10 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[SharePoint Development]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=651</guid>
		<description><![CDATA[Previously, I&#8217;ve detailed my attempts to show a query string parameter in a page. This should be a simple enough to do as inline code, but as my previous attempts recorded, when I tried:
&#60;%= Request.QueryString.ToString() %&#62;
I got the error &#8220;code blocks are not allowed in this file&#8221;. This makes sense, as otherwise anyone with SharePoint [...]]]></description>
			<content:encoded><![CDATA[<p>Previously, I&#8217;ve detailed my attempts to <a href="http://www.novolocus.com/2008/03/05/showing-query-string-parameters-in-a-page-in-sharepoint/">show a query string parameter in a page</a>. This should be a simple enough to do as inline code, but as my previous attempts recorded, when I tried:</p>
<p><code>&lt;%= Request.QueryString.ToString() %&gt;</code></p>
<p>I got the error &#8220;code blocks are not allowed in this file&#8221;. This makes sense, as otherwise anyone with SharePoint Designer could put arbitrary code into a page <em>and get it to run.</em> Clearly, as this would let business users enter code, this would not be very secure.</p>
<p>Now, you can turn off this security restriction using Page Parser Paths, but this reduces the security of the system - again, anyone with SharePoint Designer could put code in without review/authorisation. Again, less than ideal.</p>
<p>Well, one of the things I learnt last week was that uncustomised pages (or &#8216;<a href="http://www.moss2007.be/blogs/vandest/archive/2007/07/24/ghosting-and-site-templates.aspx">ghosted pages</a>&#8216; for the oldies) <strong>will</strong> run inline code. Fantastic! After all, we&#8217;re going to want to package up our code for deployment from Development to Testing and Production systems, right? (Well, you should be, dammit!)</p>
<p>For those of you who don&#8217;t know, uncustomised pages are ones that are stored on the server&#8217;s hard drive, rather than in the database. To get onto the hard drive, someone has to install them, which means that someone has to review and approve the code. With SharePoint designer, this isn&#8217;t the case, and SharePoint Designer can only create pages that are Customized (or Ghosted), and so exist only in the database.</p>
<p>So overall, the process would probably become:</p>
<ol>
<li>On a development system use PageParserPaths to enable inline code. As this is a dev system, security is less of an issue, and business users won&#8217;t be making changes.</li>
<li>Develop your pages that use inline code. You can do this in SharePoint Designer.</li>
<li>When the pages are complete, copy them out and package into a feature. Make sure that your page that you&#8217;ve written in installed <em>Ghosted</em> - still the terminology they use in features.</li>
<li>Install and activate the feature. As your page is now uncustomised (or &#8216;ghosted&#8217;), it will now run inline code without PageParserPaths being configured.</li>
</ol>
<p>That&#8217;s a pretty tidy developer story!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/09/when-will-a-page-run-inline-code-in-sharepoint/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Training with Ted Pattison Group</title>
		<link>http://www.novolocus.com/2008/06/09/training-with-ted-pattison-group/</link>
		<comments>http://www.novolocus.com/2008/06/09/training-with-ted-pattison-group/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 12:36:09 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[SharePoint]]></category>

		<category><![CDATA[SharePoint Development]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=650</guid>
		<description><![CDATA[Last week I was away training in London - hence the last of posts on the tail of last week. I was at &#8216;Xpertise&#8217; in London, although the training was being provided by Ruth Jennaway on behalf of Ted Pattison Group. The course itself was SPT 401 - Inside SharePoint Products and Technologies, though I [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I was away training in London - hence the last of posts on the tail of last week. I was at <a href="http://www.xpertise.co.uk/">&#8216;Xpertise&#8217;</a> in London, although the training was being provided by Ruth Jennaway on behalf of <a href="http://www.tedpattison.net/">Ted Pattison Group</a>. The course itself was <em>SPT 401 - Inside SharePoint Products and Technologies</em>, though I can&#8217;t find this on their website.<span id="more-650"></span></p>
<p>Anyway, the training was pretty good. I found that I got a lot more from the start of the course (which focussed on WSS3) than the later bit which focussed more on MOSS; I&#8217;ve been surprised a couple of times by just how much there is and how much you can do with WSS (and it is practically free!) The MOSS stuff is a bit more familiar - but it&#8217;s the MOSS stuff that I&#8217;ve been working with mostly.</p>
<p>The course started with a brief introduction/history of SharePoint, looked at what type of developer and background you might have coming to SharePoint, and then into architecture. The rest of the modules were then pretty much what you&#8217;d expect:</p>
<ul>
<li>Development vs Customisation, how Features work</li>
<li>SharePoint Architecture and how pages work</li>
<li>Pages and Site Branding</li>
<li>Developing Web Parts</li>
<li>Lists and Content Types</li>
<li>InfoPath 2007 and Forms Services</li>
<li>SharePoint Workflows</li>
<li>Extending MOSS Portals and Search</li>
<li>Web Content Management</li>
<li>Business Data Catalog</li>
<li>Excel Services and Reports Center</li>
<li>Application Security</li>
</ul>
<p>The lab exercises were good, and pretty realistic. The workflow one seemed a bit light, and none went into <em>that</em> much detail, but then again, some of these areas could be a week&#8217;s training in their own right (and I notice that Ted Pattison Group do offer a 4 day workflow course&#8230;). It was all quite pragmatic; I liked it.</p>
<p>The other things I took away were a bit less directly about the course. Firstly, there is value in having a course run over its originally intended time. The last two SharePoint courses I&#8217;ve been on were two weeks reduced to one, and 5 days reduced to 2. The first had me studying from 8am to 11pm most days, and the second just didn&#8217;t cover as much as it could have; it&#8217;s quality was compromised. <em>Getting the instructor to talk twice as quickly does not make me learn twice as much</em>. This course benefitted from a reasonable pace and scope.</p>
<p>The second thing I took away was the quality of the trainer. For development training, the trainer has to be another developer, even if it isn&#8217;t full time. Ruth, who took this course, was very good; she&#8217;d clearly been at the sharp end of SharePoint development and felt the pain, and was willing to say &#8216;I don&#8217;t know&#8217;, which anyone working with SharePoint will have to say sometime or another. Anyway, she kept the course filled with useful tips and clarifications; I hope I supplied some back myself. Previously some of my colleagues have had trainers who are trainers, not devs - this was not as good</p>
<p>I do think that I would have taken more away from this course if I&#8217;d not already worked so extensively with SharePoint - it&#8217;s perhaps a better course for folks who&#8217;re relatively new to SharePoint development. It was also fairly clear that being a strong ASP.NET developer would really help too; I&#8217;ve said it before, but I think good ASP.NET 2.0 skills are an essential prerequisite to SharePoint development.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/09/training-with-ted-pattison-group/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How do I get rid of the Action Links on my Search Results Page?</title>
		<link>http://www.novolocus.com/2008/06/04/how-do-i-get-rid-of-the-action-links-on-my-search-results-page/</link>
		<comments>http://www.novolocus.com/2008/06/04/how-do-i-get-rid-of-the-action-links-on-my-search-results-page/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 09:00:16 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Search]]></category>

		<category><![CDATA[Web Parts]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=643</guid>
		<description><![CDATA[I wanted to get rid of the Action Links on a standard Search Results page in SharePoint:

So I opened up my search page in SharePoint Designer. This always looks a bit cluttered, but I went to my Core Search Results Web Part to modify it&#8217;s ShowActionLinks property.

I&#8217;ve scribbled on this to highlight the obvious web [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to get rid of the Action Links on a standard Search Results page in SharePoint:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/05/standard-search-page.png"><img class="alignnone size-medium wp-image-644" title="standard-search-page" src="http://www.novolocus.com/wp-content/uploads/2008/05/standard-search-page-300x86.png" alt="Standard Search Results Action Links" width="300" height="86" /></a></p>
<p>So I opened up my search page in SharePoint Designer. This always looks a bit cluttered, but I went to my Core Search Results Web Part to modify it&#8217;s <em>ShowActionLinks </em>property.</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/05/view-in-spd.png"><img class="alignnone size-medium wp-image-645" title="view-in-spd" src="http://www.novolocus.com/wp-content/uploads/2008/05/view-in-spd-300x128.png" alt="SharePoint Designer view of Results page, showing that ShowActionLinks is already False" width="300" height="128" /></a></p>
<p>I&#8217;ve scribbled on this to highlight the obvious web parts on the page. The Core Results web part is highlighted in cyan. Anyway, if you look at the code in the top of the screenshot you can see that the <em>ShowActionLinks </em>setting is already False. Eh?<span id="more-643"></span></p>
<p>Obviously, I decided to set this <em>ShowActionLinks </em>setting to true to see what happened:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/05/now-there-are-two.png"><img class="alignnone size-medium wp-image-646" title="now-there-are-two" src="http://www.novolocus.com/wp-content/uploads/2008/05/now-there-are-two-300x203.png" alt="Screenshot with Two Actionlinks shown" width="300" height="203" /></a></p>
<p>Now there are two action links shown. (Please note, I made some other changes while figuring this out, which is why the results themselves look a bit different). Okay, so clearly, there must be another web part. Rather than look at the pretty pictures in SharePoint Designer, I looked at the rather more useful code and found:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/05/there-is-another-coreresults-web-part-but-without-xsl-for-displaying-search-results.png"><img class="alignnone size-medium wp-image-647" title="there-is-another-coreresults-web-part-but-without-xsl-for-displaying-search-results" src="http://www.novolocus.com/wp-content/uploads/2008/05/there-is-another-coreresults-web-part-but-without-xsl-for-displaying-search-results-300x79.png" alt="Screenshot of SharePoint Designer, showing a second Core Results Web part" width="300" height="79" /></a></p>
<p>That&#8217;s right, there is a second Core Results web part, which is nearly invisible in the Design view of SharePoint Designer. This web part&#8217;s XSL doesn&#8217;t actually process the Results nodes of the search results - so it doesn&#8217;t show any results (which kind of belies it&#8217;s name as the &#8216;Core Results&#8217; web part). Instead, it just shows the action links.</p>
<p>Frustratingly, the second Core Results web part is very obvious if you edit the page in the browser:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/05/edit-in-browser.png"><img class="alignnone size-medium wp-image-648" title="edit-in-browser" src="http://www.novolocus.com/wp-content/uploads/2008/05/edit-in-browser-300x160.png" alt="Editing the results page in the browser shows the second Core results web part" width="300" height="160" /></a></p>
<p>I deleted that web part from my page, and the action links vanished. I guess the question that this leaves is why are the action links not in their own web part? After all, it&#8217;s not called the &#8216;Core Results and Action Links&#8217; web part is it? It rather appears that they would nicely sit as their own web part.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/04/how-do-i-get-rid-of-the-action-links-on-my-search-results-page/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Saving SharePoint Searches</title>
		<link>http://www.novolocus.com/2008/06/03/saving-sharepoint-searches/</link>
		<comments>http://www.novolocus.com/2008/06/03/saving-sharepoint-searches/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 09:00:57 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Search]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=635</guid>
		<description><![CDATA[One of my colleagues was asking how to save a SharePoint Search. It&#8217;s a bit of a question of how many ways to skin a cat&#8230;
The important thing to remember is that a simple search is just a URL, and specifies the search term and scope in the k and s parameters respectively. E.g. This [...]]]></description>
			<content:encoded><![CDATA[<p>One of my colleagues was asking how to save a SharePoint Search. It&#8217;s a bit of a question of how many ways to skin a cat&#8230;</p>
<p>The important thing to remember is that a simple search is just a URL, and specifies the search term and scope in the <strong>k</strong> and <strong>s</strong> parameters respectively. E.g. This search url:</p>
<p><code>http://deltamoss01/searchcenter/Pages/Results.aspx?k=Badgers&amp;s=All%20Sites</code></p>
<p>would run a search for <em>badgers </em>in the <em>All Sites</em> scope.</p>
<p>It is worth noting, however, that this is saving the search, not a set of search results. As the index is updated, the results on this page may vary. Also, <a href="http://www.novolocus.com/2008/06/02/advanced-search-losing-parameters/">advanced searches don&#8217;t pass their parameters as GET parameters</a> (i.e. within the URL), so you can&#8217;t save these the same way. I&#8217;ve not yet found a way to save them.</p>
<p>As another note, the standard Search results page shows the &#8216;Alert Me&#8217; link:</p>
<p><img class="alignnone size-full wp-image-636" title="alert-me-link" src="http://www.novolocus.com/wp-content/uploads/2008/05/alert-me-link.png" alt="The Alert Me Link" width="371" height="46" /></p>
<p>This lets you set up email alerts about new items that match a search:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/05/alert-me-page.png"><img class="alignnone size-medium wp-image-637" title="alert-me-page" src="http://www.novolocus.com/wp-content/uploads/2008/05/alert-me-page-300x187.png" alt="Alert Me Configuration Page" width="300" height="187" /></a></p>
<p>Really, that&#8217;s pretty neat. <span id="more-635"></span></p>
<p>Anyway, assuming that you&#8217;re not going to use Alerts, then you&#8217;re looking at storing URLs. You could use a List, such as a links list, but my colleague made the interesting suggestion of using the &#8216;My Links&#8217; functionality of an account:</p>
<p><img class="alignnone size-full wp-image-638" title="my-links" src="http://www.novolocus.com/wp-content/uploads/2008/05/my-links.png" alt="My Links Link" width="300" height="58" /></p>
<p>And then you can add it to your My Links list:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/05/add-my-link-page.png"><img class="alignnone size-medium wp-image-639" title="add-my-link-page" src="http://www.novolocus.com/wp-content/uploads/2008/05/add-my-link-page-300x116.png" alt="Add new My Link page" width="300" height="116" /></a></p>
<p>Which are shown on your My Links menu:</p>
<p><img class="alignnone size-full wp-image-640" title="my-links-menu" src="http://www.novolocus.com/wp-content/uploads/2008/05/my-links-menu.png" alt="" width="275" height="157" /></p>
<p>So there we&#8217;ve got one way of saving a search in SharePoint. In reality, there are a lot of alternative - Links lists being an obvious choice, but there are things like summary web parts too. Really, it&#8217;s anywhere you can store a URL.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/03/saving-sharepoint-searches/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Advanced Search - Losing Parameters</title>
		<link>http://www.novolocus.com/2008/06/02/advanced-search-losing-parameters/</link>
		<comments>http://www.novolocus.com/2008/06/02/advanced-search-losing-parameters/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 09:00:28 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Search]]></category>

		<category><![CDATA[Navigation]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=631</guid>
		<description><![CDATA[I have a bit of a problem with Advanced Search in SharePoint - it&#8217;s very awkward to use.
When I perform a standard search in SharePoint, it shows me what I&#8217;ve been searching for:

That&#8217;s good - it&#8217;s useful to know what you&#8217;ve searched for. If I then click on &#8216;Advanced&#8217; the advanced search page opens showing [...]]]></description>
			<content:encoded><![CDATA[<p>I have a bit of a problem with Advanced Search in SharePoint - it&#8217;s very awkward to use.</p>
<p>When I perform a standard search in SharePoint, it shows me what I&#8217;ve been searching for:</p>
<p><img class="alignnone size-full wp-image-632" title="search" src="http://www.novolocus.com/wp-content/uploads/2008/05/search.png" alt="Search Results showing Search Term of Snake" width="327" height="239" /></p>
<p>That&#8217;s good - it&#8217;s useful to know what you&#8217;ve searched for. If I then click on &#8216;Advanced&#8217; the advanced search page opens showing my search term, and a number of other fields I can fill in for a more specific search.</p>
<p><img class="alignnone size-full wp-image-633" title="advsearch" src="http://www.novolocus.com/wp-content/uploads/2008/05/advsearch.png" alt="Advanced Search Screen with Search term of Snake" width="353" height="471" /></p>
<p>If I then run that search, though, I get the following results page:</p>
<p><img class="alignnone size-full wp-image-634" title="advsearchresult" src="http://www.novolocus.com/wp-content/uploads/2008/05/advsearchresult.png" alt="Search results, but with no apparent search term" width="338" height="322" /></p>
<p>Okay, now that is a little odd looking. There is no search term in the search input box. This is perhaps not surprising - the advanced search screen can express more complex queries than the text input box of the simple search control. However, there is <strong><em>nothing to tell you what the results are of.</em></strong> You have no idea what the search was that gave these results!</p>
<p>Worse happens if you try to go back to your advanced search page. Unless you use the browser&#8217;s <strong>Back </strong>button, you will lose your current query. There is no obvious way of &#8216;refining&#8217; an advanced query.</p>
<p>It looks like this is happening because the simple Search box passes it&#8217;s parameters in the URL as GET parameters, but the Advance Search page uses a postback-then-forward approach.</p>
<p>Is it too much to ask for to have a web part that describes what the conditions of an advanced search are, and to store that query to pass back to the Advanced Search page, should the user wish to refine their query.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/06/02/advanced-search-losing-parameters/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
