<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Leon Zandman's Blog</title>
	<atom:link href="http://www.wirwar.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.wirwar.com/blog</link>
	<description>Blah blah SharePoint blah blah Development blah blah</description>
	<pubDate>Tue, 22 Jun 2010 08:08:35 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Googling with Bing</title>
		<link>http://www.wirwar.com/blog/2009/09/20/googling-with-bing/</link>
		<comments>http://www.wirwar.com/blog/2009/09/20/googling-with-bing/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 09:29:26 +0000</pubDate>
		<dc:creator>Leon Zandman</dc:creator>
		
		<category><![CDATA[uncategorized]]></category>

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

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

		<guid isPermaLink="false">http://www.wirwar.com/blog/?p=117</guid>
		<description><![CDATA[I laughed out loud when I read this quote from Scott Hanselman&#8217;s latest blog post:
I googled with Bing
How will Microsoft ever win this&#8230;
]]></description>
			<content:encoded><![CDATA[<p>I laughed out loud when I read this quote from Scott Hanselman&#8217;s <a href="http://www.hanselman.com/blog/BatchConvertingADirectoryTreeOfVideosRecursivelyWithHandbrakeForStreamingToAnXbox360.aspx">latest blog post</a>:</p>
<blockquote><p>I googled with Bing</p></blockquote>
<p>How will Microsoft ever win this&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wirwar.com/blog/2009/09/20/googling-with-bing/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Little Fun</title>
		<link>http://www.wirwar.com/blog/2009/05/11/a-little-fun/</link>
		<comments>http://www.wirwar.com/blog/2009/05/11/a-little-fun/#comments</comments>
		<pubDate>Mon, 11 May 2009 08:36:14 +0000</pubDate>
		<dc:creator>Leon Zandman</dc:creator>
		
		<category><![CDATA[uncategorized]]></category>

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

		<guid isPermaLink="false">http://www.wirwar.com/blog/2009/05/11/a-little-fun/</guid>
		<description><![CDATA[I remember reading this funny text several years ago. I just stumbled on it again and decided to archive it here. I think it’s pretty funny  
Woman are like computers, because: 

No one but their creator understands their internal logic. 
The native language they use to communicate with other computers is incomprehensible to everyone [...]]]></description>
			<content:encoded><![CDATA[<p>I remember reading this funny text several years ago. I just stumbled on it again and decided to archive it here. I think it’s pretty funny <img src='http://www.wirwar.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em><strong>Woman are like computers, because:</strong> </em></p>
<ol>
<li><em>No one but their creator understands their internal logic.</em> </li>
<li><em>The native language they use to communicate with other computers is incomprehensible to everyone else.</em> </li>
<li><em>Even the smallest mistakes are stored in long term memory for possible later review.</em> </li>
<li><em>As soon as you make a commitment to one, you find yourself spending half your paycheck on accessories for it. </em></li>
</ol>
<p><em><strong>Men are like computers, because:</strong></em></p>
<ol>
<li><em>In order to do anything with them, you have to turn them on.</em> </li>
<li><em>They have a lot of data but still can&#8217;t think for themselves.</em> </li>
<li><em>They are supposed to help you solve problems, but half the time they ARE the problem.</em> </li>
<li><em>As soon as you commit to one, you realize that if you had waited a little longer you could have gotten a better model.</em> </li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.wirwar.com/blog/2009/05/11/a-little-fun/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SharePoint 2009 Comes With Ribbon Interface?</title>
		<link>http://www.wirwar.com/blog/2008/12/14/sharepoint-2009-comes-with-ribbon-interface/</link>
		<comments>http://www.wirwar.com/blog/2008/12/14/sharepoint-2009-comes-with-ribbon-interface/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 01:04:57 +0000</pubDate>
		<dc:creator>Leon Zandman</dc:creator>
		
		<category><![CDATA[microsoft]]></category>

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

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

		<guid isPermaLink="false">http://www.wirwar.com/blog/?p=94</guid>
		<description><![CDATA[The next version of SharePoint, aka SharePoint 2009 or Office Server 14, is scheduled for release sometime during the second half of 2009. Various blogs have already listed some of the presumed new features, like these:

64-bit only
Silverlight UI / Web Parts
Better support for dealing with large lists (must-have!)
Groove integration

Recently I heard of a new feature [...]]]></description>
			<content:encoded><![CDATA[<p>The next version of SharePoint, aka SharePoint 2009 or Office Server 14, is scheduled for release sometime during the second half of 2009. Various <a href="http://hinsua.blogspot.com/2008/10/sharepoint-2009-features.html" target="_blank">blogs</a> have already listed some of the presumed new features, like these:</p>
<ul>
<li>64-bit only</li>
<li>Silverlight UI / Web Parts</li>
<li>Better support for dealing with large lists (must-have!)</li>
<li>Groove integration</li>
</ul>
<p>Recently I heard of a new feature that I hadn&#8217;t seen on any of these lists: <strong>SharePoint 2009&#8217;s default web interface will be using the (in)famous Ribbon interface</strong>. I was told this information comes from a SharePoint Product Manager at Microsoft, so it should be reliable.</p>
<p>Now I don&#8217;t really know what to think about this. I still have a love-hate relationship with the Ribbon ever since Microsoft released it with Office 2007. For basic Office usage it works very well, but for some tasks it find myself scrolling between Ribbon tabs like a madman.</p>
<p>On the other hand, SharePoint 2007&#8217;s UI isn&#8217;t that good either. The menus are all over the place and rather complicated, especially for first time users. Use of a Ribbon could improve on this. And considering the fact that SharePoint (i.e. <strong>Microsoft Office</strong> SharePoint Server) belongs to the Office family, it makes perfect sense to give it an Office-like interface. This would definitely enhance the integrated experience.</p>
<p>Now that I think about it, Microsoft&#8217;s Office website has been using a Ribbon-like interface for some time now and I must admit it looks nice. Maybe that&#8217;s the exact same Ribbon that&#8217;s going to end up in SharePoint 2009? Who knows&#8230; Maybe they&#8217;ll even implement it using Silverlight, so it will respond to my mouse&#8217;s scroll wheel, so I can continue that scrolling between Ribbon tabs like a madman <img src='http://www.wirwar.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><strong>Update:</strong> I&#8217;ve received several e-mails from people claiming they already have the Office 14 alpha bits and they all confirm SharePoint 2009 / Office Server 14 is using the Ribbon for its menu&#8217;s.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wirwar.com/blog/2008/12/14/sharepoint-2009-comes-with-ribbon-interface/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Finally arrived: &#34;Concurrent Programming on Windows&#34;</title>
		<link>http://www.wirwar.com/blog/2008/11/14/finally-arrived-concurrent-programming-on-windows/</link>
		<comments>http://www.wirwar.com/blog/2008/11/14/finally-arrived-concurrent-programming-on-windows/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 00:41:17 +0000</pubDate>
		<dc:creator>Leon Zandman</dc:creator>
		
		<category><![CDATA[.net]]></category>

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

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

		<category><![CDATA[book review]]></category>

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

		<guid isPermaLink="false">http://www.wirwar.com/blog/?p=85</guid>
		<description><![CDATA[
Last June Joe Duffy announced that he had submitted the final manuscript for his (then upcoming) book Concurrent Programming on Windows to his publisher. Since then I had been anxiously waiting for it to arrive. Well, yesterday was the big day. The mailman delivered a big package and to my surprise it was Joe&#8217;s book. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/032143482X?ie=UTF8&amp;tag=leozansblo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=032143482X"><img src="http://www.wirwar.com/blog/wp-content/uploads/winconc.jpg" alt="" title="Concurrent Programming on Windows cover" width="151" height="200" class="alignleft size-full wp-image-89" /></a>
<p>Last June <a href="http://www.bluebytesoftware.com/blog">Joe Duffy</a> <a href="http://www.bluebytesoftware.com/blog/2008/06/23/FinalManuscriptForConcurrentProgrammingOnWindowsHasBeenSubmitted.aspx">announced</a> that he had submitted the final manuscript for his (then upcoming) book <a href="http://www.amazon.com/gp/product/032143482X?ie=UTF8&amp;tag=leozansblo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=032143482X"><em>Concurrent Programming on Windows</em></a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=leozansblo-20&amp;l=as2&amp;o=1&amp;a=032143482X" width="1" border="0" /> to his publisher. Since then I had been anxiously waiting for it to arrive. Well, yesterday was the big day. The mailman delivered a big package and to my surprise it was Joe&#8217;s book. I had it on pre-order for some time and hadn&#8217;t expected it to be such a big book. OK, I knew it was going to have around 1000 pages, but still&#8230;</p>
<p>Ofcourse I haven&#8217;t been able to read the whole book yet, but I&#8217;ve scanned through it and I must say that I&#8217;m really impressed by it. It really covers many, if not all, aspects of concurrent programming on Windows. Joe has divided his book into four <a href="http://www.bluebytesoftware.com/books/winconc/winconc_book_resources.html">parts</a>. In the first part he explains what concurrency is at a high level, which is great to get you started. In the second part he then thoroughly discusses fundamental platforms features, inner workings and API details. Here you&#8217;ll read everything about threads, thread pools, synchronization, asynchronous programming models and the lesser-known subject of fibers.</p>
<p>Actually, one of the chapters that immediately caught my eye was the one in which he discusses why fibers aren&#8217;t supported in the .NET Framework. As it turns out Microsoft planned to add fiber support to the CLR 2.0 so SQL Server 2005 could continue running in its &quot;lightweight pooling&quot; mode (a.k.a. fiber mode) when the CLR was hosted in-process. However they decided to completely remove it due to difficult bugs and schedule pressure. Joe gives some nice background info on this and tells you why it isn&#8217;t a good idea to try to use fibers from managed code yourself (i.e. by using P/Invoke).</p>
<p>The third part of the book then covers common patterns, best practices, algorithms and data structures that emerge while writing concurrent software. Here you&#8217;ll read about concurrency hazards like deadlocks and race conditions, data and task parallelism and performance and scalability. The final part of the book then discusses overlapped I/O, I/O cancellation and GUI threading models. All in all a very complete and thorough treatment of the subject of concurrency.</p>
<p>As a bonus Joe added two interesting appendices. The first one focusses on designing reusable libraries for concurrent .NET programs and the second one discusses the <a href="http://msdn.microsoft.com/en-us/concurrency/bb896007.aspx">Parallel Extensions to .NET</a>. Although this last appendix is very interesting and extensive I&#8217;m still a bit disappointed by it. I had expected the development of Parallel Extensions to go a bit faster and had hoped they would be released by now, so Joe&#8217;s book would include full coverage of this subject. Because of the current state of the Parallel Extensions (currently only some CTP&#8217;s have been released, although some of it is <a href="http://blogs.msdn.com/pfxteam/archive/2008/11/03/9037931.aspx">scheduled</a> to appear in .NET Framework 4.0) the appendix might (well&#8230; most probably will) be outdated very soon. Considering the popularity and importance of the .NET Framework and the multi-core future I expect these Parallel Extensions to become very popular. So coverage of them has to become an essential part of this book. So expect a second edition of Concurrent Programming on Windows to arrive in the near future <img src='http://www.wirwar.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Well, to conclude things: <a href="http://www.amazon.com/gp/product/032143482X?ie=UTF8&amp;tag=leozansblo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=032143482X"><em>Concurrent Programming on Windows</em></a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=leozansblo-20&amp;l=as2&amp;o=1&amp;a=032143482X" width="1" border="0" /> is a definite must-have for anyone having an interest in concurrent programming on Windows and can be considered an instant classic. No other book out there has such an extensive coverage of the matter. Just get it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wirwar.com/blog/2008/11/14/finally-arrived-concurrent-programming-on-windows/feed/</wfw:commentRss>
		</item>
		<item>
		<title>RIP: Patrick Tisseghem</title>
		<link>http://www.wirwar.com/blog/2008/09/08/rip-patrick-tisseghem/</link>
		<comments>http://www.wirwar.com/blog/2008/09/08/rip-patrick-tisseghem/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 08:52:02 +0000</pubDate>
		<dc:creator>Leon Zandman</dc:creator>
		
		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://www.wirwar.com/blog/2008/09/08/rip-patrick-tisseghem/</guid>
		<description><![CDATA[I just heard the shocking news that Patrick Tisseghem, co-founder, managing director of U2U and Microsoft SharePoint MVP, has passed away last week. This is a great loss for the SharePoint community. The U2U website has this to say:
It is with deepest regret that we have to announce the death of Patrick Tisseghem, co-founder of [...]]]></description>
			<content:encoded><![CDATA[<p>I just heard the shocking news that <a href="http://blog.u2u.info/DottextWeb/patrick/" target="_blank">Patrick Tisseghem</a>, co-founder, managing director of <a href="http://www.u2u.be/" target="_blank">U2U</a> and Microsoft SharePoint MVP, has passed away last week. This is a great loss for the SharePoint community. The U2U website has this to say:</p>
<blockquote><p>It is with deepest regret that we have to announce the death of Patrick Tisseghem, co-founder of U2U. Patrick suddenly passed away on Wednesday 3 September 2008 around 18 hours in Gothenburg Sweden due to a heart failure. Our sympathy and thoughts go out to his wife Linda, their daughters Anahi and Laura, and to his family. We are all deeply saddened by this tragic loss. We remember him as caring father as well as a driven and warm hearted colleague and friend. We miss you Patrick.</p>
</blockquote>
<p>The last time I spoke to Patrick was a few months ago at the Dutch Microsoft DevDays 2008 in Amsterdam. After one of his sessions he helped me out with some SharePoint custom security trimmer problems I had.</p>
<p>I think he was a great guy and I always liked attending his presentations. Especially the funny, sarcastic, remarks used to make about SharePoint. My deepest condolences to his wife and daughters. Goodbye and thank you, Patrick!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wirwar.com/blog/2008/09/08/rip-patrick-tisseghem/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Portal Navigation Properties Feature</title>
		<link>http://www.wirwar.com/blog/2008/08/26/portal-navigation-properties-feature/</link>
		<comments>http://www.wirwar.com/blog/2008/08/26/portal-navigation-properties-feature/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 10:02:26 +0000</pubDate>
		<dc:creator>Leon Zandman</dc:creator>
		
		<category><![CDATA[sharepoint]]></category>

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

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

		<guid isPermaLink="false">http://www.wirwar.com/blog/?p=77</guid>
		<description><![CDATA[Today my colleague Harmjan Greving pointed me to the Portal Navigation Properties Feature. I had never encountered this one before and as it turns out it is surprisingly undocumented by Microsoft.
So what does it do? Well, it&#8217;s a feature that comes with MOSS 2007 (unfortunately it isn&#8217;t included with WSS 3.0) that enables you to [...]]]></description>
			<content:encoded><![CDATA[<p>Today my colleague <a href="http://www.dynasign.nl/blog/" target="_blank">Harmjan Greving</a> pointed me to the Portal Navigation Properties Feature. I had never encountered this one before and as it turns out it is surprisingly undocumented by Microsoft.</p>
<p>So what does it do? Well, it&#8217;s a feature that comes with MOSS 2007 (unfortunately it isn&#8217;t included with WSS 3.0) that enables you to define per-site navigation settings in a declarative way. Until now I always used to write custom API code for this, that I executed from a feature receiver or a custom site provisioning provider.</p>
<p>The Portal Navigation Properties Feature itself is actually very simple. It contains no elements, but is only used to trigger the <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.publishing.navigationfeaturehandler.aspx" target="_blank">Microsoft.SharePoint.Publishing.NavigationFeatureHandler</a> feature receiver, which does the real work, based on properties you specify. It is typically used from within a site definition file (ONET.XML), like this:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">...</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff">&lt;</span><span style="color: #800000">WebFeatures</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">Feature</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="541F5F57-C847-4e16-B59A-B31E90E6F9EA"</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">        <span style="color: #008000">&lt;!-- Portal Navigation Properties Feature --&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">Properties</span> <span style="color: #ff0000">xmlns</span><span style="color: #0000ff">="http://schemas.microsoft.com/sharepoint/"</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">            <span style="color: #0000ff">&lt;</span><span style="color: #800000">Property</span> <span style="color: #ff0000">Key</span><span style="color: #0000ff">="InheritGlobalNavigation"</span> <span style="color: #ff0000">Value</span><span style="color: #0000ff">="True"</span><span style="color: #0000ff">/&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">            <span style="color: #0000ff">&lt;</span><span style="color: #800000">Property</span> <span style="color: #ff0000">Key</span><span style="color: #0000ff">="InheritCurrentNavigation"</span> <span style="color: #ff0000">Value</span><span style="color: #0000ff">="True"</span><span style="color: #0000ff">/&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">            <span style="color: #0000ff">&lt;</span><span style="color: #800000">Property</span> <span style="color: #ff0000">Key</span><span style="color: #0000ff">="IncludeSubSites"</span> <span style="color: #ff0000">Value</span><span style="color: #0000ff">="True"</span> <span style="color: #0000ff">/&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">            <span style="color: #0000ff">&lt;</span><span style="color: #800000">Property</span> <span style="color: #ff0000">Key</span><span style="color: #0000ff">="IncludePages"</span> <span style="color: #ff0000">Value</span><span style="color: #0000ff">="False"</span> <span style="color: #0000ff">/&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">            <span style="color: #0000ff">&lt;</span><span style="color: #800000">Property</span> <span style="color: #ff0000">Key</span><span style="color: #0000ff">="OrderingMethod"</span> <span style="color: #ff0000">Value</span><span style="color: #0000ff">="Automatic"</span><span style="color: #0000ff">/&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">            <span style="color: #0000ff">&lt;</span><span style="color: #800000">Property</span> <span style="color: #ff0000">Key</span><span style="color: #0000ff">="AutomaticSortingMathod"</span> <span style="color: #ff0000">Value</span><span style="color: #0000ff">="CreatedDate"</span><span style="color: #0000ff">/&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">        <span style="color: #0000ff">&lt;/</span><span style="color: #800000">Properties</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">Feature</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">WebFeatures</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">...</pre>
</div>
</div>
<p>Using <a href="http://www.red-gate.com/products/reflector/" target="_blank">Reflector</a> I found out the following properties can be used with this feature:</p>
<table cellspacing="2" cellpadding="2" width="413" border="1">
<tbody>
<tr>
<td valign="top" align="middle" width="181"><strong>Property</strong></td>
<td valign="top" align="middle" width="224"><strong>Valid Values</strong></td>
</tr>
<tr>
<td valign="top" width="181">IncludeInCurrentNavigation</td>
<td valign="top" width="224">True / False</td>
</tr>
<tr>
<td valign="top" width="181">InheritGlobalNavigation</td>
<td valign="top" width="224">True / False</td>
</tr>
<tr>
<td valign="top" width="181">InheritCurrentNavigation</td>
<td valign="top" width="224">True / False</td>
</tr>
<tr>
<td valign="top" width="181">ShowSiblings</td>
<td valign="top" width="224">True / False</td>
</tr>
<tr>
<td valign="top" width="181">IncludeSubSites</td>
<td valign="top" width="224">True / False</td>
</tr>
<tr>
<td valign="top" width="181">IncludePages</td>
<td valign="top" width="224">True / False</td>
</tr>
<tr>
<td valign="top" width="181">OrderingMethod</td>
<td valign="top" width="224">Automatic<br />ManualWithAutomaticPageSorting<br />Manual</td>
</tr>
<tr>
<td valign="top" width="181">AutomaticSortingMathod <sup>1</sup></td>
<td valign="top" width="224">Title<br />CreatedDate<br />LastModifiedDate</td>
</tr>
<tr>
<td valign="top" width="181">SortAscending</td>
<td valign="top" width="224">True / False</td>
</tr>
</tbody>
</table>
<p><sup>1</sup> Please note the awful spelling error in &#8220;AutomaticSortingM<strong>a</strong>thod&#8221;. Ofcourse this should have been &#8220;AutomaticSortingM<strong>e</strong>thod&#8221;, but apparently someone at Microsoft forgot to run the spell checker over his/her code <img src='http://www.wirwar.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.wirwar.com/blog/2008/08/26/portal-navigation-properties-feature/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Building a SPQuery ViewFields string</title>
		<link>http://www.wirwar.com/blog/2008/08/01/building-a-spquery-viewfields-string/</link>
		<comments>http://www.wirwar.com/blog/2008/08/01/building-a-spquery-viewfields-string/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 12:58:35 +0000</pubDate>
		<dc:creator>Leon Zandman</dc:creator>
		
		<category><![CDATA[.net]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://www.wirwar.com/blog/?p=75</guid>
		<description><![CDATA[If you&#8217;re querying SharePoint content using a CAML query from code it&#8217;s a good habit to always populate the SPQuery instance&#8217;s ViewFields property. Otherwise the returned SPListItem instances might not contain any data for certain fields and throw an exception when you try to access those fields. 
Specifying ViewFields involves creating a string of CAML [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re querying SharePoint content using a CAML query from code it&#8217;s a good habit to always populate the SPQuery instance&#8217;s <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spquery.viewfields.aspx">ViewFields</a> property. Otherwise the returned SPListItem instances might not contain any data for certain fields and throw an exception when you try to access those fields. </p>
<p>Specifying ViewFields involves creating a string of CAML <a href="http://msdn.microsoft.com/en-us/library/ms442728.aspx">FieldRef</a> elements. For instance if we want our query to return items that contain data for the Title, Created and ID field we use this: </p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> &lt;FieldRef Name=<span style="color: #006080">'Title'</span>/&gt;&lt;FieldRef Name=<span style="color: #006080">'Created'</span>/&gt;&lt;FieldRef Name=<span style="color: #006080">'ID'</span>/&gt;</pre>
</p></div>
</div>
<p>As you can see there&#8217;s some overhead of <a href="http://en.wikipedia.org/wiki/Boilerplate_(text)">boilerplate</a> markup involved. I&#8217;ve written a small piece of code that I always use to make my life a little easier. Today I happened to post this code in a <a href="http://forums.msdn.microsoft.com/en-US/sharepointdevelopment/thread/076c57b1-a780-4b86-b00b-849fa8789318">reply</a> I wrote on the MSDN forums and also decided to submit it as <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spquery.viewfields.aspx#CommunityContent">Community Content</a> to the official SPQuery docs on MSDN. Then I thought I might as well share it with you here. So here it is: </p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">string</span> BuildViewFieldsXml(<span style="color: #0000ff">params</span> <span style="color: #0000ff">string</span>[] fieldNames)</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span> {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span>     <span style="color: #0000ff">const</span> <span style="color: #0000ff">string</span> TEMPLATE = <span style="color: #006080">@&quot;&lt;FieldRef Name='{0:S}'/&gt;&quot;</span>;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span>     StringBuilder sb = <span style="color: #0000ff">new</span> StringBuilder();</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span>     <span style="color: #0000ff">foreach</span> (<span style="color: #0000ff">string</span> fieldName <span style="color: #0000ff">in</span> fieldNames)</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   6:</span>     {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   7:</span>         sb.AppendFormat(TEMPLATE, fieldName);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   8:</span>     }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   9:</span>     <span style="color: #0000ff">return</span> sb.ToString();</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  10:</span> }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  11:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  12:</span> <span style="color: #008000">// Use it like this:</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  13:</span> SPQuery query = <span style="color: #0000ff">new</span> SPQuery();</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  14:</span> query.ViewFields = BuildViewFieldsXml(<span style="color: #006080">&quot;Title&quot;</span>, <span style="color: #006080">&quot;Created&quot;</span>, <span style="color: #006080">&quot;ID&quot;</span>);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  15:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  16:</span> <span style="color: #008000">// Note that you can specify a variable amount of string parameters, i.e.</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  17:</span> query.ViewFields = BuildViewFieldsXml(<span style="color: #006080">&quot;Title&quot;</span>, <span style="color: #006080">&quot;Created&quot;</span>, <span style="color: #006080">&quot;ID&quot;</span>, <span style="color: #006080">&quot;Author&quot;</span>, <span style="color: #006080">&quot;Gender&quot;</span>);</pre>
</p></div>
</div>
<p>Yeah, you&#8217;re right. This piece of code isn&#8217;t exactly rocket science. But you might appreciate it anyway <img src='http://www.wirwar.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.wirwar.com/blog/2008/08/01/building-a-spquery-viewfields-string/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SharePoint Frustrations #1: The undocumented &#34;IncludeTimeValue&#34; CAML attribute</title>
		<link>http://www.wirwar.com/blog/2008/07/30/sharepoint-frustrations-1-the-undocumented-includetimevalue-caml-attribute/</link>
		<comments>http://www.wirwar.com/blog/2008/07/30/sharepoint-frustrations-1-the-undocumented-includetimevalue-caml-attribute/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 15:39:26 +0000</pubDate>
		<dc:creator>Leon Zandman</dc:creator>
		
		<category><![CDATA[developing]]></category>

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

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

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

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

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

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

		<guid isPermaLink="false">http://www.wirwar.com/blog/?p=74</guid>
		<description><![CDATA[I&#8217;m planning on doing some posts about frustrating things I have encountered (and still do!) during my SharePoint development efforts. Here&#8217;s the first one:
Last year while working on a MOSS 2007 project for one of our customers I stumbled on what I thought was a bug in SharePoint 2007. I had created a custom list [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m planning on doing some posts about frustrating things I have encountered (and still do!) during my SharePoint development efforts. Here&#8217;s the first one:</p>
<p>Last year while working on a MOSS 2007 project for one of our customers I stumbled on what I thought was a bug in SharePoint 2007. I had created a custom list that was filled with Electronic Program Guide (EPG) information for the streaming video media that that site contained. I then created a Webpart that used ASP.Net AJAX to continually show the actual EPG information below the video stream. </p>
<p>In order to obtain the EPG items I used a CAML query to query the EPG list. The list was simply a custom list containing amongst others a column of type DateTime that was called &quot;ProgramEnd&quot;. As the name suggests it contained the time the program ended. I then used the following code to create a query that was supposed to obtain the currently broadcasted item and all future items. </p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> <span style="color: #0000ff">const</span> <span style="color: #0000ff">string</span> EPG_QUERY_TEMPLATE = <span style="color: #006080">@&quot;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span> &lt;Where&gt;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span>  &lt;Geq&gt;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span>   &lt;FieldRef Name='ProgramEnd' /&gt;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span>   &lt;Value Type='DateTime'&gt;{0}&lt;/Value&gt;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   6:</span>  &lt;/Geq&gt;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   7:</span> &lt;/Where&gt;&quot;</span>; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   8:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   9:</span> SPQuery query = <span style="color: #0000ff">new</span> SPQuery();</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  10:</span> query.Query = String.Format(EPG_QUERY_TEMPLATE,</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  11:</span>     SPUtility.CreateISO8601DateTimeFromSystemDateTime(DateTime.Now)); </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  12:</span> // ...</pre>
</p></div>
</div>
<p>To my surprise this query always returned too many items. Further investigation showed that time part of the query seemed to be ignored completely, so it returned the items as if no time was specified! So instead of getting the current item and all future items it returned all items broadcasted for that day.</p>
<p>After wasting a lot of time debugging, using the <a href="http://www.u2u.be/res/Tools/SharePointCamlQueryBuilder.aspx">U2U Caml Query Builder</a> and looking for an answer / solution on the internet I gave up and wrote a quick hack around it, which fortunately wasn&#8217;t very difficult. It would just run the query and run the results through some additional code that checked the ProgramEnd DateTime field and filter out the wrong items, like this:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> SPListItemCollection results = ...; <span style="color: #008000">// The results from the query mentioned above</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span> <span style="color: #008000">// Trim the results to only include the current and future items</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span> List&lt;SPListItem&gt; trimmedItems = <span style="color: #0000ff">new</span> List&lt;SPListItem&gt;();</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span> <span style="color: #0000ff">foreach</span> (SPListItem result <span style="color: #0000ff">in</span> results)</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span> {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   6:</span>     DateTime programEnd = (DateTime)result[<span style="color: #006080">&quot;ProgramEnd&quot;</span>];</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   7:</span>     <span style="color: #0000ff">if</span> (programEnd &gt;= DateTime.Now)</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   8:</span>         trimmedItems.Add(result);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   9:</span> } </pre>
</p></div>
</div>
<p>Fortunately this worked just fine and the customer was happy. I was not&#8230; <img src='http://www.wirwar.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>Today while surfing the Net I stumbled on <a href="http://forums.msdn.microsoft.com/en-US/sharepointdevelopment/thread/f891563a-eea2-4525-8a88-b23f0d435930/">this entry</a> in the MSDN forums, from which I learned it wasn&#8217;t a bug, but that you need to included the &quot;IncludeTimeValue&quot; attribute to the CAML query, like this: </p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> &lt;Where&gt;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span>  &lt;Eq&gt;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span>   &lt;FieldRef Name=<span style="color: #006080">'programEnd'</span> /&gt;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span>   &lt;Value Type=<span style="color: #006080">'DateTime'</span> IncludeTimeValue=<span style="color: #006080">'TRUE'</span>&gt;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span>    2008-07-30T12:00:00Z</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   6:</span>   &lt;/Value&gt;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   7:</span>  &lt;/Eq&gt;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   8:</span> &lt;/Where&gt; </pre>
</p></div>
</div>
<p>If only I had known it was this simple&#8230; What bothers me is that this little, but very important attribute seems to be totally undocumented. I couldn&#8217;t find any information about it in the WSS / SharePoint SDKs.</p>
<p>Ofcourse once I knew what to look for I found <a href="http://nickgrattan.wordpress.com/2008/04/24/filtering-views-by-time-and-date/">some</a> <a href="http://puneetspeed.spaces.live.com/blog/cns!AFAFB88D250BEE36!308.entry">other</a> blogs and forums mentioning this issue. It turns out the UCSharp blog had already <a href="http://ucsharp.wordpress.com/2007/10/11/9/">blogged</a> about this way back in October 2007, only a few months after I searched for it. Even <a href="http://www.u2u.info/Blogs/karine/default.aspx">Karine Bosch</a>, U2U&#8217;s &quot;CAML Girl&quot; and author of the famous U2U CAML Query Builder, <a href="http://www.u2u.info/Blogs/karine/Lists/Posts/ViewPost.aspx?ID=30">says</a> she only recently found out about this. Fortunately she has included support for the &quot;IncludeTimeValue&quot; attribute in her latest version of the U2U Caml Query Builder, which I know a lot of SharePoint developers use to construct and test their CAML queries.</p>
<p>I also noticed that someone called puneetspeed has added some Community Content to the online SharePoint SDK&#8217;s <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spquery.aspx">SPQuery</a> docs explaining this issue. So hopefully Microsoft will add information about the &quot;IncludeTimeValue&quot; attribute to the official SDK text in the near future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wirwar.com/blog/2008/07/30/sharepoint-frustrations-1-the-undocumented-includetimevalue-caml-attribute/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Back from the DevDays 2008</title>
		<link>http://www.wirwar.com/blog/2008/05/23/back-from-the-devdays-2008/</link>
		<comments>http://www.wirwar.com/blog/2008/05/23/back-from-the-devdays-2008/#comments</comments>
		<pubDate>Thu, 22 May 2008 22:05:27 +0000</pubDate>
		<dc:creator>Leon Zandman</dc:creator>
		
		<category><![CDATA[developing]]></category>

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

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

		<guid isPermaLink="false">http://www.wirwar.com/blog/?p=65</guid>
		<description><![CDATA[Just arrived back from my visit to the Microsoft DevDays 2008 in Amsterdam. It was a great day and I&#8217;ve attended some interesting sessions.
I&#8217;ve uploaded the photos I took to my Flickr account, so check &#8216;em out. I&#8217;ve also uploaded a small video of the &#8220;Holland Sport&#8221; bicycle race track we had at our booth. [...]]]></description>
			<content:encoded><![CDATA[<p>Just arrived back from my visit to the Microsoft DevDays 2008 in Amsterdam. It was a great day and I&#8217;ve attended some interesting sessions.</p>
<p>I&#8217;ve uploaded the photos I took to <a href="http://www.flickr.com/photos/7197016@N04/sets/72157605201831487/">my Flickr account</a>, so check &#8216;em out. I&#8217;ve also uploaded a small video of the &#8220;Holland Sport&#8221; bicycle race track we had at our booth. Check it out:</p>
<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/lZ5VPzohnjE&#038;hl=en&#038;rel=0"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/lZ5VPzohnjE&#038;hl=en&#038;rel=0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p>It was a very tiring day and I&#8217;m going to get some sleep now. I&#8217;ll blog about some more about the DevDays later on&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wirwar.com/blog/2008/05/23/back-from-the-devdays-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Attending Microsoft DevDays 2008</title>
		<link>http://www.wirwar.com/blog/2008/05/21/attending-microsoft-devdays-2008/</link>
		<comments>http://www.wirwar.com/blog/2008/05/21/attending-microsoft-devdays-2008/#comments</comments>
		<pubDate>Wed, 21 May 2008 21:22:50 +0000</pubDate>
		<dc:creator>Leon Zandman</dc:creator>
		
		<category><![CDATA[microsoft]]></category>

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

		<guid isPermaLink="false">http://www.wirwar.com/blog/?p=64</guid>
		<description><![CDATA[Tomorrow (well&#8230; in a couple of hours actually) I&#8217;m off to Amsterdam for the Microsoft DevDays 2008. This year I&#8217;m only going to attend the first of the two days. My employer, Atos Origin, is a Platinum sponsor for the event and we&#8217;ll be there with a big booth.
At our booth you&#8217;ll be able to [...]]]></description>
			<content:encoded><![CDATA[<p>Tomorrow (well&#8230; in a couple of hours actually) I&#8217;m off to Amsterdam for the <a href="http://www.devdays.nl/">Microsoft DevDays 2008</a>. This year I&#8217;m only going to attend the first of the two days. My employer, <a href="http://www.atosorigin.nl/">Atos Origin</a>, is a Platinum sponsor for the event and we&#8217;ll be there with a big booth.</p>
<p>At our booth you&#8217;ll be able to compete in a fun bicycle contest and perhaps win one of the six XBOX 360 consoles we are giving away! Hope to see you there. I&#8217;m scheduled for booth duty on thursday morning. Yes, that&#8217;s during <a href="http://suckbusters2.blogspot.com/">David Platt</a>&#8217;s great keynote on &#8220;Why Software Sucks&#8221;. Fortunately I&#8217;ve already seen this one during TechEd Developers 2007 in Barcelona last year and I also own an autographed copy of his book on the topic. But still I&#8217;m going to try to sneak away from the booth for a while <img src='http://www.wirwar.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>As for my SharePoint interests I&#8217;m hoping to get a chance to speak with <a href="http://weblogs.asp.net/jan/">Jan Tielens </a>and <a href="http://blog.u2u.info/DottextWeb/patrick/">Patrick Tisseghem</a>, who are both scheduled to speak at the event. I&#8217;ve got some burning questions about Custom Security Trimmers that I hope Patrick can answer.</p>
<p>Oh, and ofcourse I&#8217;ll take my digital camera and see if I can take some nice pictures of the event and post them here.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wirwar.com/blog/2008/05/21/attending-microsoft-devdays-2008/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
