<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Meanderings of a wandering mind</title>
	<atom:link href="http://oidatsmyleg.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://oidatsmyleg.wordpress.com</link>
	<description>Ruminations on SharePoint development and other programming tasks...</description>
	<lastBuildDate>Fri, 04 Nov 2011 09:27:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='oidatsmyleg.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Meanderings of a wandering mind</title>
		<link>http://oidatsmyleg.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://oidatsmyleg.wordpress.com/osd.xml" title="Meanderings of a wandering mind" />
	<atom:link rel='hub' href='http://oidatsmyleg.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Central Administration Navigation in 2010</title>
		<link>http://oidatsmyleg.wordpress.com/2011/07/21/central-administration-navigation-in-2010/</link>
		<comments>http://oidatsmyleg.wordpress.com/2011/07/21/central-administration-navigation-in-2010/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 03:52:09 +0000</pubDate>
		<dc:creator>oidatsmyleg</dc:creator>
				<category><![CDATA[SharePoint Administration]]></category>

		<guid isPermaLink="false">http://oidatsmyleg.wordpress.com/?p=520</guid>
		<description><![CDATA[Working on a migration project has given me apple opportunity to use the revised Central Administration web site provided by SharePoint 2010. Unfortunately I&#8217;d have to conclude that in some respects it represents a retrograde step, especially in terms the usability of the site navigation. The problem is that the navigation is not always updated [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=520&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Working on a migration project has given me apple opportunity to use the revised Central Administration web site provided by SharePoint 2010.  Unfortunately I&#8217;d have to conclude that in some respects it represents a retrograde step, especially in terms the usability of the site navigation.</p>
<p>The problem is that the navigation is not always updated based upon the context of the page you are viewing, in many cases leaving you with no option but to return to the home page and navigate through several pages to get back to your original context.  </p>
<p>This is perhaps best illustrated with one of the more commonly used Service Applications, the User Profile Service Application.  Here we are, happily browsing the User Profile Service Application:</p>
<p><a href="http://oidatsmyleg.files.wordpress.com/2011/07/userprofileserviceapplication.png"><img src="http://oidatsmyleg.files.wordpress.com/2011/07/userprofileserviceapplication.png?w=600&#038;h=208" alt="User Profile Service Application" title="User Profile Service Application" width="600" height="208" class="aligncenter size-full wp-image-526" /></a></p>
<p>Clicking on the Manage User Profiles link takes us to the Manage User Profiles page:</p>
<p><a href="http://oidatsmyleg.files.wordpress.com/2011/07/manageuserprofiles.png"><img src="http://oidatsmyleg.files.wordpress.com/2011/07/manageuserprofiles.png?w=600&#038;h=201" alt="Manage User Profiles" title="Manage User Profiles" width="600" height="201" class="aligncenter size-full wp-image-527" /></a></p>
<p>So far, so good you might say.  </p>
<p>However, should you wish to return to the User Profile Service Application page you can&#8217;t using the navigation provided by the Central Administation site.  The site breadcrumbs offer only one choice, to return to the Central Administration home page, and the Quick Launch links are entirely static.  This is very frustrating.</p>
<p>I thought I had a cunning workaround for this issue; after all Central Administration is a SharePoint Foundation site and we can edit the Quick Launch ourselves to add-in commonly used links as we would any other site?  </p>
<p><a href="http://oidatsmyleg.files.wordpress.com/2011/07/centraladminquicklaunch.png"><img src="http://oidatsmyleg.files.wordpress.com/2011/07/centraladminquicklaunch.png?w=600&#038;h=241" alt="Central Admin Quick Launch" title="Central Admin Quick Launch" width="600" height="241" class="aligncenter size-full wp-image-531" /></a></p>
<p>Unfortunately, this isn&#8217;t the case and no matter what you add to the Central Administration&#8217;s Quick Launch navigation configuration none of the links are ever displayed in the Quick Launch navigation bar.</p>
<p>So for now I&#8217;m reduced to using browser bookmarks to navigate between Service Applications. </p>
<p>Interestingly this isn&#8217;t the case for the administration of Timer Jobs which provides a context-based menu located above the main Quick Launch navigation:</p>
<p><a href="http://oidatsmyleg.files.wordpress.com/2011/07/managetimerjobs.png"><img src="http://oidatsmyleg.files.wordpress.com/2011/07/managetimerjobs.png?w=600&#038;h=317" alt="Manage Timer Jobs" title="Manage Timer Jobs" width="600" height="317" class="aligncenter size-full wp-image-528" /></a></p>
<p>I don&#8217;t know why this wasn&#8217;t implemented for other areas of the Central Administration site.  If it had been, it would make the site a lot easier to use.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oidatsmyleg.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oidatsmyleg.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oidatsmyleg.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oidatsmyleg.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oidatsmyleg.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oidatsmyleg.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oidatsmyleg.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oidatsmyleg.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oidatsmyleg.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oidatsmyleg.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oidatsmyleg.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oidatsmyleg.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oidatsmyleg.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oidatsmyleg.wordpress.com/520/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=520&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oidatsmyleg.wordpress.com/2011/07/21/central-administration-navigation-in-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9ceeb00b873b1b5a08e10dfc8d942d89?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oidatsmyleg</media:title>
		</media:content>

		<media:content url="http://oidatsmyleg.files.wordpress.com/2011/07/userprofileserviceapplication.png" medium="image">
			<media:title type="html">User Profile Service Application</media:title>
		</media:content>

		<media:content url="http://oidatsmyleg.files.wordpress.com/2011/07/manageuserprofiles.png" medium="image">
			<media:title type="html">Manage User Profiles</media:title>
		</media:content>

		<media:content url="http://oidatsmyleg.files.wordpress.com/2011/07/centraladminquicklaunch.png" medium="image">
			<media:title type="html">Central Admin Quick Launch</media:title>
		</media:content>

		<media:content url="http://oidatsmyleg.files.wordpress.com/2011/07/managetimerjobs.png" medium="image">
			<media:title type="html">Manage Timer Jobs</media:title>
		</media:content>
	</item>
		<item>
		<title>MOSS Search Issues related to User Profile for Service Account</title>
		<link>http://oidatsmyleg.wordpress.com/2011/07/21/moss-search-issues-related-to-user-profile-for-service-account/</link>
		<comments>http://oidatsmyleg.wordpress.com/2011/07/21/moss-search-issues-related-to-user-profile-for-service-account/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 02:43:17 +0000</pubDate>
		<dc:creator>oidatsmyleg</dc:creator>
				<category><![CDATA[SharePoint Administration]]></category>

		<guid isPermaLink="false">http://oidatsmyleg.wordpress.com/?p=506</guid>
		<description><![CDATA[Hopefully this may prove a sanity saver for anyone else who encounters this issue&#8230; When executing a crawl from Search Administration, the crawl log shows the following error: The protocol handler cannot be found. Check that the handler has been installed. Within Event Viewer management console, the Application log had the following Warning: The start [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=506&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hopefully this may prove a sanity saver for anyone else who encounters this issue&#8230;</p>
<p>When executing a crawl from Search Administration, the crawl log shows the following error: </p>
<p><code>The protocol handler cannot be found. Check that the handler has been installed.</code></p>
<p>Within Event Viewer management console, the Application log had the following Warning:</p>
<p><code>The start address  cannot be crawled.</code></p>
<p><code>Context: Application 'SharedServices', Catalog 'Portal_Content'</code></p>
<p><code>Details:<br />
	The protocol handler cannot be found. Check that the handler has been installed.   (0x80040d1a)</code></p>
<p>This prevents any crawling of SharePoint content and no amount of starting and stopping the Office SharePoint Server Search service will fix the problem.</p>
<p>&#8230;and this Error:</p>
<p><code>The gatherer service cannot be initialized.</p>
<p>Details:<br />
	The Temp folder is on a drive that is full or is inaccessible. Free up space on the drive or verify that you have write permission on the Temp folder.   (0x80070660)<br />
</code></p>
<p>On starting the Office SharePoint Server Search service, the same error was noted:</p>
<p><code>Windows cannot log you on because your profile cannot be loaded. Check that you are connected to the network, and that your network is functioning correctly. </p>
<p> DETAIL - The system cannot find the file specified. </code></p>
<p>What happened was that the local User Profile of the service account identity used for the Office SharePoint Server Search had somehow become invalid.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oidatsmyleg.wordpress.com/506/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oidatsmyleg.wordpress.com/506/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oidatsmyleg.wordpress.com/506/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oidatsmyleg.wordpress.com/506/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oidatsmyleg.wordpress.com/506/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oidatsmyleg.wordpress.com/506/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oidatsmyleg.wordpress.com/506/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oidatsmyleg.wordpress.com/506/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oidatsmyleg.wordpress.com/506/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oidatsmyleg.wordpress.com/506/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oidatsmyleg.wordpress.com/506/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oidatsmyleg.wordpress.com/506/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oidatsmyleg.wordpress.com/506/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oidatsmyleg.wordpress.com/506/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=506&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oidatsmyleg.wordpress.com/2011/07/21/moss-search-issues-related-to-user-profile-for-service-account/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9ceeb00b873b1b5a08e10dfc8d942d89?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oidatsmyleg</media:title>
		</media:content>
	</item>
		<item>
		<title>A possible cause for invalid master page error</title>
		<link>http://oidatsmyleg.wordpress.com/2010/03/05/a-possible-cause-for-invalid-master-page-error/</link>
		<comments>http://oidatsmyleg.wordpress.com/2010/03/05/a-possible-cause-for-invalid-master-page-error/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 16:40:02 +0000</pubDate>
		<dc:creator>oidatsmyleg</dc:creator>
				<category><![CDATA[SharePoint Development]]></category>

		<guid isPermaLink="false">http://oidatsmyleg.wordpress.com/?p=494</guid>
		<description><![CDATA[Another one for to save my sanity&#8230; and yours hopefully. If you are updating the master page URL through managed code then you might experience the issue where the master page is applied successfully but on the Site Master Page Setting page you encounter the following errors: The site master page setting currently applied to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=494&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Another one for to save my sanity&#8230; and yours hopefully.</p>
<p>If you are updating the master page URL through managed code then you might experience the issue where the master page is applied successfully but on the Site Master Page Setting page you encounter the following errors:</p>
<ul>
<li>The site master page setting currently applied to this site is invalid. Please select a new master page and apply it </li>
<li>The system master page setting currently applied to this site is invalid. Please select a new master page and apply it</li>
</ul>
<p><a href="http://oidatsmyleg.files.wordpress.com/2010/03/invalid-master-page1.gif"><img src="http://oidatsmyleg.files.wordpress.com/2010/03/invalid-master-page1.gif?w=600&#038;h=67" alt="Invalid master page messages" title="Invalid master page messages" width="600" height="67" class="aligncenter size-full wp-image-499" /></a></p>
<p>When the page loads it attempts to match the currently applied master page with a value from the list of master pages in the Master Page Gallery in order to indicate the selected master page in the drop list:</p>
<p><a href="http://oidatsmyleg.files.wordpress.com/2010/03/master-page-list.gif"><img src="http://oidatsmyleg.files.wordpress.com/2010/03/master-page-list.gif?w=600" alt="List of available master pages" title="List of available master pages"   class="aligncenter size-full wp-image-496" /></a></p>
<p>This match is <strong>case-sensitive</strong> therefore you must ensure that when the MasterUrl and CustomMasterUrl values are updated using the object model that you use the exact name for the master page as it appears in the Master Page Gallery.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oidatsmyleg.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oidatsmyleg.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oidatsmyleg.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oidatsmyleg.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oidatsmyleg.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oidatsmyleg.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oidatsmyleg.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oidatsmyleg.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oidatsmyleg.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oidatsmyleg.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oidatsmyleg.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oidatsmyleg.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oidatsmyleg.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oidatsmyleg.wordpress.com/494/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=494&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oidatsmyleg.wordpress.com/2010/03/05/a-possible-cause-for-invalid-master-page-error/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9ceeb00b873b1b5a08e10dfc8d942d89?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oidatsmyleg</media:title>
		</media:content>

		<media:content url="http://oidatsmyleg.files.wordpress.com/2010/03/invalid-master-page1.gif" medium="image">
			<media:title type="html">Invalid master page messages</media:title>
		</media:content>

		<media:content url="http://oidatsmyleg.files.wordpress.com/2010/03/master-page-list.gif" medium="image">
			<media:title type="html">List of available master pages</media:title>
		</media:content>
	</item>
		<item>
		<title>Don&#8217;t include a plus (+) sign in filenames for files uploaded to SharePoint</title>
		<link>http://oidatsmyleg.wordpress.com/2010/02/15/dont-include-a-plus-sign-in-filenames-for-files-uploaded-to-sharepoint/</link>
		<comments>http://oidatsmyleg.wordpress.com/2010/02/15/dont-include-a-plus-sign-in-filenames-for-files-uploaded-to-sharepoint/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 17:21:12 +0000</pubDate>
		<dc:creator>oidatsmyleg</dc:creator>
				<category><![CDATA[SharePoint Development]]></category>
		<category><![CDATA[SharePoint Usage]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://oidatsmyleg.wordpress.com/?p=491</guid>
		<description><![CDATA[This one is for my own sanity as much as for anyone else&#8217;s benefit: don&#8217;t include a plus sign (+) in filenames for files uploaded to a SharePoint document library. The + character is permitted in a filename within Windows, and SharePoint will permit the file to be uploaded, however when the file is accessed [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=491&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This one is for my own sanity as much as for anyone else&#8217;s benefit: don&#8217;t include a plus sign (+) in filenames for files uploaded to a SharePoint document library.</p>
<p>The + character is permitted in a filename within Windows, and SharePoint will permit the file to be uploaded, however when the file is accessed the + is not escaped within the URL and an HTTP 404: File Not Found will be displayed.</p>
<p>Further to this, Tim Jones provides an excellent <a href="http://simplyaprogrammer.com/2008/05/importing-files-into-sharepoint.html">solution</a> (and discussion leading up to his solution) on how to strip invalid characters from files when uploading to SharePoint.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oidatsmyleg.wordpress.com/491/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oidatsmyleg.wordpress.com/491/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oidatsmyleg.wordpress.com/491/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oidatsmyleg.wordpress.com/491/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oidatsmyleg.wordpress.com/491/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oidatsmyleg.wordpress.com/491/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oidatsmyleg.wordpress.com/491/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oidatsmyleg.wordpress.com/491/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oidatsmyleg.wordpress.com/491/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oidatsmyleg.wordpress.com/491/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oidatsmyleg.wordpress.com/491/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oidatsmyleg.wordpress.com/491/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oidatsmyleg.wordpress.com/491/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oidatsmyleg.wordpress.com/491/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=491&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oidatsmyleg.wordpress.com/2010/02/15/dont-include-a-plus-sign-in-filenames-for-files-uploaded-to-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9ceeb00b873b1b5a08e10dfc8d942d89?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oidatsmyleg</media:title>
		</media:content>
	</item>
		<item>
		<title>Custom Master Page and My Sites</title>
		<link>http://oidatsmyleg.wordpress.com/2009/12/11/custom-master-page-and-my-sites/</link>
		<comments>http://oidatsmyleg.wordpress.com/2009/12/11/custom-master-page-and-my-sites/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 14:18:59 +0000</pubDate>
		<dc:creator>oidatsmyleg</dc:creator>
				<category><![CDATA[SharePoint Development]]></category>
		<category><![CDATA[My Sites]]></category>
		<category><![CDATA[Branding]]></category>

		<guid isPermaLink="false">http://oidatsmyleg.wordpress.com/?p=484</guid>
		<description><![CDATA[My Sites are often branded with a custom master page, using feature stapling to apply the customisations. The SharePoint Team Blog contains a good description of how to do this. However, there is a gotcha with updating the MasterUrl and CustomMasterUrl properties of the My Site. The default value for these properties gives the full [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=484&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>My Sites are often branded with a custom master page, using feature stapling to apply the customisations.  The <a href="http://blogs.msdn.com/sharepoint/archive/2007/03/22/customizing-moss-2007-my-sites-within-the-enterprise.aspx">SharePoint Team Blog</a> contains a good description of how to do this.</p>
<p>However, there is a gotcha with updating the MasterUrl and CustomMasterUrl properties of the My Site.  The default value for these properties gives the full path to the master page catalogue and default.master page: /personal/user/_catalogs/masterpage/default.master </p>
<p>Therefore rather than replace the entire path when setting the master page simply replace the string &#8220;default.master&#8221; with your chosen custom master page:</p>
<pre>var masterPageUrl = web.MasterUrl.ToLower();
masterPageUrl = masterPageUrl.Replace("default.master", "mycustom.master");
web.MasterUrl = masterPageUrl; </pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oidatsmyleg.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oidatsmyleg.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oidatsmyleg.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oidatsmyleg.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oidatsmyleg.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oidatsmyleg.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oidatsmyleg.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oidatsmyleg.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oidatsmyleg.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oidatsmyleg.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oidatsmyleg.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oidatsmyleg.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oidatsmyleg.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oidatsmyleg.wordpress.com/484/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=484&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oidatsmyleg.wordpress.com/2009/12/11/custom-master-page-and-my-sites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9ceeb00b873b1b5a08e10dfc8d942d89?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oidatsmyleg</media:title>
		</media:content>
	</item>
		<item>
		<title>Add Web Server role before installing SharePoint</title>
		<link>http://oidatsmyleg.wordpress.com/2009/09/21/add-web-server-role-before-installing-sharepoint/</link>
		<comments>http://oidatsmyleg.wordpress.com/2009/09/21/add-web-server-role-before-installing-sharepoint/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 09:35:01 +0000</pubDate>
		<dc:creator>oidatsmyleg</dc:creator>
				<category><![CDATA[SharePoint Administration]]></category>

		<guid isPermaLink="false">http://oidatsmyleg.wordpress.com/2009/09/21/add-web-server-role-before-installing-sharepoint/</guid>
		<description><![CDATA[The Web Server role should be added to the server prior to installing SharePoint otherwise slipstreamed updates are not deployed correctly on Windows 2008 R2. Background Having followed the instructions listed on TechNet for a Windows 2008 deployment using a slipstreamed installation source, the following error was encountered when attempting to create a Publishing site [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=475&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The Web Server role should be added to the server prior to installing SharePoint otherwise slipstreamed updates are not deployed correctly on Windows 2008 R2. </p>
<h2>Background</h2>
<p>Having followed the instructions listed on TechNet for a <a href="http://technet.microsoft.com/en-us/library/cc263408.aspx">Windows 2008 deployment</a> using a <a href="http://technet.microsoft.com/en-us/library/cc261890.aspx">slipstreamed installation source</a>, the following error was encountered when attempting to create a Publishing site collection:</p>
<blockquote><p>The Office SharePoint Server Standard Web application features feature must be activated at the web application level before this feature can be activated.
</p></blockquote>
<p>Looking at the version number reported by Central Administration and that shown for Microsoft.SharePoint.Portal.dll it was clear that the SP2 update had not been correctly applied; the dll was reporting the original version number whereas Central Administration reported the correct version number for SP2.  </p>
<p>This was confirmed when running the stand-alone SP2 update packages; the update package for WSS 3.0 claimed that the update had already been applied but the Office SharePoint Server update package did not detect that SP2 had already been applied.  Re-applying the SP2 update for Office SharePoint Server fixed the problem quoted above.</p>
<p>To prevent this from happening in the first place, add the Web Server role before installing SharePoint and the updates will be applied correctly.  </p>
<p>For more information refer to the answer given in this TechNet post: <a href="http://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/8b96663a-ed87-4ab4-bd59-33c7245a76d4">Error trying to activate Publishing Infrastructure</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oidatsmyleg.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oidatsmyleg.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oidatsmyleg.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oidatsmyleg.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oidatsmyleg.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oidatsmyleg.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oidatsmyleg.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oidatsmyleg.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oidatsmyleg.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oidatsmyleg.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oidatsmyleg.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oidatsmyleg.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oidatsmyleg.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oidatsmyleg.wordpress.com/475/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=475&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oidatsmyleg.wordpress.com/2009/09/21/add-web-server-role-before-installing-sharepoint/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9ceeb00b873b1b5a08e10dfc8d942d89?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oidatsmyleg</media:title>
		</media:content>
	</item>
		<item>
		<title>SharePoint Database Sizing &#8211; a request for information</title>
		<link>http://oidatsmyleg.wordpress.com/2009/09/02/sharepoint-database-sizing-request/</link>
		<comments>http://oidatsmyleg.wordpress.com/2009/09/02/sharepoint-database-sizing-request/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 12:06:24 +0000</pubDate>
		<dc:creator>oidatsmyleg</dc:creator>
				<category><![CDATA[SharePoint Administration]]></category>
		<category><![CDATA[SharePoint Planning]]></category>

		<guid isPermaLink="false">http://oidatsmyleg.wordpress.com/?p=423</guid>
		<description><![CDATA[When planning a deployment, one of the fundamental issues that needs to be addressed is providing sufficient capacity to accommodate the anticipated growth of the SharePoint environment. Microsoft provides some detail on best practices for capacity planning and management for SharePoint, mostly focussed on content or search database sizing and the effect upon performance. Information [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=423&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When planning a deployment, one of the fundamental issues that needs to be addressed is providing sufficient capacity to accommodate the anticipated growth of the SharePoint environment.  Microsoft provides some detail on best practices for <a href="http://technet.microsoft.com/en-gb/library/dd335963.aspx">capacity planning and management</a> for SharePoint, mostly focussed on content or search database sizing and the effect upon <a href="http://technet.microsoft.com/en-gb/library/cc263100.aspx">performance</a>.  </p>
<p>Information on the size of SharePoint configuration databases is however decidedly thin on the ground.  The second of the TechNet articles linked above lists the configuration database as being around 1.5 GB in size and states that the &#8220;configuration database will generally not grow past this size&#8221; although this is &#8220;not a hard limit&#8221;.</p>
<p>So this begs the question: just how large can the configuration database get?  And how about the other supporting databases such as the Central Admininstration (SharePoint_AdminContent) and SSP database (SharedServices1_DB)?</p>
<p>And for the answer to this I&#8217;m turning to you good readers.  Please vote to indicate the size of your configuration and other supporting databases so that we can all benefit from being better able to plan for the growth of SharePoint.  If you have some interesting findings you&#8217;d like to share, please leave a comment.</p>
<p><a href="http://polldaddy.com/poll/1946288/">View This Poll</a><br />
<a href="http://polldaddy.com/poll/1946331/">View This Poll</a><br />
<a href="http://polldaddy.com/poll/1946341/">View This Poll</a><br />
<a href="http://polldaddy.com/poll/1951331/">View This Poll</a><br />
<a href="http://polldaddy.com/poll/1951335/">View This Poll</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oidatsmyleg.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oidatsmyleg.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oidatsmyleg.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oidatsmyleg.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oidatsmyleg.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oidatsmyleg.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oidatsmyleg.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oidatsmyleg.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oidatsmyleg.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oidatsmyleg.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oidatsmyleg.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oidatsmyleg.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oidatsmyleg.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oidatsmyleg.wordpress.com/423/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=423&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oidatsmyleg.wordpress.com/2009/09/02/sharepoint-database-sizing-request/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9ceeb00b873b1b5a08e10dfc8d942d89?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oidatsmyleg</media:title>
		</media:content>
	</item>
		<item>
		<title>Consuming Filter Web Parts with a Web Part containing a User Control</title>
		<link>http://oidatsmyleg.wordpress.com/2009/08/15/consuming-filter-web-parts/</link>
		<comments>http://oidatsmyleg.wordpress.com/2009/08/15/consuming-filter-web-parts/#comments</comments>
		<pubDate>Sat, 15 Aug 2009 19:43:21 +0000</pubDate>
		<dc:creator>oidatsmyleg</dc:creator>
				<category><![CDATA[.NET Development]]></category>
		<category><![CDATA[SharePoint Development]]></category>

		<guid isPermaLink="false">http://oidatsmyleg.wordpress.com/?p=415</guid>
		<description><![CDATA[When wrapping an ASP.NET User Control in a web part, the user control is usually loaded in the CreateChildControls() method as shown below: protected override void CreateChildControls() { if (!_error) { try { base.CreateChildControls(); // Your code here... MyWebUserControl myControl = (MyWebUserControl)Page.LoadControl("~/_controltemplates/MyWebPart/MyWebUserControl.ascx"); myControl.DataProperty = SomeProcessing(); this.Controls.Add(myControl); } catch (Exception ex) { HandleException(ex); } } } [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=415&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When wrapping an ASP.NET User Control in a web part, the user control is usually loaded in the CreateChildControls() method as shown below:</p>
<pre>
protected override void CreateChildControls()
{
  if (!_error)
  {
    try
    {
       base.CreateChildControls();

       // Your code here...
       MyWebUserControl myControl =
         (MyWebUserControl)Page.LoadControl("~/_controltemplates/MyWebPart/MyWebUserControl.ascx");
       myControl.DataProperty = SomeProcessing();
       this.Controls.Add(myControl);
    }
    catch (Exception ex)
    {
       HandleException(ex);
    }
  }
}
</pre>
<p>Unfortunately this causes a problem when the embedded user control is to consume filter values coming from a web part connection because connections are evaluated after the CreateChildControls() method is executed.  In the example above, when the SomeProcessing() method is executed no filter connections will have been created and therefore no filter values are available.</p>
<p>Therefore a mechanism is required to access the filter values later in the web part life cycle, perform filtering and update the user control with the filtered data.  </p>
<p>The most obvious solution is to simply move the loading of the user control until after the connection has been created, for example in the OnPreRender() event handler.  However this seems a little too &#8216;hacky&#8217; to me.  If anyone has a better suggestion please leave a comment below.</p>
<h2>Notes</h2>
<ol>
<li>Steven Van de Crean lists the order of execution for the ASP.NET web part in <a href="http://www.moss2007.be/blogs/vandest/archive/2007/07/24/asp-net-webpart-life-cycle-reminder.aspx">this</a> blog post.</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oidatsmyleg.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oidatsmyleg.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oidatsmyleg.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oidatsmyleg.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oidatsmyleg.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oidatsmyleg.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oidatsmyleg.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oidatsmyleg.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oidatsmyleg.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oidatsmyleg.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oidatsmyleg.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oidatsmyleg.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oidatsmyleg.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oidatsmyleg.wordpress.com/415/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=415&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oidatsmyleg.wordpress.com/2009/08/15/consuming-filter-web-parts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9ceeb00b873b1b5a08e10dfc8d942d89?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oidatsmyleg</media:title>
		</media:content>
	</item>
		<item>
		<title>Cross-Site Collection Query, Almost</title>
		<link>http://oidatsmyleg.wordpress.com/2009/08/13/cross-site-collection-query-almost/</link>
		<comments>http://oidatsmyleg.wordpress.com/2009/08/13/cross-site-collection-query-almost/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 16:43:53 +0000</pubDate>
		<dc:creator>oidatsmyleg</dc:creator>
				<category><![CDATA[SharePoint Development]]></category>

		<guid isPermaLink="false">http://oidatsmyleg.wordpress.com/?p=399</guid>
		<description><![CDATA[This is a tale of getting close to one of SharePoint&#8217;s holy grails but not quite&#8230; Site collections are the most scalable SharePoint container and they offer lots of advantages over building site heirarchies with layers of sub-sites. However information in one site collection can&#8217;t be made visible to another site collection using out-of-the-box SharePoint [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=399&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is a tale of getting close to one of SharePoint&#8217;s holy grails but not quite&#8230;</p>
<p>Site collections are the most scalable SharePoint container and they offer lots of <a href="http://www.sharepointblogs.com/llowevad/archive/2007/06/25/site-collection-logical-architecture.aspx">advantages</a> over building site heirarchies with layers of sub-sites.  However information in one site collection can&#8217;t be made visible to another site collection using out-of-the-box SharePoint components.  This is a major inconvenience when trying to aggregate content on a portal for example.</p>
<h2>Solution (almost)</h2>
<p>The solution evolves from first using the SPSiteDataQuery class to run a query upon each site collection and then aggregating the results.</p>
<p>The example below queries all Calendar lists for events within a date range:</p>
<pre>
// for each site collection
var currentApp = SPContext.Current.Site.WebApplication;
foreach (SPSite site in currentApp.Sites)
{
  var query = new SPSiteDataQuery()
  {
    RowLimit = 100,
    Lists = @"&lt;Lists ServerTemplate='106' /&gt;",
    Webs = "&lt;Webs Scope='SiteCollection' /&gt;",
    Query =
        String.Format(
        @"&lt;Where&gt;
            &lt;And&gt;
              &lt;Geq&gt;
                &lt;FieldRef Name='EventDate' /&gt;
                &lt;Value Type='DateTime'&gt;{0}&lt;/Value&gt;
              &lt;/Geq&gt;
              &lt;Leq&gt;
                &lt;FieldRef Name='EndDate' /&gt;
                &lt;Value Type='DateTime'&gt;{1}&lt;/Value&gt;
              &lt;/Leq&gt;
            &lt;/And&gt;
          &lt;/Where&gt;",
          startDate.ToString("yyyy-MM-dd"), endDate.ToString("yyyy-MM-dd")),
    ViewFields =
        "&lt;FieldRef Name='Title' /&gt;
         &lt;FieldRef Name='ID' /&gt;
         &lt;FieldRef Name='EventDate' /&gt;
         &lt;FieldRef Name='EndDate' /&gt;
         &lt;FieldRef Name='Location' /&gt;
         &lt;FieldRef Name='Description' /&gt;
         &lt;FieldRef Name='fAllDayEvent' /&gt;
         &lt;FieldRef Name='fRecurrence' /&gt;
         &lt;FieldRef Name='FileRef' /&gt;"
  };
  var results = site.RootWeb.GetSiteData(query);

  // aggregate the results
  ...
}
</pre>
<p>This will work, however it clearly doesn&#8217;t scale well as it will query many sites and webs each time it is run.</p>
<p>The next step was to consider the CrossListQueryCache class which provides the ability to cache the results.  In reality, apart from introducing the cache, this class doesn&#8217;t do much more than wrap the SPSiteDataQuery class and the call to SPWeb.GetSiteData().</p>
<p>Continuing the same example, swap out the SPSiteDataQuery with:</p>
<pre>
var query = new CrossListQueryInfo
  {
    UseCache = true,
    RowLimit = 100,
    Lists = @"&lt;Lists ServerTemplate='106' /&gt;",
    Webs = "&lt;Webs Scope='SiteCollection' /&gt;",
    Query =
        String.Format(
        @"&lt;Where&gt;
            &lt;And&gt;
              &lt;Geq&gt;
                &lt;FieldRef Name='EventDate' /&gt;
                &lt;Value Type='DateTime'&gt;{0}&lt;/Value&gt;
              &lt;/Geq&gt;
              &lt;Leq&gt;
                &lt;FieldRef Name='EndDate' /&gt;
                &lt;Value Type='DateTime'&gt;{1}&lt;/Value&gt;
              &lt;/Leq&gt;
            &lt;/And&gt;
          &lt;/Where&gt;",
          startDate.ToString("yyyy-MM-dd"), endDate.ToString("yyyy-MM-dd")),
    ViewFields =
        "&lt;FieldRef Name='Title' /&gt;
         &lt;FieldRef Name='ID' /&gt;
         &lt;FieldRef Name='EventDate' /&gt;
         &lt;FieldRef Name='EndDate' /&gt;
         &lt;FieldRef Name='Location' /&gt;
         &lt;FieldRef Name='Description' /&gt;
         &lt;FieldRef Name='fAllDayEvent' /&gt;
         &lt;FieldRef Name='fRecurrence' /&gt;
         &lt;FieldRef Name='FileRef' /&gt;"
  };

var cache = new CrossListQueryCache(query);
var results = cache.GetSiteData(site, site.RootWeb.ServerRelativeUrl);
</pre>
<p>Unfortunately attempting to use the cache for each site collection query causes problems &#8211; any attempt to query a site collection beyond the current one results in a error:</p>
<pre>
There is no Web named "/sites/WebSite".
</pre>
<p>This is due to the way that CrossListQueryCache class is written &#8211; as revealed by examining Microsoft.SharePoint.Publishing with .NET Reflector.  During the execution of the GetSiteData method, a call is made to the getWeb method of the ContentByQueryWebPart:</p>
<pre>
using (SPWeb web = ContentByQueryWebPart.getWeb(webUrl))
{
    return this.GetSiteData(web);
}
</pre>
<p>So when the cached query is executed it uses the getWeb method to get the reference to the SPWeb object to run the query against.  The problem is that this method uses the context of the calling code, via SPContext, to open the web site specified by the URL:</p>
<pre>
internal static SPWeb getWeb(string webUrl)
{
    SPSite site = SPContext.Current.Site;
    SPWeb web = null;
    web = site.OpenWeb(webUrl);
    bool isRootWeb = web.IsRootWeb;
    return web;
}
</pre>
<p>Thus, even though the caller has passed through the correct SPSite to use when opening the SPWeb against which the query is to be run, the CrossListQueryCache ignores this and instead uses the context of the caller.</p>
<h2>Close but no cigar&#8230;</h2>
<p>The net result is that a cross-site collection query is possible using SPSiteDataQuery but clearly this could have a serious performance impact with querying multiple site collections and sub-sites.  It would be nice to be able to have the query results cached however this doesn&#8217;t seem possible using CrossSiteQueryCache.</p>
<p>It&#8217;s somewhat infuriating that a relatively simple change to the CrossListQueryCache class would enable cached cross-site collection queries.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oidatsmyleg.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oidatsmyleg.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oidatsmyleg.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oidatsmyleg.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oidatsmyleg.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oidatsmyleg.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oidatsmyleg.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oidatsmyleg.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oidatsmyleg.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oidatsmyleg.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oidatsmyleg.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oidatsmyleg.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oidatsmyleg.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oidatsmyleg.wordpress.com/399/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=399&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oidatsmyleg.wordpress.com/2009/08/13/cross-site-collection-query-almost/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9ceeb00b873b1b5a08e10dfc8d942d89?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oidatsmyleg</media:title>
		</media:content>
	</item>
		<item>
		<title>Wrap a User Control inside a Web Part using WSPBuilder</title>
		<link>http://oidatsmyleg.wordpress.com/2009/07/23/wrap-a-user-control-inside-a-web-part-using-wspbuilder/</link>
		<comments>http://oidatsmyleg.wordpress.com/2009/07/23/wrap-a-user-control-inside-a-web-part-using-wspbuilder/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 14:35:29 +0000</pubDate>
		<dc:creator>oidatsmyleg</dc:creator>
				<category><![CDATA[SharePoint Development]]></category>

		<guid isPermaLink="false">http://oidatsmyleg.wordpress.com/?p=287</guid>
		<description><![CDATA[This post will describe how to wrap an ASP.NET User Control in a Web Part for deployment to SharePoint using WSPBuilder. Sharp-eyed readers will notice the similarity with the SharePoint Guidance package article How to: Wrap a User Control Inside of a Web Part for SharePoint which is intential only in an attempt to provide [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=287&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This post will describe how to wrap an ASP.NET User Control in a Web Part for deployment to SharePoint using WSPBuilder.  Sharp-eyed readers will notice the similarity with the SharePoint Guidance package article <a href="http://msdn.microsoft.com/en-us/library/dd206945.aspx">How to: Wrap a User Control Inside of a Web Part for SharePoint</a> which is intential only in an attempt to provide a useful comparison between the different tools, VSeWSS and WSPBuilder.</p>
<h2>Creating the Web Part</h2>
<p>This procedure demonstrates how to create an ASP.NET Web Part to wrap the user control.</p>
<p><strong>To create the ASP.NET Web Part</strong></p>
<ol>
<li>In Visual Studio, point to <strong>New</strong> on the <strong>File</strong> menu, and then click <strong>Project</strong>.</li>
<li>In the Project types pane, click <strong>WSPBuilder</strong>. In the Templates pane, click <strong>WSPBuilder Project</strong>. In the <strong>Name</strong> box, type <strong>MyWebPart</strong>, and then click <strong>OK</strong>.</li>
<li>Right-click the MyWebPart project, point to <strong>Add</strong>, and then click <strong>New Item&#8230;</strong></li>
<li>In the Categories pane, click <strong>WSPBuilder</strong>. In the Templates pane, click <strong>Web Part Feature</strong>. In the <strong>Name</strong> box, type <strong>MyWebPart</strong>, and then click <strong>OK</strong>.</li>
<li>In the Feature Settings dialog, type <strong>My Web Part</strong> for the <strong>Title</strong>, <strong>A web part built using WSPBuilder</strong> for the <strong>Description</strong> and set the <strong>Scope</strong> to be <strong>Web</strong>. Click <strong>OK</strong>.</li>
<li>Open the elements.xml file and edit the values for the Group and QuickAddGroups properties.  The following code shows the corrected values:</li>
<pre>&lt;Property Name="Group" Value="My Group"&gt;&lt;/Property&gt;
&lt;Property Name="QuickAddGroups" Value="My Group" /&gt;
</pre>
<li>Right-click on the MyWebPart soluction, then select <strong>Build Solution</strong>.  Note the PublicKeyToken for the compiled assembly.</li>
<li><em>Optional: Add the following property to the <strong>Properties</strong> block in the <strong>MyWebPart.webpart</strong> file to prevent users from closing the web part once it is on a page:</em></li>
<pre>&lt;property name="AllowClose" type="boolean"&gt;False&lt;/property&gt;</pre>
</ol>
<h2>Adding ASP.NET Project Types to the WSPBuilder Project</h2>
<p>This procedure demonstrates how to add the ASP.NET web application templates to a WSPBuilder project.  This is required to permit the use of the ASP.NET User Control within the WSPBuilder project.</p>
<p><strong>To add the ASP.NET templates</strong></p>
<ol>
<li>In Visual Studio, right-click on the MyWebPart project and select <strong>Unload Project</strong>.</li>
<li>Right-click on the MyWebPart project again and select <strong>Edit MyWebPart.csproj</strong>.  Locate the ProjectTypeGuids element and add the ASP.NET web application project type guid <strong>{349C5851-65DF-11DA-9384-00065B846F21}</strong>. The following code shows the corrected element:</li>
<pre>&lt;ProjectTypeGuids&gt;{349C5851-65DF-11DA-9384-00065B846F21};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}&lt;/ProjectTypeGuids&gt;</pre>
<li>Save and then close the MyWebPart.csproj file.</li>
<li>Right-click on the MyWebPart project and select <strong>Reload Project</strong>.</li>
<li>Right-click on the MyWebPart project and select <strong>Properties</strong>  On the <strong>Application</strong> tab, change the <strong>Target Framework</strong> to be <strong>.NET Framework 3.5</strong>. Save the changes.</li>
</ol>
<h2>Creating the ASP.NET User Control</h2>
<p>This procedure demonstrates how to create an ASP.NET user control that uses SharePoint.</p>
<p><strong>To create the ASP.NET user control</strong></p>
<ol>
<li>In Visual Studio, right-click the TEMPLATE folder, select <strong>Add</strong> then click <strong>New Folder</strong>.  Name the folder CONTROLTEMPLATES.</li>
<li>Right-click the CONTROLTEMPLATES folder, select <strong>Add</strong> then click <strong>New Folder</strong>. Name the folder MyWebPart</li>
<li>Right-click the MyWebPart folder, select <strong>Add</strong> then click <strong>New Item</strong>.</li>
<li>In the Categories pane, click <strong>Web</strong>. In the Templates pane, click <strong>Web User Control</strong>. Name the control MyWebUserControl.ascx, and then click <strong>Add</strong>.</li>
<li>Delete the <strong>CodeBehind</strong> attribute in the MyWebUserControl.ascx file.  Replace the <strong>Inherits</strong> attribute with <strong>MyWebPart.MyWebUserControl, MyWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=<em>[your PublicKeyToken]</em></strong>.  The following code shows the corrected file:</li>
<pre>&lt;%@ Control Language="C#" AutoEventWireup="true" Inherits="MyWebPart.MyWebUserControl, MyWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9410bf5b454f3bbd" %&gt;</pre>
<li>Open the MyWebUserControl.ascx file in the designer view. Click the Toolbox, and then add a Label using a drag-and-drop operation. Switch to the code view and rename the <strong>ID</strong> property to be <strong>MyLabel</strong>.</li>
<li>Open the MyWebUserControl.ascx.cs file and the MyWebUserControl.ascx.designer.cs file. Change the namespace to <strong>MyWebPart</strong> in both files.</li>
<li>Open the MyWebUserControl.ascx.cs file.  Add a public <strong>string</strong> property named <strong>DisplayText</strong> to the MyWebUserControl class.  The following code demonstrates this:</li>
<pre>public string DisplayText { get; set; }</pre>
<li>Add the following code to the Page_Load method.  This will display the value of the DisplayText property using the MyLabel control.</li>
<pre>protected void Page_Load(object sender, EventArgs e)
{
    MyLabel.Text = DisplayText;
}</pre>
</ol>
<h2>Wrapping the User Control and Connecting the Properties</h2>
<p>This procedure demonstrates how to wrap the user control inside the web part and connect the properties between SharePoint, the web wart and the user control.</p>
<p>To wrap the user control and connect the properties</p>
<ol>
<li>Open the MyWebPart.cs file.</li>
<li>Edit the attributes of the <strong>MyProperty</strong> property.  The code below shows the changes:</li>
<pre>[Personalizable(PersonalizationScope.Shared)]
[WebBrowsable(true)]
[System.ComponentModel.Category("Custom")]
[WebDisplayName("MyProperty")]
[WebDescription("Message to be displayed within Web Part")]
</pre>
<li>Within the CreateChildControls() method, delete the single line of code under the <code>// Your code here...</code> comment.  Enter code to load the <strong>MyWebUserControl</strong>, assign the value of <strong>MyProperty</strong> to the <strong>DisplayText</strong> property of the control and then add the control to the web part&#8217;s <strong>Controls</strong> collection.  The code below demonstrates how to do this:</li>
<pre>// Your code here...
MyWebUserControl myControl =
   (MyWebUserControl)Page.LoadControl("~/_controltemplates/MyWebPart/MyWebUserControl.ascx");
myControl.DisplayText = MyProperty;
this.Controls.Add(myControl);
</pre>
<li>Right-click on the MyWebPart solution and select <strong>Rebuild Solution</strong>.</li>
</ol>
<p>The completed solution structure is shown below:</p>
<p><a href="http://oidatsmyleg.files.wordpress.com/2009/07/solutionstructure.png"><img src="http://oidatsmyleg.files.wordpress.com/2009/07/solutionstructure.png?w=600" alt="SolutionStructure" title="SolutionStructure"   class="aligncenter size-full wp-image-371" /></a></p>
<h2>Deploying the Web Part and Testing Functionality</h2>
<p>This procedure demonstrates how to deploy the web part and the user control, and how to test their functionality.  This procedure assumes that there is a local instance of SharePoint to deploy to.</p>
<p><strong>To deploy the web part</strong></p>
<ol>
<li>Right-click on the MyWebPart project, select <strong>WSPBuilder</strong> and then <strong>Build WSP</strong>.  Follow the progress of the build in the Output window and wait for the process to complete.</li>
<li>Right-click on the MyWebPart project, select <strong>WSPBuilder</strong> and then <strong>Deploy</strong>.  Follow the progress of the build in the Output window and wait for the process to complete.</li>
<li>Browse to the local SharePoint site.</li>
<li>In the <strong>Site Actions</strong> drop-down box, click <strong>Site Settings</strong>. On the <strong>Site Settings</strong> page, click on the <strong>Site features</strong> link.</li>
<li>Click on the <strong>Activate</strong> button next to the <strong>My Web Part</strong> feature.</li>
<li>Click on the link to the default home page for the SharePoint site.</li>
<li>In the <strong>Site Actions</strong> drop-down box, click <strong>Edit Page</strong>.</li>
<li>Click <strong>Add a Web Part</strong> in one of the Web Part zones on the page, click the <strong>My Web Part</strong> Web Part (located in the <strong>My Group</strong> section), and then click <strong>Add</strong>.</li>
<li>Click <strong>Exit Edit Mode</strong>. You should now see the default &#8220;Hello SharePoint&#8221; message.</li>
<li>To change the text displayed, click the drop-down box on the Web Part, and then click <strong>Modify Shared Web Part</strong>.</li>
<li>Expand the <strong>Custom</strong> group, enter the new display message in the <strong>My Property</strong> box, and then click <strong>Apply</strong>.</li>
<li>Click <strong>Exit Edit Mode</strong>. You should now see the new message.</li>
</ol>
<h2>Notes</h2>
<ol>
<li>Obtaining the PublicKeyToken from the compiled assembly is detailed in numerous places however I recommend Todd Bleeker&#8217;s <a href="http://sharepoint.mindsharpblogs.com/Todd/archive/2009/03/17/Get-Public-Key-Token-of-Strong-Named-(Signed)-Assembly-Using-VS.NET-Tools-Menu.aspx">blog</a>.</li>
<li>The MyWebPart.cs file produced by WSPBuilder contains much more &#8220;helper&#8221; code than that created by VSeWSS.  Although this is useful in that it provides an example of a browsable web part property and some hints on where to place customisations, most of the code can be stripped out if required.  Only the CreateChildControls() method is mandatory.</li>
<li>WSPBuilder will deploy to all web applications within the local SharePoint farm.</li>
<li>Take care over providing the correct path to the user control when calling the LoadControl() method.</li>
</ol>
<h2>Alternatives</h2>
<p>As an alternative to modifying the <strong>ProjectTypeGuid</strong> property, it is possible to add an ASP.NET Web Application project to the solution and then xcopy the project outputs to the correct location within the WSPBuilder project.  </p>
<p>Greg Galipeau provides a excellent <a href="http://greggalipeau.wordpress.com/category/sharepoint/wspbuilder/">walkthrough</a> of this approach.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oidatsmyleg.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oidatsmyleg.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oidatsmyleg.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oidatsmyleg.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oidatsmyleg.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oidatsmyleg.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oidatsmyleg.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oidatsmyleg.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oidatsmyleg.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oidatsmyleg.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oidatsmyleg.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oidatsmyleg.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oidatsmyleg.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oidatsmyleg.wordpress.com/287/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oidatsmyleg.wordpress.com&amp;blog=3770674&amp;post=287&amp;subd=oidatsmyleg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oidatsmyleg.wordpress.com/2009/07/23/wrap-a-user-control-inside-a-web-part-using-wspbuilder/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9ceeb00b873b1b5a08e10dfc8d942d89?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oidatsmyleg</media:title>
		</media:content>

		<media:content url="http://oidatsmyleg.files.wordpress.com/2009/07/solutionstructure.png" medium="image">
			<media:title type="html">SolutionStructure</media:title>
		</media:content>
	</item>
	</channel>
</rss>
