<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Aidan Garnish</title>
    <description>SharePoint and other Microsoft technologies</description>
    <link>http://www.aidangarnish.net/blog/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.5.0.7</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://www.aidangarnish.net/blog/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://feeds2.feedburner.com/aidangarnish</blogChannel:blink>
    <dc:creator>Aidan Garnish</dc:creator>
    <dc:title>Aidan Garnish</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/AidanGarnish" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>SharePoint support turns from a trickle to a flood</title>
      <description>&lt;p&gt;When Microsoft Office SharePoint Server 2007 was in beta, and for some time after it was given a full release, the level of support and documentation available was, at best, pretty sketchy. Over time Microsoft have improved what is available on MSDN and&amp;nbsp;Technet as well as publishing best practices&amp;nbsp;but what really saved MOSS 2007 and the people who work with it&amp;nbsp;was the SharePoint community who have done a great job in supporting each other with blog posts, forums, wikis, white papers and the like.&lt;/p&gt;
&lt;p&gt;Given that history, it is fantastic to see the amount of information being made available before the public beta of SharePoint 2010 is even released. As the NDA on SharePoint 2010 was lifted at the SharePoint conference in Las Vegas there was a veritable blizzard of blog posts from various SharePoint insiders.&lt;/p&gt;
&lt;p&gt;Other than watching the &lt;a href="http://www.mssharepointconference.com/pages/videohighlights.aspx#7"&gt;SharePoint conference key note&lt;/a&gt; one of the &lt;a href="http://www.sharepointjoel.com/Lists/Posts/Post.aspx?ID=267"&gt;best summaries of top new features &lt;/a&gt;came from &lt;a href="http://twitter.com/joeloleson"&gt;Joel Oleson&lt;/a&gt;&amp;nbsp;and also includes further links to the MSDN and Technet documentation for SharePoint 2010 as well as what looks like quite a promising Developer Centre being created by Microsoft that is currently tagged as in beta. Joel has also started doing some presentations on the new admin features of SharePoint 2010 with &lt;a href="http://www.sharepointjoel.com/Lists/Posts/Post.aspx?ID=269"&gt;further information on his blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://twitter.com/andrewconnell"&gt;Andrew Connell&lt;/a&gt; was quick off the mark with&amp;nbsp;&lt;a href="http://www.andrewconnell.com/blog/archive/2009/10/19/part-1-improvements-to-the-core-sharepoint-platform.aspx"&gt;3 blog posts&lt;/a&gt; on improvements to the Web Content Management aspects of SharePoint 2010 and a further post on the &lt;a href="http://www.andrewconnell.com/blog/archive/2009/10/19/the-new-service-application-architecture-in-sharepoint-server-2010.aspx"&gt;new service application architecture&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://twitter.com/bsimser"&gt;Bil Simser&lt;/a&gt; filled in some of the details around improvements to &lt;a href="http://weblogs.asp.net/bsimser/archive/2009/10/19/sp2010-what-s-new-lookup-columns-spc09.aspx"&gt;look up columns&lt;/a&gt;&amp;nbsp;and the addition of &lt;a href="http://weblogs.asp.net/bsimser/archive/2009/10/19/sharepoint-2010-what-s-new-ratings-spc09.aspx"&gt;ratings functionality&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://twitter.com/harbars"&gt;Spencer Harbar&lt;/a&gt;&amp;nbsp;has produced a great post on the &lt;a href="http://www.harbar.net/archive/2009/10/17/sp2010dt.aspx"&gt;improvements to the development tools available for SharePoint 2010&lt;/a&gt; which will all be very welcome given the amount of criticism Microsoft got from the development community for not doing more in this area for the previous version.&lt;/p&gt;
&lt;p&gt;Another brilliant developer post on the factors that could &lt;a href="http://wss.made4the.net/archive/2009/10/26/factors.aspx"&gt;persuade asp.net developers to start using SharePoint&lt;/a&gt; comes from &lt;a href="http://twitter.com/jthake"&gt;Jeremy Thake&lt;/a&gt;&amp;nbsp;the man behind &lt;a href="http://www.sharepointdevwiki.com/dashboard.action"&gt;SharePoint Dev Wiki&lt;/a&gt;. This is a wiki that was started as a reaction to the lack of a definitive resource for SharePoint developers and has become the place to go for reference material and guidance on SharePoint development. The site has now been extended to include a SharePoint 2007 Administration wiki and a shiny new SharePoint 2010 Development wiki which is already starting to be filled with content.&lt;/p&gt;
&lt;p&gt;A communication method that wasn't available when the 2007 version was released was Twitter. Not being able to go to the SharePoint conference was frustrating but Twitter came to the rescue and at times it was almost like being there. Well, ok, maybe not but it did provide a rich &lt;a href="http://twitter.com/home#search?q=%23spc09"&gt;stream of information&lt;/a&gt; about new features&amp;nbsp;directly from the people who were lucky enough to be there.&amp;nbsp;This allowed the people who couldn't be there in person to get a glimpse of some of the detail being revealed during the sessions and to see beyond the headlines of the keynote.&lt;/p&gt;
&lt;p&gt;Back in the beta days of SharePoint 2007 it was often a case of feeling your way and piecing together bits of information from lots of different sources to achieve the end result you were looking for. I think I can say with some confidence that those bad old days are in the past for SharePoint. It is now a huge success story for Microsoft and they are supporting it better than ever with documentation and tools. In addition the community of people working with and supporting SharePoint has grown massively over the last few years and this is where a lot of the best content is going to come from. This time round the problem won't be the lack of information the issue will be that now the trickle has turned to a flood&amp;nbsp;can we&amp;nbsp;keep up with all the content being produced? This is where inititiatives like Dev Wiki can really help to put some structure to that content and also allows us to give authority to the best bits.&lt;/p&gt;
&lt;p&gt;Have you come across any other great SharePoint 2010 posts that are worth sharing? If so please add them&amp;nbsp;in the comments.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/nKRytGVnPPA" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/nKRytGVnPPA/post.aspx</link>
      <author>Aidan</author>
      <comments>http://www.aidangarnish.net/blog/post/SharePoint-support-turns-from-a-trickle-to-a-flood.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/blog/post.aspx?id=23df04dc-3397-484a-9e5c-822c41e71f67</guid>
      <pubDate>Sun, 01 Nov 2009 14:34:00 +0000</pubDate>
      <category>MOSS 2007</category>
      <category>SharePoint 2010</category>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/blog/post.aspx?id=23df04dc-3397-484a-9e5c-822c41e71f67</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/blog/trackback.axd?id=23df04dc-3397-484a-9e5c-822c41e71f67</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/blog/post/SharePoint-support-turns-from-a-trickle-to-a-flood.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/blog/syndication.axd?post=23df04dc-3397-484a-9e5c-822c41e71f67</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/blog/post.aspx?id=23df04dc-3397-484a-9e5c-822c41e71f67</feedburner:origLink></item>
    <item>
      <title>Easily import data from CSV and SQL to a SharePoint list</title>
      <description>&lt;p&gt;&lt;a rel="enclosure" href="http://www.aidangarnish.net/blog/file.axd?file=csvimporter.wsp"&gt;CSV and SQL importer wsp file&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This &lt;a href="http://www.aidangarnish.net/blog/file.axd?file=csvimporter.wsp"&gt;SharePoint feature&lt;/a&gt; allows you to quickly import data from a CSV file or a SQL stored procedure to any custom&amp;nbsp;SharePoint list.&lt;/p&gt;
&lt;p&gt;Once you have added the solution to your farm and activated it on your site collection an additional menu option will be available on the Action menu of each custom list that will take you to the import CSV or SQL page.&lt;/p&gt;
&lt;p&gt;Simply select which option you want - either import from a CSV file or import from a SQL stored procedure. Next, browse to the CSV file or enter the SQL connection and name of the stored procedure and hit the Import button.&lt;/p&gt;
&lt;p&gt;There is a check box option to delete all items from the list before doing the import which is not selected by default.&lt;/p&gt;
&lt;p&gt;IMPORTANT - the first line of the CSV file must contain the names of the SharePoint list columns you want to import the data to. Eg. If you want to import data into a list that has two columns called Title and Description then the first row of the CSV file will be Title, Description.&lt;/p&gt;
&lt;p&gt;If you are using SQL then the stored procedure for the example above would need to be something like: SELECT Title, Description from [TableName]&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/hB45iDoDbCo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/hB45iDoDbCo/post.aspx</link>
      <author>Aidan</author>
      <comments>http://www.aidangarnish.net/blog/post/Easily-import-data-from-CSV-and-SQL-to-a-SharePoint-list.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/blog/post.aspx?id=46c15370-86d9-4aac-a7e7-3de634228611</guid>
      <pubDate>Fri, 09 Oct 2009 12:28:00 +0000</pubDate>
      <category>MOSS 2007</category>
      <category>SQL Server</category>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/blog/post.aspx?id=46c15370-86d9-4aac-a7e7-3de634228611</pingback:target>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/blog/trackback.axd?id=46c15370-86d9-4aac-a7e7-3de634228611</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/blog/post/Easily-import-data-from-CSV-and-SQL-to-a-SharePoint-list.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/blog/syndication.axd?post=46c15370-86d9-4aac-a7e7-3de634228611</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/blog/post.aspx?id=46c15370-86d9-4aac-a7e7-3de634228611</feedburner:origLink></item>
    <item>
      <title>A Manager's Guide to SharePoint</title>
      <description>&lt;p&gt;&lt;a href="http://acuffgroup.com/wp-content/uploads/2009/09/ManagersGuideToSharePoint_v1.pdf"&gt;A manager's guide to SharePoint &lt;/a&gt;is a non-technical white paper explaining concepts of deploying and maintaining a SharePoint implementation. This free, thirty-six page eBook gives a broad overview, covering critical topics when planning your SharePoint implementation.&lt;/p&gt;
&lt;p&gt;This is an extremely well put together overview of SharePoint and the best practice approach for implementing it in any organisation. In my opinion, an essential read for all managers considering deploying SharePoint.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/dq5ZR7j3fJs" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/dq5ZR7j3fJs/post.aspx</link>
      <author>Aidan</author>
      <comments>http://www.aidangarnish.net/blog/post/A-Managers-Guide-to-SharePoint.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/blog/post.aspx?id=fe36c919-2cb3-42b2-a123-c1deb11364ab</guid>
      <pubDate>Wed, 23 Sep 2009 10:11:00 +0000</pubDate>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/blog/post.aspx?id=fe36c919-2cb3-42b2-a123-c1deb11364ab</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/blog/trackback.axd?id=fe36c919-2cb3-42b2-a123-c1deb11364ab</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/blog/post/A-Managers-Guide-to-SharePoint.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/blog/syndication.axd?post=fe36c919-2cb3-42b2-a123-c1deb11364ab</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/blog/post.aspx?id=fe36c919-2cb3-42b2-a123-c1deb11364ab</feedburner:origLink></item>
    <item>
      <title>SharePoint User Group UK meeting - 27th August</title>
      <description>&lt;p&gt;Dux Raymond is visiting the UK in August and will deliver sessions on the following at Microsoft's London Victoria office on 27th August:&lt;/p&gt;
&lt;p&gt;7 Ways to Leverage SharePoint for Project Management Success&lt;/p&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;p&gt;Best Practices in Gathering Requirements for SharePoint Projects&lt;/p&gt;
&lt;p&gt;Register here - &lt;a href="http://suguk.org/forums/1/20147/ShowThread.aspx"&gt;http://suguk.org/forums/1/20147/ShowThread.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;UPDATE - THE PHYSICAL&amp;nbsp;EVENT HAS BEEN CANCELLED AND BEEN REPLACED WITH A WEBCAST&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/XhrURmg8q9Y" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/XhrURmg8q9Y/post.aspx</link>
      <author>Aidan</author>
      <comments>http://www.aidangarnish.net/blog/post/SharePoint-User-Group-UK-meeting-27th-August.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/blog/post.aspx?id=e7a6984c-0755-4557-8b2d-e959188eadd4</guid>
      <pubDate>Wed, 05 Aug 2009 08:58:00 +0000</pubDate>
      <category>MOSS 2007</category>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/blog/post.aspx?id=e7a6984c-0755-4557-8b2d-e959188eadd4</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/blog/trackback.axd?id=e7a6984c-0755-4557-8b2d-e959188eadd4</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/blog/post/SharePoint-User-Group-UK-meeting-27th-August.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/blog/syndication.axd?post=e7a6984c-0755-4557-8b2d-e959188eadd4</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/blog/post.aspx?id=e7a6984c-0755-4557-8b2d-e959188eadd4</feedburner:origLink></item>
    <item>
      <title>Setting up a SharePoint custom error page</title>
      <description>&lt;p&gt;The process for creating a custom error page for SharePoint is different from how you would normally set one up for a website hosted by IIS.&lt;/p&gt;
&lt;p&gt;First create your custom error page as an html document.&lt;/p&gt;
&lt;p&gt;Save the custom error page to the following location:&lt;/p&gt;
&lt;p&gt;C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\1033&lt;/p&gt;
&lt;p&gt;The error page then needs to be assigned to the web appication it is to be used for. Because the custom error page is assigned at the web application level you can create a different page per web application if required.&lt;/p&gt;
&lt;p&gt;The assignment is done with the following code:&lt;/p&gt;
&lt;p style="FONT-FAMILY: "&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp; Microsoft.SharePoint.Administration.SPWebApplication webapp =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft.SharePoint.Administration.SPWebApplication.Lookup(new Uri([site url]));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; webapp.FileNotFoundPage = [errorpage.html];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; webapp.Update();&lt;/span&gt;&lt;/p&gt;
&lt;p style="FONT-FAMILY: "&gt;Replace [site url] and [errorpage.html] with the relevant values for your site and your error page.&lt;/p&gt;
&lt;p style="FONT-FAMILY: "&gt;To test that this has worked try to navigate to a page on your site that does not exist. Rather than seeing the standard page not found error you should now see your custom page.&amp;nbsp;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/aSQZHQMK_G0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/aSQZHQMK_G0/post.aspx</link>
      <author>AidanG</author>
      <comments>http://www.aidangarnish.net/blog/post/Setting-up-a-SharePoint-custom-error-page.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/blog/post.aspx?id=611a926f-e5de-4aab-b472-6c1e5b591473</guid>
      <pubDate>Wed, 17 Jun 2009 15:24:00 +0000</pubDate>
      <dc:publisher>AidanG</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/blog/post.aspx?id=611a926f-e5de-4aab-b472-6c1e5b591473</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/blog/trackback.axd?id=611a926f-e5de-4aab-b472-6c1e5b591473</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/blog/post/Setting-up-a-SharePoint-custom-error-page.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/blog/syndication.axd?post=611a926f-e5de-4aab-b472-6c1e5b591473</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/blog/post.aspx?id=611a926f-e5de-4aab-b472-6c1e5b591473</feedburner:origLink></item>
    <item>
      <title>Delete all items in a SharePoint list more efficiently</title>
      <description>&lt;p&gt;One way to remove all items from a SharePoint list is to iterate through every item and call delete&amp;nbsp;&lt;a href="http://weblogs.asp.net/gunnarpeipman/archive/2009/05/22/sharepoint-splist-clear-extension-method.aspx#comments"&gt;like this&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;However, a more efficient way to clear down an entire list is to use the ProcessBatchData method like this:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;private void deleteAllListItems(SPSite site, SPList list) &lt;br /&gt;{&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;StringBuilder sbDelete = new StringBuilder(); &lt;br /&gt;&lt;br /&gt;&amp;nbsp; sbDelete.Append("&amp;lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&amp;gt;&amp;lt;Batch&amp;gt;&lt;!--l version=\"1.0\" encoding=\"UTF-8\--&gt;"); &lt;/span&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; string command = "&amp;lt;Method&amp;gt;&amp;lt;SetList Scope=\"Request\"&amp;gt;" + list.ID + "&amp;lt;/SetList&amp;gt;&amp;lt;SetVar Name=\"ID\"&amp;gt;{0}&amp;lt;/SetVar&amp;gt;&amp;lt;SetVar&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name=\"Cmd\"&amp;gt;Delete&amp;lt;/SetVar&amp;gt;&amp;lt;/Method&amp;gt;"; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; foreach (SPListItem item in list.Items)&lt;br /&gt;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbDelete.Append(string.Format(command, item.ID.ToString())); &lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; sbDelete.Append("&amp;lt;/Batch&amp;gt;"); &lt;br /&gt;&lt;br /&gt;&amp;nbsp; site.RootWeb.ProcessBatchData(sbDelete.ToString()); &lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/wysMMd4G2yo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/wysMMd4G2yo/post.aspx</link>
      <author>Aidan</author>
      <comments>http://www.aidangarnish.net/blog/post/Delete-all-items-in-a-SharePoint-list-more-efficiently.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/blog/post.aspx?id=1967cefe-ac1c-427a-aed0-c1cbee94d628</guid>
      <pubDate>Sun, 24 May 2009 09:43:00 +0000</pubDate>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/blog/post.aspx?id=1967cefe-ac1c-427a-aed0-c1cbee94d628</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/blog/trackback.axd?id=1967cefe-ac1c-427a-aed0-c1cbee94d628</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/blog/post/Delete-all-items-in-a-SharePoint-list-more-efficiently.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/blog/syndication.axd?post=1967cefe-ac1c-427a-aed0-c1cbee94d628</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/blog/post.aspx?id=1967cefe-ac1c-427a-aed0-c1cbee94d628</feedburner:origLink></item>
    <item>
      <title>Trouble shooting SPWeb object closed or disposed</title>
      <description>&lt;p&gt;I recently came across an issue on a WCM site where the following error was being shown whenever a dropdown selection was changed on a custom web part:&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;em&gt;SPException: Trying to use an SPWeb object that has been closed or disposed and is no longer valid&amp;nbsp;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This looked like the SPWeb object was being incorrectly disposed of but careful inspection of the web part showed that &lt;a href="http://msdn.microsoft.com/en-us/library/aa973248.aspx"&gt;best practices for disposal of SPObjects &lt;/a&gt;had been followed .&lt;br /&gt;&amp;nbsp;&lt;br /&gt;To try and track down the cause of the error and to really satisfy myself that it wasn't the web part causing the issue I removed all references to SPWeb from the custom web part. The error was still appearing so this ruled out bad coding practice in this control. &lt;br /&gt;&amp;nbsp;&lt;br /&gt;The next step was to take a look at the other controls on the page.&amp;nbsp;As this was a WCM site there were a number of custom controls being used for navigation and other functionality. &lt;br /&gt;&amp;nbsp;&lt;br /&gt;It didn't take too long to track down the culprit in a control being used to set the site title in the browser title bar. This contained the following:&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;using(SPWeb web = SPContext.Current.Web)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; //some code&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&lt;br /&gt;When the dropdown selection was changed a postback was fired and this piece of code brought the site crashing down.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;This was because both the using statement and the use of SPContext handle garbage collection so the SPWeb object was being disposed of twice and as it didn't exist on the second dispose the error above was thrown.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Once corrected the&amp;nbsp;code looked like this:&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;SPWeb web = SPContext.Current.Web;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;//some code&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Most of the links about this error on the web will point you towards the issue being incorrect disposal of objects but what&amp;nbsp;is learnt here is that it might not be a coding issue in the control that&amp;nbsp;seems to be&amp;nbsp;causing the problem. In this case it was the postback being fired by the control rather than the control itself that was triggering the error. The root cause was actually a completely different web part on the page.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/MJFsuuZe2i4" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/MJFsuuZe2i4/post.aspx</link>
      <author>Aidan</author>
      <comments>http://www.aidangarnish.net/blog/post/Trouble-shooting-SPWeb-object-that-has-been-disposed.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/blog/post.aspx?id=3f888c5f-a719-4bb3-ba91-fb61b0b117f0</guid>
      <pubDate>Thu, 21 May 2009 21:47:00 +0000</pubDate>
      <category>ASP.Net</category>
      <category>MOSS 2007</category>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/blog/post.aspx?id=3f888c5f-a719-4bb3-ba91-fb61b0b117f0</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/blog/trackback.axd?id=3f888c5f-a719-4bb3-ba91-fb61b0b117f0</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/blog/post/Trouble-shooting-SPWeb-object-that-has-been-disposed.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/blog/syndication.axd?post=3f888c5f-a719-4bb3-ba91-fb61b0b117f0</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/blog/post.aspx?id=3f888c5f-a719-4bb3-ba91-fb61b0b117f0</feedburner:origLink></item>
    <item>
      <title>SharePoint projects are like vegetables</title>
      <description>&lt;p&gt;SharePoint is often marketed as a way for businesses to deliver results quickly. The breadth of capabilities in SharePoint is impressive straight out of the box &amp;ndash; collaboration, search, business intelligence, web content management and the rest. Because you get all of this without any custom development it is possible to deliver SharePoint solutions to the business very quickly without having to write a line of code.&lt;/p&gt;
&lt;p&gt;At this point the title of my post may seem a little misleading. SharePoint and vegetable growing are definitely not similar in terms of speed of delivery or quick wins but bear with me.&lt;/p&gt;
&lt;p&gt;I recently planted some vegetable seeds and I can now tell you from my limited gardening experience that it takes a while for lettuce, potatoes, chillies and tomatoes to make progress from being tiny seeds to being little shoots. Delivering results in the form of tasty things I can eat still seems a very long way off.&lt;/p&gt;
&lt;p&gt;In a world where we are seemingly obsessed with instant gratification growing your own vegetables forces you to slow down and accept that whilst there are things you can do to encourage growth there is also a natural cycle that cannot be rushed.&lt;/p&gt;
&lt;p&gt;Whilst sitting in the garden wondering how long it was going to take before I could make a meal from the things I was growing I started thinking about how different this was to how I spend my rather more fast paced working life delivering SharePoint solutions. However, the more I thought about it the more similarities I saw. A truly successful SharePoint implementation isn&amp;rsquo;t going to survive based on those initial quick wins it is going to be judged on the value that it provides to the business over time as it continues to grow and develop to maturity. I started thinking about the SharePoint projects I have been involved in and particularly those that involve intranets and lots of business users. Whilst SharePoint does provide a huge amount out of the box that can produce quick wins and deliver fast results there also seems to be a natural cycle to SharePoint success that cannot be rushed, although there are things you can do to speed it up.&lt;/p&gt;
&lt;p&gt;Thanks for making it this far, I promise that this is where the similarities between vegetable growing and SharePoint start to become clearer, in my slightly warped mind anyway. In any SharePoint or gardening project there is initially a flurry of activity where the infrastructure or garden is prepared. Any existing content or compost is migrated from the current infrastructure or garden to provide a useful or fertile environment for users or seeds to become a part of.&lt;/p&gt;
&lt;p&gt;The users or seeds are then given access to the content or compost and the first shoots of use or growth appear. At this point everything looks good and you could be fooled into thinking that your job as an IT professional/gardener is over, think again. Those users or seeds are going to need supporting or watering and some of them are simply going to lose faith with the project or wither and die unless you provide training or protection from the elements.&lt;/p&gt;
&lt;p&gt;Over time the content or garden can become a bit of a mess and data cleansing or weeding is necessary otherwise your users or vegetables will not be able to get to the content or nutrients they need to prosper and meet their full potential. As with all SharePoint project or gardening tasks this is not something you can just do once and tick it off a list. It is a never ending process of supporting or watering, training or protecting, removing clutter or weeding.&lt;/p&gt;
&lt;p&gt;Often a SharePoint project is seen like any other IT infrastructure project that has a start and an end date which will produce immediate results as soon as the magical project end date is reached. This is the gardening equivalent of digging over your vegetable patch, adding compost and nutrients to the soil and then going back indoors thinking your job was done. People are then surprised when nothing grows and the vegetable patch is still empty come the summer. When this happens in a SharePoint project it is usually the technology that gets the blame for underperformance rather than a lack of governance or assurance plan.&lt;/p&gt;
&lt;p&gt;The concept of SharePoint as an ongoing process rather than a fixed term project is crucial to the success of SharePoint within an organisation. Although there are quick wins to be had when you first implement SharePoint depending on your circumstances the tastiest rewards will only come in time if you carefully tend to your installation and feed your users the right mix of training, knowledge and support.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/sYpYVY8Lm4Y" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/sYpYVY8Lm4Y/post.aspx</link>
      <author>Aidan</author>
      <comments>http://www.aidangarnish.net/blog/post/SharePoint-projects-are-like-vegetables.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/blog/post.aspx?id=3b62c8bd-426f-4f64-9747-97f104eaf8e8</guid>
      <pubDate>Fri, 01 May 2009 08:04:00 +0000</pubDate>
      <category>MOSS 2007</category>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/blog/post.aspx?id=3b62c8bd-426f-4f64-9747-97f104eaf8e8</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/blog/trackback.axd?id=3b62c8bd-426f-4f64-9747-97f104eaf8e8</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/blog/post/SharePoint-projects-are-like-vegetables.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/blog/syndication.axd?post=3b62c8bd-426f-4f64-9747-97f104eaf8e8</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/blog/post.aspx?id=3b62c8bd-426f-4f64-9747-97f104eaf8e8</feedburner:origLink></item>
    <item>
      <title>WCM SharePoint utilities</title>
      <description>&lt;p&gt;
I have created a number of small utility console applications&amp;nbsp;and web parts that are useful for quickly completing a few fairly common tasks - well if you are a SharePoint dev anyway. They are all fairly rough and ready but the project code can be downloaded from the link below if you want to make your own additions/improvements. 
&lt;/p&gt;
&lt;p&gt;
These applicatons all have the power to make lots of&amp;nbsp;changes to your site collection very quickly so use them at your own risk -&amp;nbsp;backup your site and always test them in a non-production environment first, you have been warned! 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://cid-0ce4337df947b74a.skydrive.live.com/browse.aspx/Public"&gt;Download projects here&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Modify Workflows&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Update the properties on approval workflows. This is particularly useful for WCM sites where each subsite has it&amp;#39;s own Pages library and workflow by default. This means that once you have a decent sized site collection hierarchy it could take a very long time to go through every site and change the workflows. This app allows you to quickly update properties such as whether users can change who the approver is when submitting a page for approval and whether a single task is assigned to a group. This is a console application so settings are changed through the app.config. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Uncustomize Files&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Customized files are the plague of any SharePoint developer who wants to be able to update page layouts, master pages or any other file that makes up a SharePoint site. A customized file is a file that has been modified in SharePoint Designer and is therefore different to the original site definition file that was used when the site was created. A customized file stores it&amp;#39;s customizations in SQL so the file on disk is no longer used&amp;nbsp;which means your update of the file on disk is ignored.&amp;nbsp;If you are wondering why your updates are not overwriting the files on your site then it is worth checking to see if the file has been customized. If it has then you will probably want to find out why and what the customization is and then maybe revert it to it&amp;#39;s uncustomized state. The UncustomizeFiles console application allows you to do just that. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;WCM Control Panel&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Quite a grand title for something that at the moment only does two things - if anyone has any ideas for what else they would like to see on a WCM control panel please leave a comment. This web part will tell you how many pages there are in a WCM site collection, something I had hoped CQWP would do but unfortunately not (if anyone knows of a better OOB way of getting this information please let me know in the comments). It will also list out the number of pages in each individual subsite if you modify the web part settings. 
&lt;/p&gt;
&lt;p&gt;
The second function this web part has is to Update All Pages which&amp;nbsp;simply checks out every page and then checks it back in then publishes and approves the page. This is a bit of a cheat for people who want to make their content look more up to date than it is for Internet sites where a last updated date is displayed on each page. In reality this is actually quite useful for launch day to be able to create the right impression for users - especially if you have had a particularly long content creation cycle before going live. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://cid-0ce4337df947b74a.skydrive.live.com/browse.aspx/Public"&gt;These projects can be&amp;nbsp;downloaded here&lt;/a&gt; 
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/zpPu5oO_NKc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/zpPu5oO_NKc/post.aspx</link>
      <author>Aidan</author>
      <comments>http://www.aidangarnish.net/blog/post/Random-SharePoint-utilities.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/blog/post.aspx?id=86393e1e-eb18-4e3c-892a-311ac1ef24a6</guid>
      <pubDate>Fri, 20 Mar 2009 15:03:00 +0000</pubDate>
      <category>MOSS 2007</category>
      <category>SharePoint Designer</category>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/blog/post.aspx?id=86393e1e-eb18-4e3c-892a-311ac1ef24a6</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/blog/trackback.axd?id=86393e1e-eb18-4e3c-892a-311ac1ef24a6</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/blog/post/Random-SharePoint-utilities.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/blog/syndication.axd?post=86393e1e-eb18-4e3c-892a-311ac1ef24a6</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/blog/post.aspx?id=86393e1e-eb18-4e3c-892a-311ac1ef24a6</feedburner:origLink></item>
    <item>
      <title>Viewing a SharePoint page layout results in 404 error</title>
      <description>&lt;p&gt;
Trying to open some pages in a SharePoint WCM site gave a 404 error. 
&lt;/p&gt;
&lt;p&gt;
A quick Google search led to &lt;a href="http://aroder.blogspot.com/2008/10/sharepoint-404-error-when-trying-to.html"&gt;this explanation&lt;/a&gt;&amp;nbsp;but this was not the exact issue for me. In my case there was a reference to a user control .ascx file in the page layout that had not been deployed to the bin folder of the web application. Once this resource was deployed to the path the page layout expected to see it in&amp;nbsp;the page loaded without a problem. 
&lt;/p&gt;
&lt;p&gt;
Update - another reason for this error is if your page layout has become customized. This will happen if you edit the page layout using SharePoint Designer.
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AidanGarnish/~4/myQRL8iSK1c" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AidanGarnish/~3/myQRL8iSK1c/post.aspx</link>
      <author>Aidan</author>
      <comments>http://www.aidangarnish.net/blog/post/Viewing-a-SharePoint-page-layout-results-in-404-error.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aidangarnish.net/blog/post.aspx?id=2af8d794-4550-4819-b4bd-d74700725088</guid>
      <pubDate>Thu, 19 Feb 2009 12:56:00 +0000</pubDate>
      <category>SharePoint Designer</category>
      <dc:publisher>Aidan</dc:publisher>
      <pingback:server>http://www.aidangarnish.net/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.aidangarnish.net/blog/post.aspx?id=2af8d794-4550-4819-b4bd-d74700725088</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aidangarnish.net/blog/trackback.axd?id=2af8d794-4550-4819-b4bd-d74700725088</trackback:ping>
      <wfw:comment>http://www.aidangarnish.net/blog/post/Viewing-a-SharePoint-page-layout-results-in-404-error.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aidangarnish.net/blog/syndication.axd?post=2af8d794-4550-4819-b4bd-d74700725088</wfw:commentRss>
    <feedburner:origLink>http://www.aidangarnish.net/blog/post.aspx?id=2af8d794-4550-4819-b4bd-d74700725088</feedburner:origLink></item>
  </channel>
</rss>
