<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.zevenseas.com/~d/styles/itemcontent.css"?><rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
   <channel>
      <title>zevenseas Full Feed</title>
      <description>Pipes Output</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=bCFksaDD3RGJUar8PhJ3AQ</link>
      <pubDate>Fri, 12 Mar 2010 20:47:32 -0800</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.zevenseas.com/ZevenseasFullFeed" /><feedburner:info uri="zevenseasfullfeed" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><item>
         <title>SharePoint On Your Phone</title>
         <link>http://community.zevenseas.com/Blogs/Daniel/archive/2010/02/17/sharepoint-on-your-phone.aspx</link>
         <description>&lt;div class="ExternalClass85A6ED13D57B444F9F3CBFAAC170ACAF"&gt;&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://markbower.wordpress.com/"&gt;Mark Bower&lt;/a&gt; had a &lt;a rel="nofollow" target="_blank" href="http://markbower.wordpress.com/2010/02/16/windows-phone-7-series-sharepoint-integration/"&gt;nice post today&lt;/a&gt;, I didn’t see it in all the announcements flying by, however SharePoint has pride of place along with the Xbox on the new Windows Phone 7 Series.&lt;/p&gt; &lt;p&gt;&lt;img title="Windows Phone 7 Series Office Hub" border="0" alt="Windows Phone 7 Series Office Hub" src="http://farm3.static.flickr.com/2758/4362092644_d9cffec1ac.jpg"&gt;&lt;/p&gt; &lt;p&gt;Nice, Very Very Nice!&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=WGwoG1dFpmo:1xcvxUJCyQs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=WGwoG1dFpmo:1xcvxUJCyQs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=WGwoG1dFpmo:1xcvxUJCyQs:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=WGwoG1dFpmo:1xcvxUJCyQs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=WGwoG1dFpmo:1xcvxUJCyQs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=WGwoG1dFpmo:1xcvxUJCyQs:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Daniel/archive/2010/02/17/sharepoint-on-your-phone.aspx</guid>
         <pubDate>Tue, 16 Feb 2010 22:16:06 -0800</pubDate>
      </item>
      <item>
         <title>SharePoint Connections Look Back</title>
         <link>http://community.zevenseas.com/Blogs/Daniel/archive/2010/02/09/sharepoint-connections-look-back.aspx</link>
         <description>&lt;div class="ExternalClass6D82A60110A143089AA47E7CE0C97FB7"&gt;&lt;p&gt;I was lucky enough to present at the recent &lt;a rel="nofollow" target="_blank" href="http://www.devconnections.com/SPEurope/"&gt;SharePoint Connections&lt;/a&gt; conference held here in our very own Amsterdam. It was a fantastic event, great venue, lots of SharePoint people and good sessions. &lt;/p&gt; &lt;p&gt;My first session was titled &lt;a rel="nofollow" target="_blank" href="http://channel9.msdn.com/posts/matthijs/SharePoint-2010-Social-Computing-Overview/"&gt;&lt;strong&gt;SharePoint 2010 Social Computing Overview&lt;/strong&gt;&lt;/a&gt;, and it wa&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/119/image_thumb_1_0B01C09F_2_7EDAE11C.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:25px 0px 0px 25px;display:inline;border-top:0px;border-right:0px;" title="image_thumb_1_0B01C09F" border="0" alt="image_thumb_1_0B01C09F" align="right" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/119/image_thumb_1_0B01C09F_thumb_7EDAE11C.png" width="244" height="162"&gt;&lt;/a&gt;s done in true social style, with the help of &lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/mark"&gt;Mark&lt;/a&gt; and &lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/robin"&gt;Robin&lt;/a&gt;. We added an “Experimental” twist to the session because we wanted to demonstrate some of the SharePoint Social capabilities &lt;strong&gt;without&lt;/strong&gt; having to swap backward and forwards between users on a single screen. Instead we setup a server, and actually connected two laptops and two beamers/projectors. This way you could always see both sides of the interaction, nice for showing concurrent editing!&lt;/p&gt; &lt;p&gt;The cool bit is (and a big thanks to &lt;a rel="nofollow" target="_blank" href="http://blogs.microsoft.nl/blogs/mhoekstra/"&gt;Matthijs Hoekstra&lt;/a&gt;), that since it was recorded, I can leave you to decided if it actually worked. I think it was definitely worth trying out. &lt;/p&gt; &lt;p&gt;View the session: &lt;a rel="nofollow" title="http://channel9.msdn.com/posts/matthijs/SharePoint-2010-Social-Computing-Overview/" target="_blank" href="http://channel9.msdn.com/posts/matthijs/SharePoint-2010-Social-Computing-Overview/"&gt;http://channel9.msdn.com/posts/matthijs/SharePoint-2010-Social-Computing-Overview/&lt;/a&gt;&lt;br&gt;&lt;em&gt;P.S. I’m not sure what Marks obsession with the clock on the My Site was all about! &lt;/em&gt;&lt;/p&gt; &lt;p&gt;My second session was titled &lt;strong&gt;&lt;a rel="nofollow" target="_blank" href="http://channel9.msdn.com/posts/matthijs/Server-Free-Solutions-Sandboxed-and-Client-Only-Solutions-with-SharePoint-2010/"&gt;Server Free Solutions: Sandboxed and Client-Only Solutions&lt;/a&gt;&lt;/strong&gt; with SharePoint 2010. This session wasn’t intended to be “Experimental” but actually turned out to be. I was struck with vindictive Demo-Gods, resulting in every presenters worst nightmare. My demo machine just wouldn’t project. &lt;/p&gt; &lt;p&gt;This is my fault, as it seems I needed to install some drivers on Windows 2008 to make it work, I just thought it would see it as an external monitor and “just work”. I thought that whole business operated at a lower level than display drivers. Anyway…..&lt;/p&gt; &lt;p&gt;We quickly tried to think of a solution, with Mark and I first trying to setup an ad-hoc wireless network, that way I could display his computer on the projector, and I could RDP from there into my server. This didn’t work, of course (!), because the network would drop out whenever we got the RDP session connected. Next we setup a physical network, which got us some of the way but not all of the way.&lt;/p&gt; &lt;p&gt;Anyway, a big thanks to everyone for bearing with me, I think that in all my years of presenting this was one of the worst situations in which I have found myself. So, if you would like to watch someone in a spot of bother, and see if I do manage to salvage something from the session, then check it out here: &lt;a rel="nofollow" title="http://channel9.msdn.com/posts/matthijs/Server-Free-Solutions-Sandboxed-and-Client-Only-Solutions-with-SharePoint-2010/" target="_blank" href="http://channel9.msdn.com/posts/matthijs/Server-Free-Solutions-Sandboxed-and-Client-Only-Solutions-with-SharePoint-2010/"&gt;http://channel9.msdn.com/posts/matthijs/Server-Free-Solutions-Sandboxed-and-Client-Only-Solutions-with-SharePoint-2010/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;This session includes a new “Twitter” like solution for small workgroups, taking advantage of the new Client ECMAScript API, we will be publishing this shortly. Its a follow-up to our previous &lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/ViewPost.aspx?ID=93"&gt;Twitter solution for SharePoint&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=uRZ7oJ9nz5k:IxKNnPy_uPg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=uRZ7oJ9nz5k:IxKNnPy_uPg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=uRZ7oJ9nz5k:IxKNnPy_uPg:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=uRZ7oJ9nz5k:IxKNnPy_uPg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=uRZ7oJ9nz5k:IxKNnPy_uPg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=uRZ7oJ9nz5k:IxKNnPy_uPg:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Daniel/archive/2010/02/09/sharepoint-connections-look-back.aspx</guid>
         <pubDate>Mon, 08 Feb 2010 20:48:41 -0800</pubDate>
      </item>
      <item>
         <title>Social Computing Overview and a short status update</title>
         <link>http://community.zevenseas.com/Blogs/Robin/archive/2010/02/02/social-computing-overview-and-a-short-status-update.aspx</link>
         <description>&lt;div class="ExternalClass8852CC7D7B81488297C077E230639BDE"&gt;&lt;p&gt;&lt;strong&gt;Social Computing Overview&lt;br&gt;&lt;/strong&gt;If you missed us at the SharePoint Connections in Amsterdam that was held on the 18th and 19th of January, here is a chance to see our experimental session about the new social computing features that are available in SharePoint 2010. &lt;br&gt;&lt;br&gt;So to answer the first question “why is it experimental?’, it is because we brought in a server, two laptops, an extra projector and a hub (something you should actually never do when presenting or doing a demo, especially with beta software ;)&lt;/p&gt; &lt;p&gt;First &lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/Blogs/daniel"&gt;Daniel&lt;/a&gt; talks about what Social Computing really is and what all the fuzz is about (which he does rather excellent if I say so myself :) &lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/118/image_4_0B01C09F.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/118/image_thumb_1_0B01C09F.png" width="240" height="158"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Then to start the demo.. Daniel writes a blog post and shows us how easy it is to Tag content in 2010.. &lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/118/image_6_0B01C09F.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/118/image_thumb_2_0B01C09F.png" width="240" height="145"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Next it’s demo time for &lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/Blogs/mark"&gt;Mark&lt;/a&gt; and me.. Mark is showing the new enhancements of the MySite which features the Network page (which shows all the activities you are following from your colleagues and tags) and the Profile page (and during the demo something funny happens with Mark’s laptop battery ;)).. &lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/118/image_8_0B01C09F.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/118/image_thumb_3_0B01C09F.png" width="240" height="158"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Then Mark fires up a OneNote book and saves that into his MySite and the ‘experimental’ is about to start, at that moment I join the session and open up Mark’s OneNote using the new Office WebApps to collaborate with each other real-time (with a 8sec delay..)&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/118/image_10_38EF1357.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/118/image_thumb_4_38EF1357.png" width="240" height="180"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Hope I got you excited to watch it and see us in action.. if so, then please go to &lt;a rel="nofollow" title="http://channel9.msdn.com/posts/matthijs/SharePoint-2010-Social-Computing-Overview/" target="_blank" href="http://channel9.msdn.com/posts/matthijs/SharePoint-2010-Social-Computing-Overview/"&gt;Channel 9&lt;/a&gt; and watch it! ;) Kudos to &lt;a rel="nofollow" target="_blank" href="http://blogs.microsoft.nl/blogs/mhoekstra"&gt;Matthijs Hoekstra&lt;/a&gt; (@mahoekst) from Microsoft for letting us do this experimental demo. Also a huge thanks to the guys responsible for the audio/video who did an excellent job getting all the stuff exactly right (I’d never expected our projector to be captured so good and nice like it did!)&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Status update&lt;br&gt;&lt;/strong&gt;So what about the status update you might wonder, well recently I finished a project and as of today I have no projects to do. So if you think you can use me on your project then please ping me at robin at zevenseas.com! &lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=wKbgDpxUw94:DdnULZaIT8A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=wKbgDpxUw94:DdnULZaIT8A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?i=wKbgDpxUw94:DdnULZaIT8A:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=wKbgDpxUw94:DdnULZaIT8A:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=wKbgDpxUw94:DdnULZaIT8A:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?i=wKbgDpxUw94:DdnULZaIT8A:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Robin/archive/2010/02/02/social-computing-overview-and-a-short-status-update.aspx</guid>
         <pubDate>Tue, 02 Feb 2010 04:45:04 -0800</pubDate>
      </item>
      <item>
         <title>Updated : FeatureBlocker</title>
         <link>http://community.zevenseas.com/Blogs/Robin/archive/2010/01/29/updated-featureblocker.aspx</link>
         <description>&lt;div class="ExternalClass0F52332F903042C8B6AC79E8A3A5F8DE"&gt;&lt;p&gt;Remember I published the FeatureBlocker tool a couple of months ago? If you don’t, here’s a short description in what the tool does:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Using the FeatureBlocker, you can prevent users from activating features within the SharePoint UI. There are three types of ‘prevent’ actions : block the ‘activate/deactivate’ button, hide the entire feature, redirect the user when clicking on the activate/deactivate button.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Check out &lt;a rel="nofollow" title="zevenseas Feature Blocker - Robin zevenseas SharePoint Blog" target="_blank" href="http://community.zevenseas.com/blogs/robin/archive/2009/01/21/feature-blocker.aspx"&gt;zevenseas Feature Blocker&lt;/a&gt; and &lt;a rel="nofollow" title="After writing the code to block only the publishing feature on the managefeature.aspx page" target="_blank" href="http://community.zevenseas.com/blogs/robin/archive/2009/01/13/want-to-prevent-users-from-activating-certain-features.aspx"&gt;Want to prevent users from activating certain features?&lt;/a&gt; about the history of the tool.. &lt;/p&gt; &lt;p&gt;So, what’s changed? Well.. by a popular demand (@UncleJohnsBand) I’ve added the option to ‘block’ features per feature-scope.. Next to that I’ve also cleaned up the UI from the Settings page, I moved the configuration of the ‘block’ type into a new page and the creation of a list where you can store the ‘requests’ of the features as well. Below is the screenshot of the configuration page:&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/117/image_2_62A7EF4A.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/117/image_thumb_62A7EF4A.png" width="644" height="307"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Let me know what you think of it and if you have additional requirements or feedback don’t hesitate to contact me ;)&lt;/p&gt; &lt;p&gt;Where can you find it? At &lt;a rel="nofollow" target="_blank" href="http://www.codeplex.com/zsfeatureblocker"&gt;http://www.codeplex.com/zsfeatureblocker&lt;/a&gt; !&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=fMB-OVentoE:ua3HE-BJNc4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=fMB-OVentoE:ua3HE-BJNc4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?i=fMB-OVentoE:ua3HE-BJNc4:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=fMB-OVentoE:ua3HE-BJNc4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=fMB-OVentoE:ua3HE-BJNc4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?i=fMB-OVentoE:ua3HE-BJNc4:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Robin/archive/2010/01/29/updated-featureblocker.aspx</guid>
         <pubDate>Fri, 29 Jan 2010 07:15:22 -0800</pubDate>
      </item>
      <item>
         <title>Where is the Save button?</title>
         <link>http://community.zevenseas.com/Blogs/Robin/archive/2010/01/26/where-is-the-save-button.aspx</link>
         <description>&lt;div class="ExternalClass0F681DB2FFA946528ACD4610CB7D39E6"&gt;&lt;p&gt;As we were prepping for the demo that we held at the SharePoint Connections conference in Amsterdam last week about “Social Computing Overview'”, one of the things that we wanted to demo was the online collaboration bit. &lt;br&gt;&lt;br&gt;At first, we wanted to show Word 2010 client and the Word 2010 WebApp and the interaction between those two. But, as it turned out, you have to save every time you want to ‘share’ your part of the document to the other person. Then, just for the fun of it, I took a look at OneNote and in particular the OneNote WebApp.. &lt;br&gt;&lt;br&gt;I wrote something down and, of course, I wanted to save my document. First I looked in the upper bar for the well known blue disk icon.. but there was none.. so .. I opened up the “backstage” view (by clicking on “File”) and there I saw the menu option “Where’s the Save Button?”.. now at this moment I was already laughing out loud! Somebody in the Office team must have a good sense of humor to include these kind of bit smart-ass menu options ;)&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/116/image_2_67518563.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/116/image_thumb_67518563.png" width="680" height="420"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;So what happens if you click on it? Well, then you’re confronted with this dialog:&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/116/image_4_67518563.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/116/image_thumb_1_67518563.png" width="393" height="147"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt; &lt;p&gt;It’s surprising in a way why only Word does not have this feature because PowerPoint and Excel WebApp’s also have this ‘automatic’ save functionality. I mean, I can understand why it’s not in Word but for consistency sake it would be good to have it in there by default or something.&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=Wk5EZFgVJb4:bRChDj_Ba0g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=Wk5EZFgVJb4:bRChDj_Ba0g:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?i=Wk5EZFgVJb4:bRChDj_Ba0g:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=Wk5EZFgVJb4:bRChDj_Ba0g:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=Wk5EZFgVJb4:bRChDj_Ba0g:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?i=Wk5EZFgVJb4:bRChDj_Ba0g:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Robin/archive/2010/01/26/where-is-the-save-button.aspx</guid>
         <pubDate>Tue, 26 Jan 2010 11:40:33 -0800</pubDate>
      </item>
      <item>
         <title>Do you live in India.. and do you love SharePoint?</title>
         <link>http://community.zevenseas.com/Blogs/Robin/archive/2010/01/20/do-you-live-in-india-and-do-you-love-sharepoint.aspx</link>
         <description>&lt;div class="ExternalClass1C1CC7F699524535830ABB73B77322B1"&gt;&lt;p&gt;Then wait no longer and contact us at &lt;a rel="nofollow" target="_blank" href="mailto:bestinindia@zevenseas.com"&gt;bestinindia@zevenseas.com&lt;/a&gt; and send us your resume! &lt;p&gt;But only do so if : &lt;ol&gt; &lt;li&gt;You have been working with SharePoint for more than 3 years. &lt;li&gt;You are a C-Sharper. &lt;li&gt;You are in Information Technology because you&lt;strong&gt; love it&lt;/strong&gt; and can &lt;strong&gt;prove it&lt;/strong&gt;! &lt;li&gt;You are a great communicator, and a team player.&lt;/li&gt; &lt;li&gt;If you think India (and the Netherlands) beat Australia at cricket! ;)&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Love to hear from you!&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=Q23rBmLUkB4:KXvSpUM7qdM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=Q23rBmLUkB4:KXvSpUM7qdM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?i=Q23rBmLUkB4:KXvSpUM7qdM:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=Q23rBmLUkB4:KXvSpUM7qdM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=Q23rBmLUkB4:KXvSpUM7qdM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?i=Q23rBmLUkB4:KXvSpUM7qdM:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Robin/archive/2010/01/20/do-you-live-in-india-and-do-you-love-sharepoint.aspx</guid>
         <pubDate>Wed, 20 Jan 2010 12:01:44 -0800</pubDate>
      </item>
      <item>
         <title>Are you the BEST SharePoint Developer in India?</title>
         <link>http://community.zevenseas.com/Blogs/Daniel/archive/2010/01/14/are-you-the-best-sharepoint-developer-in-india.aspx</link>
         <description>&lt;div class="ExternalClass0E5D5C9BCCCB4BA3AD2FFB230366F208"&gt;&lt;p&gt;Are you smart and get things done? Do you dream in SharePoint? Do you think there must be more to being a Software Engineer out there?&lt;/p&gt; &lt;p&gt;If so, then we are offering the opportunity to be part of a global team that thinks and works just like you. &lt;/p&gt; &lt;p&gt;It’s an environment where you will be challenged everyday, where you have the opportunity to work on exciting projects, on the latest technologies, and most importantly, where you will &lt;strong&gt;learn&lt;/strong&gt; and &lt;strong&gt;grow&lt;/strong&gt; with people you enjoy working with.&lt;/p&gt; &lt;p&gt;While enthusiasm is important to us, please only send your resume if:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;You have been working with SharePoint for more than 3 years.&lt;/li&gt; &lt;li&gt;You are a C-Sharper.&lt;/li&gt; &lt;li&gt;You are in Information Technology because you&lt;strong&gt; love it&lt;/strong&gt; and can &lt;strong&gt;prove it&lt;/strong&gt;!&lt;/li&gt; &lt;li&gt;You are a great communicator, and a team player.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;If this is you, then please send your resume to:&lt;br&gt;&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="mailto:bestinindia@zevenseas.com"&gt;bestinindia@zevenseas.com&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=yV7a9R3DZsM:IyASvLXgcRQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=yV7a9R3DZsM:IyASvLXgcRQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=yV7a9R3DZsM:IyASvLXgcRQ:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=yV7a9R3DZsM:IyASvLXgcRQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=yV7a9R3DZsM:IyASvLXgcRQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=yV7a9R3DZsM:IyASvLXgcRQ:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Daniel/archive/2010/01/14/are-you-the-best-sharepoint-developer-in-india.aspx</guid>
         <pubDate>Thu, 14 Jan 2010 14:35:52 -0800</pubDate>
      </item>
      <item>
         <title>Its Conference Season!</title>
         <link>http://community.zevenseas.com/Blogs/Daniel/archive/2010/01/12/its-conference-season.aspx</link>
         <description>&lt;div class="ExternalClassD330AFBE5939487F91DB5E46282E81C6"&gt;&lt;p&gt;Just wanted to let you know about a couple of upcoming conferences that I will be presenting at. The first one kicks off next week, in my home town of Amsterdam, &lt;a rel="nofollow" target="_blank" href="http://www.devconnections.com/shows/NED2010SP/default.asp?c=2&amp;amp;s=149"&gt;SharePoint Connections 2010&lt;/a&gt;. There is a great line-up of speaker and I’m looking forward to catching up with them. &lt;/p&gt; &lt;p&gt;I will be presenting two sessions, the first one solo, and the second one with an “experimental” demo setup by &lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/mark"&gt;Mark&lt;/a&gt; and &lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/robin"&gt;Robin&lt;/a&gt; (which should be fun!). &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;&lt;b&gt;MSC08: Server Free Solutions: Sandboxed and Client-Only Solutions with SharePoint &lt;/b&gt;&lt;br&gt;&lt;/em&gt;&lt;a rel="nofollow" target="_blank" href="http://www.devconnections.com/default.asp?c=2&amp;amp;s=149&amp;amp;i=2322"&gt;&lt;b&gt;&lt;em&gt;Daniel McPherson&lt;/em&gt;&lt;/b&gt;&lt;/a&gt;&lt;br&gt;&lt;em&gt;Want a customised SharePoint experience but not the custom code headaches? Have a hosted SharePoint environment but need a custom solution to meet a specific business requirement? This session will explore a variety of ways to create a customised SharePoint experience without touching your server.&lt;br&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;&lt;b&gt;MSC03: Social Computing Overview&lt;/b&gt;&lt;br&gt;&lt;/em&gt;&lt;a rel="nofollow" target="_blank" href="http://www.devconnections.com/default.asp?c=2&amp;amp;s=149&amp;amp;i=2322"&gt;&lt;b&gt;&lt;em&gt;Daniel McPherson&lt;/em&gt;&lt;/b&gt;&lt;/a&gt;&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://www.devconnections.com/default.asp?c=2&amp;amp;s=149&amp;amp;i=2349"&gt;&lt;b&gt;&lt;em&gt;Robin Meure&lt;/em&gt;&lt;/b&gt;&lt;/a&gt;&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://www.devconnections.com/default.asp?c=2&amp;amp;s=149&amp;amp;i=2350"&gt;&lt;b&gt;&lt;em&gt;Mark van Lunenburg&lt;/em&gt;&lt;/b&gt;&lt;/a&gt;&lt;br&gt;&lt;em&gt;In this session, you will learn all about the new social computing capabilities of SharePoint 2010. Social bookmarking, tagging and ranking, blogs and wikis and social search for people.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Next up is the &lt;a rel="nofollow" target="_blank" href="http://www.sharepointsaturday.org/emea/default.aspx"&gt;Live Online SharePoint Saturday EMEA&lt;/a&gt; event, its a FREE, virtual SharePoint event with presenters from 13+ countries, including 8 MVPs. Will be the first time I have presented “virtually”, so I’m looking forward to seeing how that goes. My topic is:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;Notes from the Field: &lt;/em&gt;&lt;/strong&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;Social Computing in the Enterprise, from 2007 to 2010&lt;/em&gt;&lt;/strong&gt; &lt;p&gt;&lt;em&gt;This session is all about sharing the experience gained in over 2 years spent developing large scale Social Computing solutions on SharePoint. &lt;br&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;This session will primarily look at the technical challenges, but also delve into the business benefits that Social Applications derive in the Enterprise.&lt;br&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;Finally, the session will close by looking at key Social functionality coming down the line with SharePoint 2010.&lt;/em&gt; &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt; &lt;p&gt;Hope to see you there, if so, be sure to say hello! &lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=3tKyC2U1_vM:uP9_4Xb416g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=3tKyC2U1_vM:uP9_4Xb416g:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=3tKyC2U1_vM:uP9_4Xb416g:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=3tKyC2U1_vM:uP9_4Xb416g:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=3tKyC2U1_vM:uP9_4Xb416g:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=3tKyC2U1_vM:uP9_4Xb416g:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Daniel/archive/2010/01/12/its-conference-season.aspx</guid>
         <pubDate>Mon, 11 Jan 2010 19:33:01 -0800</pubDate>
      </item>
      <item>
         <title>Current Navigation, SPNavigationNodes and the AreaNavigationSettings page</title>
         <link>http://community.zevenseas.com/Blogs/Robin/archive/2010/01/06/current-navigation-spnavigationnodes-and-the-areanavigationsettings-page.aspx</link>
         <description>&lt;div class="ExternalClass2008AAD1491242E2ADD1A36160F56D31"&gt;&lt;p&gt;I was at a customer recently where I had the request that the current navigation of a team site should have a particular ordering. In this ‘current’ navigation, the navigation consisted of links to lists on the specific site to links to sub sites of that site. I knew that in the AreaNavigationSettings.aspx page (see screenshot) you could define such a ordering just by moving links up and down and also check the checkbox to display subsites. So, I thought.. ha that’s easy! I’m just going to check what kind of code is behind that page.. use that et voila.. Robin is a happy man.. :)&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/114/image_2_323F5F17.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/114/image_thumb_323F5F17.png" width="242" height="199"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Boy.. was I wrong.. maybe it was my bad that I couldn’t really figure out what they are doing behind the scenes when I used Reflector to see how the code looked like but maybe it wasn’t ;) So instead of staring at the code and trying to make it work in my dev environment I turned to Google again and did some specific searches and then I came across my lifesaver &lt;a rel="nofollow" target="_blank" href="http://stsadm.blogspot.com"&gt;Gary Lapointe&lt;/a&gt; with this post : &lt;a rel="nofollow" target="_blank" href="http://stsadm.blogspot.com/2007/09/more-site-navigation-settings-commands.html"&gt;More Site Navigation Settings Commands&lt;/a&gt;. &lt;br&gt;&lt;br&gt;Apparently, there is no real way of ‘modifying’ the navigation by just moving nodes around and then save the collection if you want make use of the ability of displaying subsites by making use of the IncludeSubSitesInNavigation bool. The thing is that you will have to &lt;strong&gt;delete&lt;/strong&gt; the current nodes and recreate them, in the proper order, and save that back (please correct me if I’m wrong!).&lt;/p&gt; &lt;p&gt;To continue, I used his code and modified it a bit so I wouldn’t need to pass a xml document with Nodes but just a List&amp;lt;Nodes&amp;gt; to create my navigation. Next to that, I was only interested in modifying the Current Navigation and not the Global Navigation so I stripped that bit out.&lt;/p&gt; &lt;p&gt;Here’s the my custom NavigationNode class and the method to create the navigation:&lt;/p&gt; &lt;p&gt; &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:'Courier New', courier, monospace;direction:ltr;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt; &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt; 1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; NavigationNode&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt; 3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Title { get; set; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt; 4:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Url { get; set; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt; 5:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; NodeTypes NodeType { get; set; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt; 6:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; SPNavigationNodeCollection NavigationNodeCollection { get; set; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt; 7:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt; 8:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; NavigationNode(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; title, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; url, NodeTypes nodeType, SPNavigationNodeCollection collection)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt; 9:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum10"&gt; 10:&lt;/span&gt; Title = title;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum11"&gt; 11:&lt;/span&gt; Url = url;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum12"&gt; 12:&lt;/span&gt; NodeType = nodeType;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum13"&gt; 13:&lt;/span&gt; NavigationNodeCollection = collection;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum14"&gt; 14:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum15"&gt; 15:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:'Courier New', courier, monospace;direction:ltr;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
&lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt; 1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; CreateNavigation()&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt; 3:&lt;/span&gt; PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(CurrentWeb);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt; 4:&lt;/span&gt; List&amp;lt;NavigationNode&amp;gt; nodeCollection = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; List&amp;lt;NavigationNode&amp;gt;();&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt; 5:&lt;/span&gt; nodeCollection.Add(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; NavigationNode(&lt;span style="color:#006080;"&gt;"Home"&lt;/span&gt;, &lt;span style="color:#006080;"&gt;"Pages/Default.aspx"&lt;/span&gt;, NodeTypes.AuthoredLink, publishingWeb.CurrentNavigationNodes));&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt; 6:&lt;/span&gt; nodeCollection.Add(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; NavigationNode(&lt;span style="color:#006080;"&gt;"Discussions"&lt;/span&gt;, &lt;span style="color:#006080;"&gt;"Lists/Discussions/AllItems.aspx"&lt;/span&gt;, NodeTypes.AuthoredLink, publishingWeb.CurrentNavigationNodes));&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt; 7:&lt;/span&gt; nodeCollection.Add(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; NavigationNode(&lt;span style="color:#006080;"&gt;"Documents"&lt;/span&gt;, &lt;span style="color:#006080;"&gt;"Shared Documents/Forms/AllItems.aspx"&lt;/span&gt;, NodeTypes.AuthoredLink, publishingWeb.CurrentNavigationNodes));&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt; 8:&lt;/span&gt; nodeCollection.Add(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; NavigationNode(&lt;span style="color:#006080;"&gt;"Wiki"&lt;/span&gt;, CurrentWeb.ServerRelativeUrl + &lt;span style="color:#006080;"&gt;"/Wiki"&lt;/span&gt;, NodeTypes.Area, publishingWeb.CurrentNavigationNodes));&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt; 9:&lt;/span&gt; nodeCollection.Add(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; NavigationNode(&lt;span style="color:#006080;"&gt;"Calendar"&lt;/span&gt;, &lt;span style="color:#006080;"&gt;"Meetings/Lists/Kalender/calendar.aspx"&lt;/span&gt;, NodeTypes.AuthoredLinkToWeb, publishingWeb.CurrentNavigationNodes)); &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum10"&gt; 10:&lt;/span&gt; SetNavigation(CurrentWeb, nodeCollection, &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum11"&gt; 11:&lt;/span&gt; publishingWeb.Update();&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum12"&gt; 12:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;And then here is my, slightly, modified version of Gary’s awesome code :&lt;/p&gt;
&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:'Courier New', courier, monospace;direction:ltr;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
&lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt; 1:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// Original source is from Gary Lapointe, I've only done a modification so that it accepts a List with NavigationNodes instead of a XML file&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt; 2:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt; 3:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// Sets the navigation.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt; 4:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt; 5:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;param name="site"&amp;gt;The site.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt; 6:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;param name="web"&amp;gt;The web site.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt; 7:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;param name="nodeCollection"&amp;gt;A list containing all the nodes.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt; 8:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;param name="showSubSites"&amp;gt;if set to &amp;lt;c&amp;gt;true&amp;lt;/c&amp;gt; [show sub sites].&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt; 9:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;param name="showPages"&amp;gt;if set to &amp;lt;c&amp;gt;true&amp;lt;/c&amp;gt; [show pages].&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum10"&gt; 10:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;param name="deleteExistingGlobal"&amp;gt;if set to &amp;lt;c&amp;gt;true&amp;lt;/c&amp;gt; [delete existing global nodes].&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum11"&gt; 11:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;param name="deleteExistingCurrent"&amp;gt;if set to &amp;lt;c&amp;gt;true&amp;lt;/c&amp;gt; [delete existing current nodes].&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum12"&gt; 12:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; SetNavigation(SPWeb web, List&amp;lt;NavigationNode&amp;gt; nodeCollection, &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; showSubSites, &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; showPages, &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; deleteExistingGlobal, &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; deleteExistingCurrent)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum13"&gt; 13:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum14"&gt; 14:&lt;/span&gt; PublishingWeb pubweb = PublishingWeb.GetPublishingWeb(web);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum15"&gt; 15:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum16"&gt; 16:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// First need to set whether or not we show sub-sites and pages&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum17"&gt; 17:&lt;/span&gt; pubweb.IncludeSubSitesInNavigation = showSubSites;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum18"&gt; 18:&lt;/span&gt; pubweb.IncludePagesInNavigation = showPages;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum19"&gt; 19:&lt;/span&gt; pubweb.Update();&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum20"&gt; 20:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum21"&gt; 21:&lt;/span&gt; List&amp;lt;SPNavigationNode&amp;gt; existingGlobalNodes = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; List&amp;lt;SPNavigationNode&amp;gt;();&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum22"&gt; 22:&lt;/span&gt; List&amp;lt;SPNavigationNode&amp;gt; existingCurrentNodes = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; List&amp;lt;SPNavigationNode&amp;gt;();&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum23"&gt; 23:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// We can't delete the navigation items until we've added the new ones so store the existing &lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum24"&gt; 24:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// ones for later deletion (note that we don't have to store all of them - just the top level).&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum25"&gt; 25:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// I have no idea why this is the case - but when I tried to clear everything out first I got&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum26"&gt; 26:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// all kinds of funky errors that just made no sense to me - this works so....&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum27"&gt; 27:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (SPNavigationNode node &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; pubweb.GlobalNavigationNodes)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum28"&gt; 28:&lt;/span&gt; existingGlobalNodes.Add(node);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum29"&gt; 29:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (SPNavigationNode node &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; pubweb.CurrentNavigationNodes)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum30"&gt; 30:&lt;/span&gt; existingCurrentNodes.Add(node);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum31"&gt; 31:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum32"&gt; 32:&lt;/span&gt; List&amp;lt;NavigationNode&amp;gt; newCurrentNodes = nodeCollection;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum33"&gt; 33:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum34"&gt; 34:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (newCurrentNodes.Count &amp;gt; 0)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum35"&gt; 35:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum36"&gt; 36:&lt;/span&gt; pubweb.InheritCurrentNavigation = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum37"&gt; 37:&lt;/span&gt; pubweb.Update();&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum38"&gt; 38:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum39"&gt; 39:&lt;/span&gt; pubweb = PublishingWeb.GetPublishingWeb(web);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum40"&gt; 40:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum41"&gt; 41:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// If we've got global or current nodes in the xml then the intent is to reset those elements.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum42"&gt; 42:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// If we've also specified to delete any existing elements then we need to first hide all the&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum43"&gt; 43:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// sub-sites and pages (you can't delete them because they don't exist as a node). Note that&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum44"&gt; 44:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// we are only doing this if showSubSites is true - if it's false we don't see them so no point&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum45"&gt; 45:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// in hiding them. Any non-sub-site or non-page will be deleted after we've added the new nodes.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum46"&gt; 46:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (SPWeb tempWeb &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; pubweb.Web.Webs)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum47"&gt; 47:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum48"&gt; 48:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum49"&gt; 49:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum50"&gt; 50:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (newCurrentNodes.Count &amp;gt; 0 &amp;amp;&amp;amp; deleteExistingCurrent &amp;amp;&amp;amp; showSubSites)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum51"&gt; 51:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum52"&gt; 52:&lt;/span&gt; pubweb.ExcludeFromNavigation(&lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;, tempWeb.ID);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum53"&gt; 53:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum54"&gt; 54:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum55"&gt; 55:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;finally&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum56"&gt; 56:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum57"&gt; 57:&lt;/span&gt; tempWeb.Dispose();&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum58"&gt; 58:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum59"&gt; 59:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum60"&gt; 60:&lt;/span&gt; pubweb.Update();&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum61"&gt; 61:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum62"&gt; 62:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// Now we need to add all the current nodes (if any)&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum63"&gt; 63:&lt;/span&gt; AddNodes(pubweb, &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;, pubweb.CurrentNavigationNodes, newCurrentNodes);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum64"&gt; 64:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// Update the web as the above may have made modifications&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum65"&gt; 65:&lt;/span&gt; pubweb.Update();&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum66"&gt; 66:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum67"&gt; 67:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// Now delete all the previously existing current nodes.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum68"&gt; 68:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (newCurrentNodes.Count &amp;gt; 0 &amp;amp;&amp;amp; deleteExistingCurrent)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum69"&gt; 69:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum70"&gt; 70:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (SPNavigationNode node &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; existingCurrentNodes)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum71"&gt; 71:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum72"&gt; 72:&lt;/span&gt; node.Delete();&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum73"&gt; 73:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum74"&gt; 74:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum75"&gt; 75:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:'Courier New', courier, monospace;direction:ltr;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
&lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt; 1:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt; 2:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// Adds the nodes.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt; 3:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt; 4:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;param name="pubWeb"&amp;gt;The publishing web.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt; 5:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;param name="isGlobal"&amp;gt;if set to &amp;lt;c&amp;gt;true&amp;lt;/c&amp;gt; [is global].&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt; 6:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;param name="existingNodes"&amp;gt;The existing nodes.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt; 7:&lt;/span&gt; &lt;span style="color:#008000;"&gt;/// &amp;lt;param name="newNodes"&amp;gt;The new nodes.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt; 8:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; AddNodes(PublishingWeb pubWeb, &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; isGlobal, SPNavigationNodeCollection existingNodes, List&amp;lt;NavigationNode&amp;gt; newNodes)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt; 9:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum10"&gt; 10:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (newNodes.Count == 0)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum11"&gt; 11:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum12"&gt; 12:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum13"&gt; 13:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; newNodes.Count; i++)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum14"&gt; 14:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum15"&gt; 15:&lt;/span&gt; NavigationNode newNodeXml = (NavigationNode)newNodes[i];&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum16"&gt; 16:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; url = newNodeXml.Url;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum17"&gt; 17:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; title = newNodeXml.Title;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum18"&gt; 18:&lt;/span&gt; NodeTypes type = newNodeXml.NodeType;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum19"&gt; 19:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum20"&gt; 20:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; isVisible = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum21"&gt; 21:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum22"&gt; 22:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (type == NodeTypes.Area)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum23"&gt; 23:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum24"&gt; 24:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// You can't just add an "Area" node (which represents a sub-site) to the current web if the&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum25"&gt; 25:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// url does not correspond with an actual sub-site (the code will appear to work but you won't&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum26"&gt; 26:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// see anything when you load the page). So we need to check and see if the node actually&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum27"&gt; 27:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// points to a sub-site - if it does not then change it to "AuthoredLinkToWeb".&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum28"&gt; 28:&lt;/span&gt; SPWeb web = &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum29"&gt; 29:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum30"&gt; 30:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum31"&gt; 31:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; name = url.Trim(&lt;span style="color:#006080;"&gt;'/'&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum32"&gt; 32:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (name.Length != 0 &amp;amp;&amp;amp; name.IndexOf(&lt;span style="color:#006080;"&gt;"/"&lt;/span&gt;) &amp;gt; 0)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum33"&gt; 33:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum34"&gt; 34:&lt;/span&gt; name = name.Substring(name.LastIndexOf(&lt;span style="color:#006080;"&gt;'/'&lt;/span&gt;) + 1);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum35"&gt; 35:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum36"&gt; 36:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum37"&gt; 37:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum38"&gt; 38:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// pubWeb.Web.Webs[] does not return null if the item doesn't exist - it simply throws an exception (I hate that!)&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum39"&gt; 39:&lt;/span&gt; web = pubWeb.Web.Webs[name];&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum40"&gt; 40:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum41"&gt; 41:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt; (ArgumentException)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum42"&gt; 42:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum43"&gt; 43:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum44"&gt; 44:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (web == &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt; || !web.Exists || web.ServerRelativeUrl.ToLower() != url.ToLower())&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum45"&gt; 45:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum46"&gt; 46:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// The url doesn't correspond with a sub-site for the current web so change the node type.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum47"&gt; 47:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// This is most likely due to copying navigation elements from another site&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum48"&gt; 48:&lt;/span&gt; type = NodeTypes.AuthoredLinkToWeb;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum49"&gt; 49:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum50"&gt; 50:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (web.Exists &amp;amp;&amp;amp; web.ServerRelativeUrl.ToLower() == url.ToLower())&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum51"&gt; 51:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum52"&gt; 52:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// We did find a matching sub-site so now we need to set the visibility&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum53"&gt; 53:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (isVisible)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum54"&gt; 54:&lt;/span&gt; pubWeb.IncludeInNavigation(isGlobal, web.ID);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum55"&gt; 55:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum56"&gt; 56:&lt;/span&gt; pubWeb.ExcludeFromNavigation(isGlobal, web.ID);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum57"&gt; 57:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum58"&gt; 58:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum59"&gt; 59:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;finally&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum60"&gt; 60:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum61"&gt; 61:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (web != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum62"&gt; 62:&lt;/span&gt; web.Dispose();&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum63"&gt; 63:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum64"&gt; 64:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum65"&gt; 65:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum66"&gt; 66:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (type == NodeTypes.Page)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum67"&gt; 67:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum68"&gt; 68:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// Adding links to pages has the same limitation as sub-sites (Area nodes) so we need to make&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum69"&gt; 69:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// sure it actually exists and if it doesn't then change the node type.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum70"&gt; 70:&lt;/span&gt; PublishingPage page = &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum71"&gt; 71:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum72"&gt; 72:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum73"&gt; 73:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// Note that GetPublishingPages()[] does not return null if the item doesn't exist - it simply throws an exception (I hate that!)&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum74"&gt; 74:&lt;/span&gt; page = pubWeb.GetPublishingPages()[url];&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum75"&gt; 75:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum76"&gt; 76:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt; (ArgumentException)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum77"&gt; 77:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum78"&gt; 78:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum79"&gt; 79:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (page == &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum80"&gt; 80:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum81"&gt; 81:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// The url doesn't correspond with a page for the current web so change the node type.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum82"&gt; 82:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// This is most likely due to copying navigation elements from another site&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum83"&gt; 83:&lt;/span&gt; type = NodeTypes.AuthoredLinkToPage;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum84"&gt; 84:&lt;/span&gt; url = pubWeb.Web.Site.MakeFullUrl(url);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum85"&gt; 85:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum86"&gt; 86:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum87"&gt; 87:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum88"&gt; 88:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// We did find a matching page so now we need to set the visibility&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum89"&gt; 89:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (isVisible)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum90"&gt; 90:&lt;/span&gt; pubWeb.IncludeInNavigation(isGlobal, page.ListItem.UniqueId);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum91"&gt; 91:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum92"&gt; 92:&lt;/span&gt; pubWeb.ExcludeFromNavigation(isGlobal, page.ListItem.UniqueId);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum93"&gt; 93:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum94"&gt; 94:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum95"&gt; 95:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum96"&gt; 96:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// If it's not a sub-site or a page that's part of the current web and it's set to&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum97"&gt; 97:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// not be visible then just move on to the next (there is no visibility setting for&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum98"&gt; 98:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// nodes that are not of type Area or Page).&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum99"&gt; 99:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (!isVisible &amp;amp;&amp;amp; type != NodeTypes.Area &amp;amp;&amp;amp; type != NodeTypes.Page)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum100"&gt; 100:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;continue&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum101"&gt; 101:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum102"&gt; 102:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// Finally, can add the node to the collection.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum103"&gt; 103:&lt;/span&gt; SPNavigationNode node = SPNavigationSiteMapNode.CreateSPNavigationNode(&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum104"&gt; 104:&lt;/span&gt; title, url, type, existingNodes);&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum105"&gt; 105:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum106"&gt; 106:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum107"&gt; 107:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// Now we need to set all the other properties&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum108"&gt; 108:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum109"&gt; 109:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// If we didn't have a CreatedDate or LastModifiedDate then set them to now.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum110"&gt; 110:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (node.Properties[&lt;span style="color:#006080;"&gt;"CreatedDate"&lt;/span&gt;] == &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum111"&gt; 111:&lt;/span&gt; node.Properties[&lt;span style="color:#006080;"&gt;"CreatedDate"&lt;/span&gt;] = DateTime.Now;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum112"&gt; 112:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (node.Properties[&lt;span style="color:#006080;"&gt;"LastModifiedDate"&lt;/span&gt;] == &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum113"&gt; 113:&lt;/span&gt; node.Properties[&lt;span style="color:#006080;"&gt;"LastModifiedDate"&lt;/span&gt;] = DateTime.Now;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum114"&gt; 114:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum115"&gt; 115:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// Save our changes to the node.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum116"&gt; 116:&lt;/span&gt; node.Update();&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum117"&gt; 117:&lt;/span&gt; node.MoveToLast(existingNodes); &lt;span style="color:#008000;"&gt;// Should already be at the end but I prefer to make sure :)&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum118"&gt; 118:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum119"&gt; 119:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum120"&gt; 120:&lt;/span&gt; &lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum121"&gt; 121:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'Courier New', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum122"&gt; 122:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;br&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Setting up navigation while provisioning the site in code can be hard. Unfortunately it’s not that easy as the AreaNavigationSettings page (in the screenshot) makes you believe it is.&lt;/p&gt;
&lt;p&gt;Took me quite a while to get it working but thanks to guys like &lt;a rel="nofollow" target="_blank" href="http://stsadm.blogspot.com"&gt;Gary&lt;/a&gt; I’ve managed it..If you read his comments in the code you can see it was quite the challenge to get this thing right. So thanks again mate! :)&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=zzj_eE_Cmis:YGKKPx2laRo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=zzj_eE_Cmis:YGKKPx2laRo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?i=zzj_eE_Cmis:YGKKPx2laRo:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=zzj_eE_Cmis:YGKKPx2laRo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=zzj_eE_Cmis:YGKKPx2laRo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?i=zzj_eE_Cmis:YGKKPx2laRo:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Robin/archive/2010/01/06/current-navigation-spnavigationnodes-and-the-areanavigationsettings-page.aspx</guid>
         <pubDate>Wed, 06 Jan 2010 03:41:51 -0800</pubDate>
      </item>
      <item>
         <title>Introducing - Smart SharePoint Solutions and the Financial Suite</title>
         <link>http://community.zevenseas.com/Blogs/Hans/archive/2009/12/29/introducing-smart-sharepoint-solutions-and-the-financial-suite.aspx</link>
         <description>&lt;div class="ExternalClass7F84378592354A45985D750B10D41DEB"&gt;&lt;p&gt;&lt;img alt="Selling point 4" src="http://www.smartsharepointsolutions.nl/media/3955/financialsuite__500x90.jpg" width="322" height="58"&gt;&lt;/p&gt;&lt;p&gt;A few months ago we teamed up with Smart SharePoint Solutions to put their financial SharePoint solutions in ProduShare.com.&lt;/p&gt; &lt;p&gt;Smart SharePoint Solutions is a new company with a new product, called Financial suite © Their product replaces a traditional way of working in Planning and Control departments by a new way of working with SharePoint.&lt;br&gt;&lt;/p&gt; &lt;p&gt;It is vital for this product that it is managed by the site administrator in the Planning and Control department. For that reason Smart SharePoint Solutions has made the strategic choice to distribute their products via the one click install method of ProduShare. This way of distribution supports one of the goals of Smart SharePoint Solutions: Bring SharePoint to the user, without the need for intensive ICT support &lt;br&gt; &lt;br&gt;The users now can add value to their processes, when they discover the strength of SharePoint as a datamangement, collaboration and communication tool.&lt;br&gt; &lt;br&gt;Andre Salomons of SSS says "We have looked for a web shop that enables and supports achieving our goal. In ProduShare.com we have found a solution that matches our philosophy to make SharePoint solutions easier to install and use."&lt;br&gt; &lt;br&gt;Visit their website at: &lt;a rel="nofollow" target="_blank" href="http://www.SmartSharepointSolutions.com"&gt;www.SmartSharepointSolutions.com&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=gglh_FWc2Bw:4xErosXxZfk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=gglh_FWc2Bw:4xErosXxZfk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=gglh_FWc2Bw:4xErosXxZfk:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=gglh_FWc2Bw:4xErosXxZfk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=gglh_FWc2Bw:4xErosXxZfk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=gglh_FWc2Bw:4xErosXxZfk:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Hans/archive/2009/12/29/introducing-smart-sharepoint-solutions-and-the-financial-suite.aspx</guid>
         <pubDate>Tue, 29 Dec 2009 05:27:28 -0800</pubDate>
      </item>
      <item>
         <title>Assembly Free Twitter Solution Improved</title>
         <link>http://community.zevenseas.com/Blogs/Daniel/archive/2009/12/18/assembly-free-twitter-solution-improved.aspx</link>
         <description>&lt;div class="ExternalClassE68044C7191749A0856B921EC63909FD"&gt;&lt;p&gt;I received an email last week from Tulasi Talakola (Twitter: talakola2009) which included a new version of our &lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/ViewPost.aspx?ID=95"&gt;assembly-free Team Status&lt;/a&gt; (“Twitter”) template for SharePoint. &lt;/p&gt; &lt;p&gt;The new functionality provides for the ability to “Follow” only a subset of users within the site. We agreed that I could post it here, and I really like having others take our solutions and make them even better. &lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://www.zevenseas.com/go.aspx?TeamStatusFollowers=DOWNLOAD"&gt;DOWNLOAD&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Thanks Tulasi!&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=98DWJzjkMPM:7pfimgjJ4ug:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=98DWJzjkMPM:7pfimgjJ4ug:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=98DWJzjkMPM:7pfimgjJ4ug:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=98DWJzjkMPM:7pfimgjJ4ug:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=98DWJzjkMPM:7pfimgjJ4ug:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=98DWJzjkMPM:7pfimgjJ4ug:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Daniel/archive/2009/12/18/assembly-free-twitter-solution-improved.aspx</guid>
         <pubDate>Thu, 17 Dec 2009 18:35:41 -0800</pubDate>
      </item>
      <item>
         <title>Changes at zevenseas as of 2010</title>
         <link>http://community.zevenseas.com/Blogs/Hans/archive/2009/12/14/changes-at-zevenseas-as-of-2010.aspx</link>
         <description>&lt;div class="ExternalClass4FE4823003F54E34BD0F199546879CFC"&gt;&lt;p&gt;Hi all. This post is a short message on some changes at zevenseas as of 2010. I have decided to leave the company. Before I go on I want to make clear that this is a pure personal decision and that it has nothing to do with how zevenseas is doing, the company is still going strong!&lt;/p&gt; &lt;p&gt;I’m not planning to explain exactly in detail what my reasons are (they say privacy is dead but I’m still happy to have some) in this post but basically business wise there are no real reasons to leave :-)&lt;/p&gt; &lt;p&gt;First I want to thank Daniel, Mark and Robin for the fantastic two years, it has been great with several big moments to remember. I can still remember the first meetings with Daniel and the quality discussions we had regarding SharePoint and how to run a SharePoint business. For sure that is something I will miss but probably we will have many other discussions in the future (iPhone vs Android, Flash vs non-flash, world problems, global warming etc.).&lt;/p&gt; &lt;p&gt;It must say this is probably one of the toughest moments in my career and personal life for several reasons. However, I don’t regret my decision till now.&lt;/p&gt; &lt;p&gt;I want to thank everyone I worked with the last two years for the great experience, it was a pleasure!&lt;/p&gt; &lt;p&gt;For now I want to wish everyone a Merry Christmas and a Happy New Year!&lt;/p&gt; &lt;p&gt;Regards,&lt;/p&gt; &lt;p&gt;Hans Blaauw&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=07i-Q0CfaxU:uvBIcr__hRw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=07i-Q0CfaxU:uvBIcr__hRw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=07i-Q0CfaxU:uvBIcr__hRw:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=07i-Q0CfaxU:uvBIcr__hRw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=07i-Q0CfaxU:uvBIcr__hRw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=07i-Q0CfaxU:uvBIcr__hRw:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Hans/archive/2009/12/14/changes-at-zevenseas-as-of-2010.aspx</guid>
         <pubDate>Mon, 14 Dec 2009 10:35:50 -0800</pubDate>
      </item>
      <item>
         <title>Announcing Discussion Central for SharePoint</title>
         <link>http://community.zevenseas.com/Blogs/Daniel/archive/2009/12/08/announcing-discussion-central-for-sharepoint.aspx</link>
         <description>&lt;div class="ExternalClass89B20D68D01D4256AF66BF03AFBC9E07"&gt;&lt;p&gt;We released &lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/daniel/archive/2009/07/28/employee-blogging-using-sharepoint-blog-central.aspx"&gt;Blog Central&lt;/a&gt; (&lt;a rel="nofollow" target="_blank" href="http://demo.zevenseas.com/default.aspx"&gt;Demo Site&lt;/a&gt;) a little over 4 months ago and it has always been our intention to grow it into a suite of products that perform two core functions:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Aggregate and summarise information from across your SharePoint farm.&lt;/li&gt; &lt;li&gt;Extend the out-of-the-box templates with small additional features that add a lot of value.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;I’m pleased to announce our first addition to the Central suite, our beta release of “Discussion Central” (&lt;a rel="nofollow" target="_blank" href="http://demo.zevenseas.com/sites/discussions/default.aspx"&gt;Demo Site&lt;/a&gt;).&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/115/image_14_23B32B24.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/115/image_thumb_6_23B32B24.png" width="625" height="505"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Discussion Central provides a “Jumping Off Point” into Discussions that are happening across your organisation. It does this by aggregating both the topics, and the replies, people are creating in Discussions Lists across your SharePoint farm. To be clear, this is cross Site Collection, cross Web Application aggregation. &lt;/p&gt; &lt;p&gt;Inspired by the Facebook news feed, we provide anyone accessing the portal with a quick summary of the most recent topics of discussions, and the most recent replies. It provides information on the number of views a discussion has received, and at a click, allows you to expand any topic.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/115/image_20_23B32B24.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/115/image_thumb_9_23B32B24.png" width="244" height="114"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/115/image_18_23B32B24.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/115/image_thumb_8_23B32B24.png" width="244" height="150"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;At this stage we have made a single extension to the standard Discussions List, adding the ability to enable View Tracking. This provides an easy way for people to see which discussions are proving the most popular.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/115/image_6_23B32B24.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/115/image_thumb_2_23B32B24.png" width="242" height="144"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/115/image_10_23B32B24.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/115/image_thumb_4_51A07DDC.png" width="476" height="190"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/115/image_8_51A07DDC.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/115/image_thumb_3_51A07DDC.png" width="478" height="133"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Anyway, a blog post can only take you so far, head over to our &lt;a rel="nofollow" target="_blank" href="http://demo.zevenseas.com/sites/discussions/default.aspx"&gt;Discussion Central Demonstration Site&lt;/a&gt; and have a look for yourself. If you are interested in learning more, drop me an email &lt;a rel="nofollow" target="_blank" href="mailto:daniel@zevenseas.com"&gt;daniel@zevenseas.com&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=xmjrPPHwzRs:CNw4at1UJPU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=xmjrPPHwzRs:CNw4at1UJPU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=xmjrPPHwzRs:CNw4at1UJPU:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=xmjrPPHwzRs:CNw4at1UJPU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=xmjrPPHwzRs:CNw4at1UJPU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=xmjrPPHwzRs:CNw4at1UJPU:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Daniel/archive/2009/12/08/announcing-discussion-central-for-sharepoint.aspx</guid>
         <pubDate>Mon, 07 Dec 2009 21:28:48 -0800</pubDate>
      </item>
      <item>
         <title>Using HTML Meta Tags to add Information to SharePoint Search</title>
         <link>http://community.zevenseas.com/Blogs/Daniel/archive/2009/12/07/using-html-meta-tags-to-add-information-to-sharepoint-search.aspx</link>
         <description>&lt;div class="ExternalClass659BB316914C411DB399410EE6E459DC"&gt;&lt;p&gt;This week &lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/robin"&gt;Robin&lt;/a&gt; was working away on a tool to make it easier for people to find Team Sites across their organisation. He was evaluating the use of SharePoint Search to do it, but found that many site properties, for example the template that Publishing Sites are based on is not marked as STS_Site, were not exposed in the index. &lt;/p&gt; &lt;p&gt;This reminded me of a very similar exploration I did a little while ago, and it reminded me that I didn’t blog about it and should have. So now I am.&lt;/p&gt; &lt;p&gt;As many of you know, SharePoint is very good at automatically finding metadata as it crawls content. It finds document properties, list columns, and much more. It collects these all together and adds them into the SSP as “Crawled Properties”. Once in this list, you can map them to a “Managed Property”, thereby making them available for use in search queries and results. &lt;/p&gt; &lt;p&gt;A little known fact is that SharePoint can also pick up properties from HTML pages via the “META” tag. For example, in the top of the home page on any SharePoint site you will see:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;META&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="CollaborationServer"&lt;/span&gt; &lt;span class="attr"&gt;Content&lt;/span&gt;&lt;span class="kwrd"&gt;="SharePoint Team Web Site"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;style&gt;
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode, .ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode pre
{font-size:small;color:black;font-family:consolas,;background-color:#ffffff;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode pre
{margin:0em;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .rem
{color:#008000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .kwrd
{color:#0000ff;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .str
{color:#006080;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .op
{color:#0000c0;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .preproc
{color:#cc6633;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .asp
{background-color:#ffff00;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .html
{color:#800000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .attr
{color:#ff0000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .alt
{background-color:#f4f4f4;width:100%;margin:0em;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .lnum
{color:#606060;}
&lt;/style&gt; &lt;p&gt;This value is detected by SharePoint and then added to the Crawled Properties here: &lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/114/image_2_7FDDFE82.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/114/image_thumb_7FDDFE82.png" width="440" height="157"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;This got me thinking. Wouldn’t this make it possible to create a small control that used the SharePoint OM to pull out the properties from the site and then expose them inside a META Tag. Once there would be picked up by the Indexer? The answer course was ‘Yes’. Even better, you could add this control onto any site using the “Delegate Control” capability. &lt;/p&gt;
&lt;p&gt;Here is the little base class I built:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/pre&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.IO;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web;&lt;/pre&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.HtmlControls;&lt;/pre&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint;&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; codezeven.Social.WebControls&lt;/pre&gt;&lt;pre class="alt"&gt;{&lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; MetaManager : Control&lt;/pre&gt;&lt;pre class="alt"&gt; {&lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; Dictionary&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt; metaData;&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;span class="kwrd"&gt;protected&lt;/span&gt; SPWeb currentWeb;&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre class="alt"&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; MetaPropPageType PageType&lt;/pre&gt;&lt;pre&gt; {&lt;/pre&gt;&lt;pre class="alt"&gt; get&lt;/pre&gt;&lt;pre&gt; {&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (IsDefaultPage())&lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;return&lt;/span&gt; MetaPropPageType.Default;&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;return&lt;/span&gt; MetaPropPageType.None;&lt;/pre&gt;&lt;pre class="alt"&gt; }&lt;/pre&gt;&lt;pre&gt; }&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; Dictionary&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt; MetaData&lt;/pre&gt;&lt;pre class="alt"&gt; {&lt;/pre&gt;&lt;pre&gt; get { &lt;span class="kwrd"&gt;return&lt;/span&gt; metaData; }&lt;/pre&gt;&lt;pre class="alt"&gt; set { metaData = &lt;span class="kwrd"&gt;value&lt;/span&gt;; }&lt;/pre&gt;&lt;pre&gt; }&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; OnInit(System.EventArgs e)&lt;/pre&gt;&lt;pre class="alt"&gt; {&lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.currentWeb = SPContext.Current.Web;&lt;/pre&gt;&lt;pre class="alt"&gt; metaData = &lt;span class="kwrd"&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt;();&lt;/pre&gt;&lt;pre&gt; }&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CreateChildControls()&lt;/pre&gt;&lt;pre class="alt"&gt; {&lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (KeyValuePair&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt; pair &lt;span class="kwrd"&gt;in&lt;/span&gt; metaData)&lt;/pre&gt;&lt;pre class="alt"&gt; {&lt;/pre&gt;&lt;pre&gt; HtmlMeta metaTag = &lt;span class="kwrd"&gt;new&lt;/span&gt; HtmlMeta();&lt;/pre&gt;&lt;pre class="alt"&gt; metaTag.Name = pair.Key.ToUpper();&lt;/pre&gt;&lt;pre&gt; metaTag.Content = pair.Value;&lt;/pre&gt;&lt;pre class="alt"&gt; Controls.Add(metaTag);&lt;/pre&gt;&lt;pre&gt; }&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;base&lt;/span&gt;.CreateChildControls();&lt;/pre&gt;&lt;pre class="alt"&gt; }&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre class="alt"&gt; &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; IsDefaultPage()&lt;/pre&gt;&lt;pre&gt; {&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; defaultPage = currentWeb.Url.TrimEnd(&lt;span class="str"&gt;'/'&lt;/span&gt;) + &lt;span class="str"&gt;"/default.aspx"&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; currentPage = HttpContext.Current.Request.Url.OriginalString;&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (!&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrEmpty(defaultPage) &amp;amp;&amp;amp; !&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrEmpty(currentPage))&lt;/pre&gt;&lt;pre class="alt"&gt; {&lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (currentPage.ToLower() == defaultPage.ToLower())&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt; }&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt; }&lt;/pre&gt;&lt;pre&gt; }&lt;/pre&gt;&lt;pre class="alt"&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;style&gt;
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode, .ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode pre
{font-size:small;color:black;font-family:consolas,;background-color:#ffffff;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode pre
{margin:0em;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .rem
{color:#008000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .kwrd
{color:#0000ff;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .str
{color:#006080;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .op
{color:#0000c0;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .preproc
{color:#cc6633;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .asp
{background-color:#ffff00;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .html
{color:#800000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .attr
{color:#ff0000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .alt
{background-color:#f4f4f4;width:100%;margin:0em;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .lnum
{color:#606060;}
&lt;/style&gt; &lt;style&gt;
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode, .ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode pre
{font-size:small;color:black;font-family:consolas,;background-color:#ffffff;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode pre
{margin:0em;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .rem
{color:#008000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .kwrd
{color:#0000ff;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .str
{color:#006080;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .op
{color:#0000c0;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .preproc
{color:#cc6633;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .asp
{background-color:#ffff00;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .html
{color:#800000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .attr
{color:#ff0000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .alt
{background-color:#f4f4f4;width:100%;margin:0em;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .lnum
{color:#606060;}
&lt;/style&gt; &lt;p&gt;&lt;br&gt;And the referenced Enum:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; codezeven.Social.WebControls
{ &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;enum&lt;/span&gt; MetaPropPageType { Default, None }
}&lt;/pre&gt;
&lt;style&gt;
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode, .ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode pre
{font-size:small;color:black;font-family:consolas,;background-color:#ffffff;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode pre
{margin:0em;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .rem
{color:#008000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .kwrd
{color:#0000ff;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .str
{color:#006080;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .op
{color:#0000c0;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .preproc
{color:#cc6633;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .asp
{background-color:#ffff00;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .html
{color:#800000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .attr
{color:#ff0000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .alt
{background-color:#f4f4f4;width:100%;margin:0em;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .lnum
{color:#606060;}
&lt;/style&gt; &lt;p&gt;From here you can just layer your own control on top, to output just the values you would like from SharePoint:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;/pre&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; codezeven.Social.WebControls;&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; codezeven.Social.WebControls&lt;/pre&gt;&lt;pre class="alt"&gt;{&lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; SiteMetaManager : MetaManager&lt;/pre&gt;&lt;pre class="alt"&gt; {&lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CreateChildControls()&lt;/pre&gt;&lt;pre class="alt"&gt; {&lt;/pre&gt;&lt;pre&gt; MetaData.Add(&lt;span class="str"&gt;"SharePointWebTitle"&lt;/span&gt;, currentWeb.Title);&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;switch&lt;/span&gt; (PageType)&lt;/pre&gt;&lt;pre class="alt"&gt; {&lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;case&lt;/span&gt; MetaPropPageType.Default:&lt;/pre&gt;&lt;pre class="alt"&gt; MetaData.Add(&lt;span class="str"&gt;"SharePointWebTemplate"&lt;/span&gt;, currentWeb.WebTemplate);&lt;/pre&gt;&lt;pre&gt; MetaData.Add(&lt;span class="str"&gt;"SharePointWebDescription"&lt;/span&gt;, currentWeb.Description);&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;case&lt;/span&gt; MetaPropPageType.None:&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;default&lt;/span&gt;:&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentOutOfRangeException();&lt;/pre&gt;&lt;pre&gt; }&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;/pre&gt;&lt;pre&gt; &lt;span class="kwrd"&gt;base&lt;/span&gt;.CreateChildControls();&lt;/pre&gt;&lt;pre class="alt"&gt; }&lt;/pre&gt;&lt;pre&gt; }&lt;/pre&gt;&lt;pre class="alt"&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;style&gt;
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode, .ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode pre
{font-size:small;color:black;font-family:consolas,;background-color:#ffffff;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode pre
{margin:0em;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .rem
{color:#008000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .kwrd
{color:#0000ff;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .str
{color:#006080;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .op
{color:#0000c0;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .preproc
{color:#cc6633;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .asp
{background-color:#ffff00;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .html
{color:#800000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .attr
{color:#ff0000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .alt
{background-color:#f4f4f4;width:100%;margin:0em;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .lnum
{color:#606060;}
&lt;/style&gt; &lt;p&gt; &lt;/p&gt;
&lt;p&gt;Then via a feature add it in as a Delegate control with something like this:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Control&lt;/span&gt; &lt;span class="attr"&gt;Id&lt;/span&gt;&lt;span class="kwrd"&gt;="AdditionalPageHead"&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="attr"&gt;Sequence&lt;/span&gt;&lt;span class="kwrd"&gt;="50"&lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="attr"&gt;ControlClass&lt;/span&gt;&lt;span class="kwrd"&gt;="codezeven.Social.WebControls.BlogMetaManager"&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="attr"&gt;ControlAssembly&lt;/span&gt;&lt;span class="kwrd"&gt;="codezeven.Social, Version=1.0.0.0, Culture=neutral,&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;PublicKeyToken=0fec8ae58e85e93e" &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;style&gt;
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode, .ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode pre
{font-size:small;color:black;font-family:consolas,;background-color:#ffffff;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode pre
{margin:0em;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .rem
{color:#008000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .kwrd
{color:#0000ff;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .str
{color:#006080;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .op
{color:#0000c0;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .preproc
{color:#cc6633;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .asp
{background-color:#ffff00;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .html
{color:#800000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .attr
{color:#ff0000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .alt
{background-color:#f4f4f4;width:100%;margin:0em;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .lnum
{color:#606060;}
&lt;/style&gt; &lt;p&gt; &lt;/p&gt;
&lt;p&gt;This will then produce something like the following in the top of each page (ok, so my demo data is not ideal! &amp;lt;grin&amp;gt;):&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;meta&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="SHAREPOINTWEBTITLE"&lt;/span&gt; &lt;span class="attr"&gt;content&lt;/span&gt;&lt;span class="kwrd"&gt;="Setup's Again"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;meta&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="SHAREPOINTWEBTEMPLATE"&lt;/span&gt; &lt;span class="attr"&gt;content&lt;/span&gt;&lt;span class="kwrd"&gt;="BLOG"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;meta&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="SHAREPOINTWEBDESCRIPTION"&lt;/span&gt; &lt;span class="attr"&gt;content&lt;/span&gt;&lt;span class="kwrd"&gt;="This is a really long description just to see if it comes across ok."&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;style&gt;
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode, .ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode pre
{font-size:small;color:black;font-family:consolas,;background-color:#ffffff;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode pre
{margin:0em;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .rem
{color:#008000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .kwrd
{color:#0000ff;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .str
{color:#006080;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .op
{color:#0000c0;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .preproc
{color:#cc6633;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .asp
{background-color:#ffff00;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .html
{color:#800000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .attr
{color:#ff0000;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .alt
{background-color:#f4f4f4;width:100%;margin:0em;}
.ExternalClass659BB316914C411DB399410EE6E459DC .csharpcode .lnum
{color:#606060;}
&lt;/style&gt; &lt;p&gt;&lt;br&gt;And after performing a Full Crawl, you will find the following new “Crawled Properties”:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/114/image_4_2DCB513B.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/114/image_thumb_1_2DCB513B.png" width="406" height="190"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;After mapping them to equivalent Managed Properties, and using our useful &lt;a rel="nofollow" target="_blank" href="http://www.codeplex.com/MOSSSearchCoder"&gt;SearchCoder&lt;/a&gt; tool, you can see the result here:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/114/image_6_2DCB513B.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/114/image_thumb_2_2DCB513B.png" width="475" height="106"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/114/image_8_2DCB513B.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/114/image_thumb_3_2DCB513B.png" width="477" height="246"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;There is a downside, these properties only change in the Index after a Full Crawl (or when the page changes, though never really bottomed that out as it lost its real benefit at that point). This was a deal breaker for me, but no problem for Robin. Anyway, that’s it, hope it helps!&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=hkWsi9Stxy0:4E8oQHeycXE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=hkWsi9Stxy0:4E8oQHeycXE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=hkWsi9Stxy0:4E8oQHeycXE:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=hkWsi9Stxy0:4E8oQHeycXE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=hkWsi9Stxy0:4E8oQHeycXE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=hkWsi9Stxy0:4E8oQHeycXE:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Daniel/archive/2009/12/07/using-html-meta-tags-to-add-information-to-sharepoint-search.aspx</guid>
         <pubDate>Mon, 07 Dec 2009 00:07:44 -0800</pubDate>
      </item>
      <item>
         <title>Discussions *BETA* Central</title>
         <link>http://community.zevenseas.com/Blogs/Robin/archive/2009/12/04/discussions-beta-central.aspx</link>
         <description>&lt;div class="ExternalClass4C88FA32D5EE41668385EC7675CE47AB"&gt;&lt;p&gt;Right! Next to the Blogs Central product (demo at &lt;a rel="nofollow" target="_blank" href="http://demo.zevenseas.com"&gt;http://demo.zevenseas.com&lt;/a&gt; btw), we now also have Discussion Central.. which is my little baby ;) &lt;/p&gt; &lt;p&gt;So, what does it do? The primary function of it is to aggregate discussions from discussion lists throughout all the WebApplications that are associated to the same SSP. And an example of such an aggregation looks like this:&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/113/discussionoverview_2_7610F212.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="discussionoverview" border="0" alt="discussionoverview" src="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/113/discussionoverview_thumb_7610F212.jpg" width="509" height="539"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;You may have noticed that it looks a lot like the Live Feed page from Facebook.. and yes.. you are correct! Facebook was my inspiration (quite literally :) &lt;/p&gt; &lt;p&gt;We also added the ViewTracking mechanism, this piece of functionality comes from Blog Central. By adding this type of functionality we can quickly see which discussions are viewed most and thus we can sort on that. Basically the same as any other Web2.0 aggregation page where you can sort on Most Replies/Most Viewed. &lt;/p&gt; &lt;p&gt;Another, more abstract, view of those discussions is the following :&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/113/discussionstyle2_2_7610F212.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="discussionstyle2" border="0" alt="discussionstyle2" src="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/113/discussionstyle2_thumb_7610F212.jpg" width="538" height="186"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;So.. let me know your thoughts on this one.. you can play with it yourself &lt;strong&gt;real &lt;/strong&gt;soon on &lt;a rel="nofollow" target="_blank" href="http://demo.zevenseas.com"&gt;http://demo.zevenseas.com&lt;/a&gt; :)&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=AL-MSUNCJIY:XGz0Q48dIaU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=AL-MSUNCJIY:XGz0Q48dIaU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?i=AL-MSUNCJIY:XGz0Q48dIaU:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=AL-MSUNCJIY:XGz0Q48dIaU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=AL-MSUNCJIY:XGz0Q48dIaU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?i=AL-MSUNCJIY:XGz0Q48dIaU:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Robin/archive/2009/12/04/discussions-beta-central.aspx</guid>
         <pubDate>Fri, 04 Dec 2009 07:38:39 -0800</pubDate>
      </item>
      <item>
         <title>How to connect your mobile device to Exchange (BPOS)</title>
         <link>http://community.zevenseas.com/Blogs/Hans/archive/2009/11/25/how-to-connect-your-mobile-device-to-exchange-bpos.aspx</link>
         <description>&lt;div class="ExternalClass16FB939442D6424D9CBF1C0BE9F36CFD"&gt;&lt;p&gt;I struggled a little to get the correct settings for my Android to connect to our BPOS Exchange, follow below links to get the details:&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://www.microsoft.com/online/help/en-us/helphowto/0932dcdb-fe09-4b47-8c94-440371124341.htm"&gt;&lt;font color="#800080"&gt;http://www.microsoft.com/online/help/en-us/helphowto/0932dcdb-fe09-4b47-8c94-440371124341.htm&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;And it works.&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=7Eo6-1DvPQo:5y8RHrj0UDw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=7Eo6-1DvPQo:5y8RHrj0UDw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=7Eo6-1DvPQo:5y8RHrj0UDw:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=7Eo6-1DvPQo:5y8RHrj0UDw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=7Eo6-1DvPQo:5y8RHrj0UDw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=7Eo6-1DvPQo:5y8RHrj0UDw:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Hans/archive/2009/11/25/how-to-connect-your-mobile-device-to-exchange-bpos.aspx</guid>
         <pubDate>Wed, 25 Nov 2009 05:07:30 -0800</pubDate>
      </item>
      <item>
         <title>IGNITE recap</title>
         <link>http://community.zevenseas.com/Blogs/Robin/archive/2009/11/06/ignite-recap.aspx</link>
         <description>&lt;div class="ExternalClassCF57AEDDFC534E43ABA383B1F5BB40FE"&gt;&lt;p&gt;After a pretty exhausting but very interesting week I can say that SharePoint 2010 will be very.. awesome.. (that was pretty much THE word of the week by a particular trainer and a few attendees (amongst them were SharePoint heroes like &lt;a rel="nofollow" target="_blank" href="http://www.zimmergren.net/default.aspx"&gt;Tobias Zimmergren&lt;/a&gt;, &lt;a rel="nofollow" target="_blank" href="http://blog.mastykarz.nl/"&gt;Waldek Mastykarz&lt;/a&gt;, &lt;a rel="nofollow" target="_blank" href="http://jopx.blogspot.com"&gt;Joris Poelmans (AKA JOPX)&lt;/a&gt;)) &lt;/p&gt; &lt;p&gt;After seeing a lot of sessions in Vegas at the SPC09, I thought that I had seen all the cool new things that are coming but this week showed a couple more. &lt;/p&gt; &lt;p&gt;One of the biggest new things for me was the removal of .stp files and instead of those, now we have .wsp’s that are called “WebTemplates”. Because they are .wsp’s, we can make use of the upgrade functionality. Meaning that in 2010 we have UPGRADEABLE webtemplates!! &lt;/p&gt; &lt;p&gt;Once more..&lt;/p&gt; &lt;h2&gt;in 2010 we have UPGRADEABLE webtemplates!!!&lt;/h2&gt; &lt;p&gt;To give you the bigger picture .. &lt;/p&gt; &lt;ol&gt; &lt;li&gt;User can click together the layout.. &lt;li&gt;User can save the site as template &lt;li&gt;Developer can import the WSP into VS &lt;li&gt;Developer can upload the WSP as a farm solution &lt;li&gt;Sites can be created based on that custom webtemplate &lt;ol&gt; &lt;li&gt;Developer modifies the webtemplate according to new business needs &lt;li&gt;Developer updated WSP &lt;li&gt;WSP get’s upgraded &lt;li&gt;Existing sites get updated using the Feature Update framework&lt;/li&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt; &lt;p&gt;(at least.. that’s the story ;))&lt;/p&gt; &lt;p&gt;Can’t believe they didn’t shout this one out as big as the ‘F5 experience’ for example. I mean.. businesses were (and are) waiting for many years to have this functionality available..&lt;/p&gt; &lt;p&gt;For now I just wanted to say.. &lt;strong&gt;thanks&lt;/strong&gt; Microsoft for making this possible, thanks &lt;a rel="nofollow" target="_blank" href="http://blogs.code-counsel.net/Wouter"&gt;Wouter van Vugt&lt;/a&gt;, &lt;a rel="nofollow" target="_blank" href="http://blogs.msdn.com/vesku"&gt;Vesa Juvonen&lt;/a&gt; and &lt;a rel="nofollow" target="_blank" href="http://blogs.msdn.com/toddca"&gt;Todd Carter&lt;/a&gt; for giving an awesome developer training and thanks &lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/Blogs/Daniel"&gt;Dan&lt;/a&gt; for giving me his seat ;)&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=LG9M4p5Epos:woLu6ST26Lo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=LG9M4p5Epos:woLu6ST26Lo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?i=LG9M4p5Epos:woLu6ST26Lo:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=LG9M4p5Epos:woLu6ST26Lo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_robin?a=LG9M4p5Epos:woLu6ST26Lo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_robin?i=LG9M4p5Epos:woLu6ST26Lo:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Robin/archive/2009/11/06/ignite-recap.aspx</guid>
         <pubDate>Fri, 06 Nov 2009 11:56:21 -0800</pubDate>
      </item>
      <item>
         <title>REST and ADO.NET services</title>
         <link>http://community.zevenseas.com/Blogs/Hans/archive/2009/11/03/rest-and-ado-net-services.aspx</link>
         <description>&lt;div class="ExternalClass5BE84BD505FC4D6C85BBDA37976531AA"&gt;&lt;p&gt;In Vegas during SPC09 I joined a session with &lt;a rel="nofollow" target="_blank" href="http://blogs.msdn.com/pablo/archive/2009/10/19/every-sharepoint-2010-server-is-a-data-services-server.aspx"&gt;&lt;strong&gt;Pablo Castro&lt;/strong&gt;&lt;/a&gt; on REST and I was very very impressed! Pablo showed some samples with CURL (sorry folks, CURL indeed) and it showed how easy it is to talk to the SharePoint data services. On his blog &lt;a rel="nofollow" target="_blank" href="http://blogs.msdn.com/pablo/archive/2009/10/19/every-sharepoint-2010-server-is-a-data-services-server.aspx"&gt;&lt;strong&gt;Pablo&lt;/strong&gt;&lt;/a&gt; says:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;The SharePoint Data Service head is not just a side integration deal, it's a full-on REST-over-HTTP head for SharePoint. It supports browsing as well as modifying data using regular HTTP verbs (GET, PUT, DELETE, etc.), it does ETags for concurrency control, enforces business logic as part of side-effecting methods, and it handles the full range of Data Services conventions for URLs, Atom and JSON payload formats, etc. It also exposes full metadata like any other Astoria service, allowing Visual Studio and any other metadata-driven client to give you a great experience on the client side. Now if you need to get or manipulate data in SharePoint from any platform in any language, all you need is an HTTP stack.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;This opens up a lot of possibilities even for PHP fans (I admit, I like unmanaged code and it is in my old set of skills). On the &lt;a rel="nofollow" target="_blank" href="http://blogs.msdn.com/phaniraj/archive/2009/09/08/using-the-php-toolkit-with-ado-net-data-services.aspx"&gt;&lt;strong&gt;MSDN blogs&lt;/strong&gt;&lt;/a&gt; there is a toolkit available to easy test out some REST and ADO.NET services. Till now it was almost impossible to talk to SharePoint with PHP because of the difficulties handling SOAP (you needed an external library) but that has been solved right now.&lt;/p&gt; &lt;p&gt;During his presentation I was also impressed with the binding of REST inside VS and that looked really great (not completely sure I got the whole picture).&lt;/p&gt; &lt;p&gt;The big question for the future is of course, when do you choose which interface/protocol? The SOAP services are still there and now we have REST too. And what about using the client OM, how does this all fit together?&lt;/p&gt; &lt;p&gt;Would be great to see some performance charts on all these different approaches in the future. My best bet is that REST will be used more and more, it is also very usable for calls from mobile devices (iPhone, WiMo and Android) and that opens up some possibilities for more vertical SharePoint apps on mobile devices (expenses, travel expenses etc.). &lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=9W3W3el-ANA:l5rOXG-_k5E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=9W3W3el-ANA:l5rOXG-_k5E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=9W3W3el-ANA:l5rOXG-_k5E:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=9W3W3el-ANA:l5rOXG-_k5E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=9W3W3el-ANA:l5rOXG-_k5E:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=9W3W3el-ANA:l5rOXG-_k5E:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Hans/archive/2009/11/03/rest-and-ado-net-services.aspx</guid>
         <pubDate>Tue, 03 Nov 2009 07:07:39 -0800</pubDate>
      </item>
      <item>
         <title>Two SharePoint guys that take web services really serious :-)</title>
         <link>http://community.zevenseas.com/Blogs/Hans/archive/2009/11/03/two-sharepoint-guys-that-take-web-services-really-serious-.aspx</link>
         <description>&lt;div class="ExternalClass6943DAD988F34DC0B4620EDCE57CC5C3"&gt;&lt;p&gt;There are two (probably a few more) guys in the SharePoint community that do interesting stuff with SP web services, &lt;a rel="nofollow" target="_blank" href="http://www.twitter.com/jvossers"&gt;@jvossers&lt;/a&gt; and &lt;a rel="nofollow" target="_blank" href="http://www.twitter.com/sympmarc"&gt;@sympmarc&lt;/a&gt;. They both work on Javascript solutions (JQuery) to make things happen inside a site(collection).&lt;/p&gt; &lt;p&gt;Jaap has released his &lt;a rel="nofollow" target="_blank" href="http://livelistdata.codeplex.com/"&gt;&lt;strong&gt;LiveListData&lt;/strong&gt;&lt;/a&gt; stuff and I think it is awesome. Very usable in solutions where you need to have a dashboard that shows the latest live data from updated lists, I actually think this could be something for TunnelPoint. Jaap showed it to me in Vegas and it worked very smooth.&lt;/p&gt; &lt;p&gt;Marc is focusing on a &lt;a rel="nofollow" target="_blank" href="http://mdasblog.wordpress.com/"&gt;&lt;strong&gt;jQuery library&lt;/strong&gt;&lt;/a&gt; for SharePoint Web Services and he tries to make it easier for (Javascript) developers to call the SP web services (correct me if I'm wrong Marc). &lt;/p&gt; &lt;p&gt;The solutions they provide make me think how we can use this stuff inside TunnelPoint and ProduShare, any thoughts?&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=mFPoVhfjcFM:Bw7cMYeo9Vc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=mFPoVhfjcFM:Bw7cMYeo9Vc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=mFPoVhfjcFM:Bw7cMYeo9Vc:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=mFPoVhfjcFM:Bw7cMYeo9Vc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=mFPoVhfjcFM:Bw7cMYeo9Vc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=mFPoVhfjcFM:Bw7cMYeo9Vc:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Hans/archive/2009/11/03/two-sharepoint-guys-that-take-web-services-really-serious-.aspx</guid>
         <pubDate>Tue, 03 Nov 2009 06:37:42 -0800</pubDate>
      </item>
      <item>
         <title>New lower pricing for BPOS (significant)</title>
         <link>http://community.zevenseas.com/Blogs/Hans/archive/2009/11/03/new-lower-pricing-for-bpos-significant.aspx</link>
         <description>&lt;div class="ExternalClassB05521CD60764DBDB079BD12134EB343"&gt;&lt;p&gt;Microsoft has lowered the per user price for BPOS to $10 a month (from $15). I also just saw that it can be purchased from 5 seats ongoing (thought the old model was 20 seats). The standard service also offers increased mailbox storage to 25 Gb.&lt;/p&gt; &lt;p&gt;Request a trial &lt;a rel="nofollow" target="_blank" href="https://mocp.microsoftonline.com/site/services/bpos/signup.aspx?offer=suite&amp;amp;quoteid=c9dde1bb-ebf4-419c-b243-b6919ce1bca6"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=IsRVUElN_00:f0PrNaCpeiA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=IsRVUElN_00:f0PrNaCpeiA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=IsRVUElN_00:f0PrNaCpeiA:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=IsRVUElN_00:f0PrNaCpeiA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=IsRVUElN_00:f0PrNaCpeiA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=IsRVUElN_00:f0PrNaCpeiA:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Hans/archive/2009/11/03/new-lower-pricing-for-bpos-significant.aspx</guid>
         <pubDate>Tue, 03 Nov 2009 06:11:30 -0800</pubDate>
      </item>
      <item>
         <title>The future of the web, where web sites become web services</title>
         <link>http://community.zevenseas.com/Blogs/Hans/archive/2009/11/03/the-future-of-the-web-where-web-sites-become-web-services.aspx</link>
         <description>&lt;div class="ExternalClassBDD1C3F362D3495D86B8E65D91FDF127"&gt;&lt;p&gt;&lt;strong&gt;SP2010&lt;/strong&gt; has been introduced and what we had in mind with &lt;a rel="nofollow" target="_blank" href="http://ww.tunnelpoint.com"&gt;&lt;strong&gt;TunnelPoint&lt;/strong&gt;&lt;/a&gt; will be easier with SP2010. When companies will move to the cloud with SP2010 more public SP sites will become data providers, I'm convinced. If you ever heard of Web 3.0 and the semantic web did you ever realize that there is a big move towards web services and the data they provide? &lt;/p&gt; &lt;p&gt;I’m a big believer of an Internet of Services, &lt;em&gt;where services are ubiquitous; an Internet of Things where in principle every physical object becomes an online addressable resource (see iPhone, persistent connection); a Mobile Internet where 24/7 seamless connectivity over multiple devices is the norm; and the need for semantics in order to meet the challenges presented by the dramatic increase in the scale of content and users.(source: Serviceweb 3.0 EU).&lt;/em&gt;&lt;/p&gt; &lt;p&gt;When talking about moving to the cloud the larger scope is always an Internet of Services IMO. Many companies are capable of producing very valuable information but not many companies are capable of producing very capable applications on desktops, mobiles or other devices. This is where the web services approach is at its best, companies approach developers to build applications around there data (I don’t believe in browsing on a device, sucks compared to native apps). &lt;/p&gt; &lt;p&gt;With the new capabilities of SP2010: client OM, REST, web services and storage of more items and data, a SharePoint portal becomes another online addressable resource. Some will say “oh Hans this will never happen because of security”, really? Start looking around and think about the new interfaces in SP2010, why does MS provide all this stuff? I think it has to do with the vision of Microsoft (see some old Bill G. essays), it really believes in an always connected world on different devices/products (desktop, mobile, tablet, surface, SharePoint). Sure, MS would like you to use al their software and devices :-) For me personally the interface is exchangeable, the data however, not!&lt;/p&gt; &lt;p&gt;The old perception is that closed data is a competitive advantage but the new reality is that open data is a competitive advantage (source: &lt;a rel="nofollow" target="_blank" href="http://www.readwriteweb.com/archives/web_30_when_web_sites_become_web_services.php"&gt;&lt;strong&gt;ReadWriteWeb&lt;/strong&gt;&lt;/a&gt;). Personally I'm already a big believer for many years but SharePoint did not really offer much in terms of an active web service community or .NET developers that are looking for integration of external services into SharePoint (or I completely missed it). That has nothing to do with skills but more with focus.&lt;/p&gt; &lt;p&gt;For me the one part of Web 3.0 is really gaining attention and that is web services. Did you ever think about the fact that the iPhone is the perfect example of the usage of web services? A lot of the popular apps. use web services behind the scenes. Things like: traffic information, trip planning, Google Maps, LBS etc. Connected “Things” start happening too, ever heard of a service called &lt;a rel="nofollow" target="_blank" href="http://www.pachube.com/"&gt;&lt;strong&gt;Pachube&lt;/strong&gt;&lt;/a&gt; or devices like the &lt;a rel="nofollow" target="_blank" href="http://www.chumby.com/"&gt;&lt;strong&gt;Chumby&lt;/strong&gt;&lt;/a&gt;?&lt;/p&gt; &lt;p&gt;If we look at Enterprises and public SharePoint URLs, more will open up the coming years. Actually, a lot are already open because all web services related to SharePoint are enabled. Take BPOS, all is enabled out of the box.&lt;/p&gt; &lt;p&gt;So how does &lt;a rel="nofollow" target="_blank" href="http://www.tunnelpoint.com"&gt;&lt;strong&gt;TunnelPoint&lt;/strong&gt;&lt;/a&gt; fit into this story Hans? Well, we are aiming to be the connection to and from SharePoint. We do the heavy lifting and we take care of the data transformation. In SP2010 we can do more and we can do it easier because of REST (seen it and it is awesome). It is our goal to work together with developers that are believers of this approach, you can build a TunnelPoint connector too! Right now we transform data to SharePoint but one day in the future we will be capable of doing it the other way around (for example to serve your list as a KML file). Sure, this could all be done by building server side code but we want to stick to the cloud offering without the need to touch your very valuable and business critical SharePoint infrastructure.&lt;/p&gt; &lt;p&gt;You can find a lot of information about the Future of The web and the European Union has kicked off a huge investment in Web 3.0. For more information see the &lt;a rel="nofollow" target="_blank" href="http://www.future-internet.eu/"&gt;&lt;strong&gt;site&lt;/strong&gt;&lt;/a&gt;. There is also a very interesting video &lt;a rel="nofollow" target="_blank" href="http://www.sti2.org/service-web-3-0-the-future-internet-medium"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Another initiative is the European web service finder over &lt;a rel="nofollow" target="_blank" href="http://demo.service-finder.eu/search"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/Blogs/Hans/_attach/image_2_2D6B0027.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/Blogs/Hans/_attach/image_thumb_2D6B0027.png" width="342" height="215"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=dbS3TDcLiIw:JeN6G_TeKeU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=dbS3TDcLiIw:JeN6G_TeKeU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=dbS3TDcLiIw:JeN6G_TeKeU:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=dbS3TDcLiIw:JeN6G_TeKeU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=dbS3TDcLiIw:JeN6G_TeKeU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=dbS3TDcLiIw:JeN6G_TeKeU:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Hans/archive/2009/11/03/the-future-of-the-web-where-web-sites-become-web-services.aspx</guid>
         <pubDate>Tue, 03 Nov 2009 04:59:34 -0800</pubDate>
      </item>
      <item>
         <title>SP 2010 public BETA alert</title>
         <link>http://community.zevenseas.com/Blogs/Hans/archive/2009/10/30/sp-2010-public-beta-alert.aspx</link>
         <description>&lt;div class="ExternalClass78A28D5DB94046BE82299550D0270201"&gt;&lt;p&gt;There is a special site to pre-register for the SP2010 public beta. Click &lt;a rel="nofollow" target="_blank" href="http://sharepoint2010.microsoft.com/try-it/Pages/Trial.aspx"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt; to visit it.&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=qboZ5SEovnE:veGS2-e2-SQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=qboZ5SEovnE:veGS2-e2-SQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=qboZ5SEovnE:veGS2-e2-SQ:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=qboZ5SEovnE:veGS2-e2-SQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=qboZ5SEovnE:veGS2-e2-SQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=qboZ5SEovnE:veGS2-e2-SQ:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Hans/archive/2009/10/30/sp-2010-public-beta-alert.aspx</guid>
         <pubDate>Fri, 30 Oct 2009 04:31:18 -0700</pubDate>
      </item>
      <item>
         <title>#spc09 Notes: Introduction to Service Applications</title>
         <link>http://community.zevenseas.com/Blogs/Daniel/archive/2009/10/20/spc09-notes-introduction-to-service-applications.aspx</link>
         <description>&lt;div class="ExternalClass69847D21E1664C6F8AB1EC59266B742A"&gt;&lt;p&gt;This is one in a series of notes I will be making while attending the SharePoint Conference in Vegas. These are not intended to be complete, polished, edited blog posts. Its simply the highlights, as I saw it, from the sessions I attended.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;New, flexible, extensible services architecture that can be used by developers&lt;/li&gt; &lt;li&gt;Overview&lt;/li&gt; &lt;ul&gt; &lt;li&gt;What is a Services Application? An Application Server Tier feature that performs the useful function of providing data or processing resources to SharePoint features.&lt;/li&gt; &lt;li&gt;Search is a good example of a Services Application&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Service Application&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Configured logical instance of a service&lt;/li&gt; &lt;li&gt;Provides data or computing resources&lt;/li&gt; &lt;li&gt;Comes with a Administration interface&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;How is a Service Application used&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Features, for example Web Parts use these application&lt;/li&gt; &lt;li&gt;You associate a web application with a service application&lt;/li&gt; &lt;li&gt;This is done via a proxy&lt;/li&gt; &lt;li&gt;Associations done by Admins, can be changed anytime&lt;/li&gt; &lt;li&gt;This a much like SSP’s, but this has been further simplified&lt;/li&gt; &lt;li&gt;Can be grouped for administrative reasons “Service Application Proxy Group”&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Service Workflow&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Brower –&amp;gt; Web Front End –&amp;gt; eg. Search Page –&amp;gt; (Software load balancer) –&amp;gt; Application Server –&amp;gt; returns&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;2007 versus 2010&lt;/li&gt; &lt;ul&gt; &lt;li&gt;SSP is where we were&lt;/li&gt; &lt;li&gt;The old services are still there BUT they are no longer grouped together in an SSP, they all operate independently&lt;/li&gt; &lt;li&gt;There are also a lot more services now, 20 or more.&lt;/li&gt; &lt;li&gt;The platform for building these services is now open&lt;/li&gt; &lt;li&gt;Services applications are supported in Foundation (WSS), though different SKU’s will come with different service applications&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Whats new? Framework&lt;/li&gt; &lt;ul&gt; &lt;li&gt;There is no more SSP administration site, Central admin and Powershell&lt;/li&gt; &lt;li&gt;Greater flexibility, Services can been assigned to Web Apps&lt;/li&gt; &lt;li&gt;Software Load Balancer and fail over (load balancer can be replaced by a third party load balancer)&lt;/li&gt; &lt;li&gt;Cross Farm support&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Share to anyone and consume from anywhere&lt;/li&gt; &lt;li&gt;WCF based communications&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;li&gt;Whats new? Security&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Everything is based on Claims based authentication&lt;/li&gt; &lt;li&gt;Intra server communications is based on WCF communications&lt;/li&gt; &lt;li&gt;Supports SSL&lt;/li&gt; &lt;li&gt;Each application uses its own database, and optionally own application pool&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Multi-Tennancy&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Application level security protects the information in one Service Application from another. So it adds an application security boundary within a database and within an application pool.&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Application Directory and Load Balance Service Application&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Responsible for sharing the list of available services to other applications&lt;/li&gt; &lt;li&gt;Discovery mechanism.&lt;/li&gt; &lt;li&gt;This is really seriously cool stuff. You can now effectively deploy farms that are dedicated to specific tasks. A search farm for example.&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;PowerShell is everywhere: “Can use PowerShell for pretty much everything”&lt;/li&gt; &lt;li&gt;By Default all service applications are associated with all web applications, associations are not direct but through a proxy. This can then be configured.&lt;/li&gt; &lt;li&gt;Farm Admins have access to all Service Application, but you can delegate permissions to a specific user for a specific service.&lt;/li&gt; &lt;li&gt;Building Service Applications (this is what I have been waiting for)&lt;/li&gt; &lt;ul&gt; &lt;li&gt;The OOB service applications have been built on the same API developers can use&lt;/li&gt; &lt;li&gt;You get:&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Multi-Server Support&lt;/li&gt; &lt;li&gt;Fault Tolerant Round Robin Load Balancing&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Timer Job Support&lt;/li&gt; &lt;li&gt;Even the Load Balancer is extensible, very cool&lt;/li&gt; &lt;li&gt;Settings can be stored in the configuration Database, and you can add your own databases and manage them through SharePoint (integrates then for example with Backup/Restore)&lt;/li&gt; &lt;li&gt;Can create your own Central Admin pages&lt;/li&gt; &lt;li&gt;Lots of controls that can be reused&lt;/li&gt; &lt;li&gt;Can create your own PowerShell Commandlets&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Sample Topologies&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Seems to me that there are many, many topologies&lt;/li&gt; &lt;li&gt;Flexibility of the model though should make it something you design specifically to suit&lt;/li&gt; &lt;li&gt;Services Farm. Seems to me that this makes a lot of sense.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=6Z9X4yGTF5U:ynSMkOURzXQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=6Z9X4yGTF5U:ynSMkOURzXQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=6Z9X4yGTF5U:ynSMkOURzXQ:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=6Z9X4yGTF5U:ynSMkOURzXQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=6Z9X4yGTF5U:ynSMkOURzXQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=6Z9X4yGTF5U:ynSMkOURzXQ:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Daniel/archive/2009/10/20/spc09-notes-introduction-to-service-applications.aspx</guid>
         <pubDate>Tue, 20 Oct 2009 02:20:09 -0700</pubDate>
      </item>
      <item>
         <title>#spc09 Notes: Sandboxed Solutions</title>
         <link>http://community.zevenseas.com/Blogs/Daniel/archive/2009/10/19/spc09-notes-sandboxed-solutions.aspx</link>
         <description>&lt;div class="ExternalClassB083F199628741A992827B1D733BD02F"&gt;&lt;p&gt;This is the first of a series of notes I will be making while attending the SharePoint Conference in Vegas. These are not intended to be complete, polished, edited blog posts. Its simply the highlights, as I saw it, from the sessions I attended.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Its all about balancing Security/Stability and Business Agility&lt;/li&gt; &lt;li&gt;Sandboxed solutions balance these two things out.&lt;/li&gt; &lt;li&gt;Sandboxed solutions should be the default approach to developing solutions on SharePoint. You build them this way UNTIL you hit a limitation you just cant get around.&lt;/li&gt; &lt;li&gt;Difficult to come up with a list that describe what you can do with Sandboxed Solutions:&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Content Types, Site Columns&lt;/li&gt; &lt;li&gt;Custom Action&lt;/li&gt; &lt;li&gt;Declarative Workflows&lt;/li&gt; &lt;li&gt;Event Receivers&lt;/li&gt; &lt;li&gt;Feature receivers&lt;/li&gt; &lt;li&gt;List Definitions, non-visual web parts&lt;/li&gt; &lt;li&gt;Site Pages&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;What is the Sandbox?&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Its a separate process where your solution runs&lt;/li&gt; &lt;li&gt;It works with a limited set of API, and have additional Code Access Security policies applied to it.&lt;/li&gt; &lt;li&gt;Solutions for the sandboxed are focused on the the Site Collection&lt;/li&gt; &lt;li&gt;All sandboxed solutions have detailed monitoring via the Central Administration&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Puts the power back into the hands of the IT Admin. &lt;/li&gt; &lt;li&gt;Separate process:&lt;/li&gt; &lt;ul&gt; &lt;li&gt;UserCodeService – Runs on each server in the farm which is allowed to host the sandboxed solutions.&lt;/li&gt; &lt;li&gt;Sandbox Worker Process – This is where the solution runs&lt;/li&gt; &lt;li&gt;Sandbox Worker Process Proxy - &lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Sandboxed solutions use a subset of Microsoft.Sharepoint&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Important: Missing Enterprise objects&lt;/li&gt; &lt;li&gt;I think there are some great solutions to be built, but this list did look quite limiting.&lt;/li&gt; &lt;li&gt;CAS Policy limits allow a solution assembly to load, use the SP OM. Cannot touch any external resources. &lt;/li&gt; &lt;ul&gt; &lt;li&gt;There is a Full Trust Proxy, this is possible but it is tightly controlled&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;li&gt;Solution Gallery&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Document Library for SharePoint Sandboxed Solutions&lt;/li&gt; &lt;li&gt;Empowers the Site Collection administrators to chose what solutions they need.&lt;/li&gt; &lt;li&gt;Resource quotas can lock down the amount of server resource a solution can use&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;The binaries are in 14&amp;#92;Usercode&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Web.Config in this folder includes the reference to the CAS Policy&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;To Visual Studio there is no difference between a Sandbox solution and a Farm solution. &lt;/li&gt; &lt;ul&gt; &lt;li&gt;The actual changes to the files is minimised, just an AssemblyInfo.cs change&lt;/li&gt; &lt;li&gt;“AllowPartiallyTrustedCallers” is set for Sandboxed Solutions&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Sandbox Architecture&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Execution manager, runs on the front end and brokers requests through to the “Back End” systems which are hosting the Host Services. Host Services spins up the required worker processes, which then use the WorkerProcess proxy, which then makes the real calls to the OM&lt;/li&gt; &lt;li&gt;Wonder what the overall performance impact is of this?&lt;/li&gt; &lt;li&gt;The worker processes can be shut down if they start to do bad things, isolating the disaster&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Code Access Security&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Cannot access any resources out of the Sandbox&lt;/li&gt; &lt;li&gt;Uses an API Blocklist, this means the Farm Administrator can further lock down the API’s that can be used. This does not mean you can change the basic subset, this limit will always be there.&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Full-Trust proxy is the way you break out to do more in your applications&lt;/li&gt; &lt;ul&gt; &lt;li&gt;It is a fully trusted piece of code you can call in your applications&lt;/li&gt; &lt;li&gt;Full Trust proxy does just a specific task, for example, read from ERP systems&lt;/li&gt; &lt;li&gt;Create a class that inherits from a SPProxyOperationsArgs (this just passes arguments) –&amp;gt; Goes in the GAC&lt;/li&gt; &lt;li&gt;Then another using SPProxyOperation, this does the job –&amp;gt; goes in the GAC.&lt;/li&gt; &lt;li&gt;From your sandboxed solution you then call it.&lt;/li&gt; &lt;li&gt;Once you have written these, then you need to register them with SharePoint&lt;/li&gt; &lt;li&gt;The idea here is to create a set of trusted API’s that can be leveraged by all SharePoint developers.&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Sandbox solution execution can be load balanced across the farm.&lt;/li&gt; &lt;ul&gt; &lt;li&gt;You can also setup a dedicated set of servers whose job is to run the sandboxed solutions&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Solution Validation&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Administrators can block solutions&lt;/li&gt; &lt;li&gt;Can create a “Solution Validation” object which then interrogates the solutions.&lt;/li&gt; &lt;li&gt;Very interesting, this is pretty sophisticated stuff.&lt;/li&gt; &lt;li&gt;Solution Validators inherit from SPSolutionValidator&lt;/li&gt; &lt;li&gt;Could check things like:&lt;/li&gt; &lt;ul&gt; &lt;li&gt;location of files&lt;/li&gt; &lt;li&gt;can validate based on many properties of the package, and everything in it.&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Deployed as a Farm Level solution&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Solution Monitoring&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Resource points can be used to manage the resources on the server. &lt;/li&gt; &lt;li&gt;If a solution uses too many resources, then it is stopped for the day&lt;/li&gt; &lt;li&gt;Helps to identify expensive solutions&lt;/li&gt; &lt;li&gt;There are 14 measures in all, they have different units of measurement of course, these are boiled down to the resource points&lt;/li&gt; &lt;li&gt;You set points across the various measurements&lt;/li&gt; &lt;li&gt;This is done per site collection&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=2zMVDfhS_kE:flZT5nq9IFA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=2zMVDfhS_kE:flZT5nq9IFA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=2zMVDfhS_kE:flZT5nq9IFA:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=2zMVDfhS_kE:flZT5nq9IFA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=2zMVDfhS_kE:flZT5nq9IFA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=2zMVDfhS_kE:flZT5nq9IFA:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Daniel/archive/2009/10/19/spc09-notes-sandboxed-solutions.aspx</guid>
         <pubDate>Mon, 19 Oct 2009 10:06:33 -0700</pubDate>
      </item>
      <item>
         <title>#SPC09 Notes: Visual Studio Development Overview</title>
         <link>http://community.zevenseas.com/Blogs/Daniel/archive/2009/10/19/spc09-notes-visual-studio-development-overview.aspx</link>
         <description>&lt;div class="ExternalClassF6C3A7ED038F48439F2B55D508620D02"&gt;&lt;p&gt;This is the first of a series of notes I will be making while attending the SharePoint Conference in Vegas. These are not intended to be complete, polished, edited blog posts. Its simply the highlights, as I saw it, from the sessions I attended.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Tools are designed to make development for SharePoint a LOT easier and a LOT more productive&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Supports Sandboxed and Farm solutions&lt;/li&gt; &lt;li&gt;Provides a number of Project and Item Templates&lt;/li&gt; &lt;li&gt;Provides a number of Visual Designers&lt;/li&gt; &lt;li&gt;Provides a number of Workflow improvements&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Templates&lt;/li&gt; &lt;ul&gt; &lt;li&gt;You are going to generally start with an empty project and then add the items you need as you need them&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Solution Types&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Farm Solutions = What we have today&lt;/li&gt; &lt;li&gt;Sandboxed Solutions = Site Solutions&lt;/li&gt; &lt;li&gt;This can be changed whenever you like&lt;/li&gt; &lt;li&gt;When creating the project you specify a debug site&lt;/li&gt; &lt;li&gt;Intellisense filtering stops you seeing things you can use when in Sandboxed mode. HOT&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Item Templates&lt;/li&gt; &lt;ul&gt; &lt;li&gt;These are not complete (wonder what is missing?)&lt;/li&gt; &lt;li&gt;Can use an empty template for those&lt;/li&gt; &lt;li&gt;Seems to include the most popular items&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;DEMO 1&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Showed a workflow&lt;/li&gt; &lt;li&gt;This does look nice in the demo, hard to note it&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Deployment&lt;/li&gt; &lt;ul&gt; &lt;li&gt;There is some logic in the deployment process which will detect any existing assets which might conflict with a new version. For example old web part files. This can be set to Automatic, or you can have it prompt you.&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Event receivers&lt;/li&gt; &lt;ul&gt; &lt;li&gt;There is a template for these&lt;/li&gt; &lt;li&gt;Wizard based creation, builds our the xml files for you&lt;/li&gt; &lt;li&gt;Certainly makes things a little qucker,&lt;/li&gt; &lt;li&gt;F5 to deploy when done. Nice&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;BDC Designer&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Looks sophisticated, and very graphical&lt;/li&gt; &lt;li&gt;You do not ever need to see the ADF XML file. Interesting.&lt;/li&gt; &lt;li&gt;Read/Write, full CRUD support&lt;/li&gt; &lt;li&gt;VS would be used over SPD because you cant write code in SPD&lt;/li&gt; &lt;li&gt;VS could support scenarios like pulling data into one list from multiple sources&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Development Continuum&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Slide that demonstrates that:&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Visio and SPD and important and export between them&lt;/li&gt; &lt;li&gt;SPD –&amp;gt; VS occurs via the WSP&lt;/li&gt; &lt;li&gt;You can save your Site as a WSP file&lt;/li&gt; &lt;li&gt;Great for Functional designers to be working with the Developers&lt;/li&gt; &lt;li&gt;Great for Mock-ups. HOT&lt;/li&gt; &lt;li&gt;This includes workflows&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Visio can be used to design the Workflows, but you need to get them into SPD to make them real workflows. From there they can go back and forth.&lt;/li&gt; &lt;li&gt;Once you send it to VS for coding, then you cannot go back again. &lt;/li&gt;&lt;/ul&gt; &lt;li&gt;DEMO&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Showing how a WSP can be imported&lt;/li&gt; &lt;li&gt;Created a SPD workflow in a site –&amp;gt; Saved it as a WSP.&lt;/li&gt; &lt;li&gt;Finds all the declarative artefacts for importing&lt;/li&gt; &lt;li&gt;This pulls in lots of stuff!&lt;/li&gt; &lt;li&gt;You can then pick and choose, so you are going to want to pull in only the custom bits, not all the standard content types and fields. &lt;/li&gt; &lt;li&gt;Identifies all your dependencies.&lt;/li&gt; &lt;li&gt;In the end the two custom lists that were created in the site that was saved to a WSP are transformed into new features. This could get seriously out of hand with Farm features, but I guess no big deal for Sandboxed solutions&lt;/li&gt; &lt;li&gt;Like the way this is going, think there is lots of potential here for increasing developer agility&lt;/li&gt; &lt;li&gt;You can actually set multiple startup projects! (I think with VS2008 even?)&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Project System&lt;/li&gt; &lt;ul&gt; &lt;li&gt;This has been completely revamped in VS 2010&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Server Explorer&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Has SharePoint connections&lt;/li&gt; &lt;li&gt;Supports connections to multiple site collections&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Feature Designer&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Graphical way to build a feature&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Add items that are available&lt;/li&gt; &lt;li&gt;Activation dependencies&lt;/li&gt; &lt;li&gt;Looks like this is how you can re-organise your projects&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;They have worked hard to ensure you dont have to get your hands dirty with XML.&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Package Designer&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Works in a similar way&lt;/li&gt; &lt;li&gt;Focused at the feature level&lt;/li&gt; &lt;li&gt;All drag and drop&lt;/li&gt; &lt;li&gt;Options for adding other assemblies&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Packaging Explorer&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Single view, tree view, of a single package&lt;/li&gt; &lt;li&gt;lets you drill into it&lt;/li&gt; &lt;li&gt;Each project in a solution gets one package&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Mapped Folders&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Provide a project folder where you can store images and layouts pages&lt;/li&gt; &lt;li&gt;Effectively this is just a nicer way to manage your images and layouts pages&lt;/li&gt; &lt;li&gt;Helps guide people down best practice for solution artefacts. HOT&lt;/li&gt; &lt;li&gt;DONT use 12 Hive use SharePointRoot instead.&lt;/li&gt; &lt;li&gt;Sandbox solutions dont have a filesystem of course.&lt;/li&gt; &lt;li&gt;You can create your own mapped folders, you get Images and Layouts by default.&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Creating your own SharePoint Items for VS Projects could be fun&lt;/li&gt; &lt;li&gt;You will have the ability to define exactly what happens when you perform a deployment, this is slick too.&lt;/li&gt; &lt;li&gt;Visual Studio is very extensible, if anything is missing, you can code it in yourself&lt;/li&gt; &lt;li&gt;Worked hard to make GUID managing much easier, they use replaceable tokens in lots of places.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=XcPyOa0Mq5E:S8MHyZyuLlw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=XcPyOa0Mq5E:S8MHyZyuLlw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=XcPyOa0Mq5E:S8MHyZyuLlw:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=XcPyOa0Mq5E:S8MHyZyuLlw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=XcPyOa0Mq5E:S8MHyZyuLlw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=XcPyOa0Mq5E:S8MHyZyuLlw:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Daniel/archive/2009/10/19/spc09-notes-visual-studio-development-overview.aspx</guid>
         <pubDate>Mon, 19 Oct 2009 08:24:54 -0700</pubDate>
      </item>
      <item>
         <title>#SPC 09 Notes: Developer Overview</title>
         <link>http://community.zevenseas.com/Blogs/Daniel/archive/2009/10/19/spc-09-developer-overview.aspx</link>
         <description>&lt;div class="ExternalClass1494EDF7C95C4315B38B891B24B17499"&gt;
&lt;p&gt;This is the first of a series of notes I will be making while attending the SharePoint Conference in Vegas. These are not intended to be complete, polished, edited blog posts. Its simply the highlights, as I saw it, from the sessions I attended.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Started with a review of the types of applications that are built on SharePoint.&lt;/li&gt;
&lt;li&gt;SharePoint 2010 can be install on Windows 7 or Vista SP1&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Both SharePoint Foundation Server (was WSS) or SharePoint 2010&lt;/li&gt;
&lt;li&gt;Still requires you to be running 64bit&lt;/li&gt;
&lt;li&gt;This is for development only, so single server, non-production, etc.&lt;/li&gt;
&lt;li&gt;There is an Install Guide in the SDK (Beta coming in November) this replaces the Prereqs installer that works on the Server OS’s&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;Visual Studio 2010 integration is the tightest integration ever.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Lots of “SharePoint Aware” designers (Web Parts for example)&lt;/li&gt;
&lt;li&gt;Package and Deploy&lt;/li&gt;
&lt;li&gt;Can view SharePoint site via the Server Explorer&lt;/li&gt;
&lt;li&gt;TFS integration&lt;/li&gt;
&lt;li&gt;Sandbox support, WSP Import (nice)&lt;/li&gt;
&lt;li&gt;BDC becomes BCD (Business Connectivity Services)&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;SharePoint Designer 2010&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Will remain free&lt;/li&gt;
&lt;li&gt;Looks to be seriously beefed up and also simplified. Seems to have removed or hidden many of the FrontPage functionality hangovers.&lt;/li&gt;
&lt;li&gt;Workflow Designer&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;Developer Dashboard&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Very hot&lt;/li&gt;
&lt;li&gt;Is turned on by demand, and provides real time feedback on the performance of your code.&lt;/li&gt;
&lt;li&gt;Beta 2 will require manual steps in order to activate it (STSADM/Powershell command)&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;DEMO 1&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Visual Studio –&amp;gt; Build a Web Part&lt;/li&gt;
&lt;li&gt;Farm Solution = To current approach to solution building&lt;/li&gt;
&lt;li&gt;Site Solution is the new Sandboxed stuff.&lt;/li&gt;
&lt;li&gt;Demo uses the VS Toolbox to graphically build a web part.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Uses a UserControl&lt;/li&gt;
&lt;li&gt;I think this is nice, interesting to see how much I will actually use this&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;LINQ for SharePoint (Was almost expecting an applause on this one!)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;SPMetal works like SQLMetal&lt;/li&gt;
&lt;li&gt;LINQ looks hot&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;F5 kicks off the browser with “Add Web Part Page” &lt;/li&gt;
&lt;li&gt;Web Part Page is going to be a depreciated, pretty much Wiki pages do it all now. (Wiki pages do have a Web Part Zone, but does not display it)&lt;/li&gt;
&lt;li&gt;Dashboard provides LOTS of detail&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;Platform Services&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;BCS is the new name for Business Data Catalog&lt;/li&gt;
&lt;li&gt;Read/Write access to data&lt;/li&gt;
&lt;li&gt;Comes with SharePoint Foundation now, NICE.&lt;/li&gt;
&lt;li&gt;Office clients can then take the data offline (wonder how conflicts are managed)&lt;/li&gt;
&lt;li&gt;SQL, Web Services&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;DEMO 2&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Connecting the BCS to a Web Service&lt;/li&gt;
&lt;li&gt;SharePoint Designer is the primary place to do this, can also do it in Visual Studio&lt;/li&gt;
&lt;li&gt;With VS you can connect it through to a .NET type&lt;/li&gt;
&lt;li&gt;Generate the CRUD operations for you&lt;/li&gt;
&lt;li&gt;Explorer that helps you define these objects, and then you can write any custom mechanisms for performing the CRUD operations&lt;/li&gt;
&lt;li&gt;IISRESETS will not be going away (not that I was expecting it)&lt;/li&gt;
&lt;li&gt;Connect it through to lists using “External Content Types”&lt;/li&gt;
&lt;li&gt;the result is that the external data looks exactly like a list.&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;SharePoint List Improvements (most interesting to me)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Can create relationships between lists, with cascades…(WOW)&lt;/li&gt;
&lt;li&gt;This is piggy backing on SQL functionality&lt;/li&gt;
&lt;li&gt;Validation support, Excel like formulas&lt;/li&gt;
&lt;li&gt;Lookup to multiple columns, nice&lt;/li&gt;
&lt;li&gt;Automatically create indexes where they make sense (for example on lookups)&lt;/li&gt;
&lt;li&gt;Demonstrated a 220,000 item lists, (dont be afraid of large lists)…hmmmm I’m not sure this is really as big a deal as it is. Querying the data is still the important bit. Throttling will block queries that are made for large numbers of items (configurable)&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;XSLT for Views&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Bit of CAML bashing, its not really that bad.&lt;/li&gt;
&lt;li&gt;CAML does not go away, but views will now be done with XSLT&lt;/li&gt;
&lt;li&gt;CAML mostly used for Queries (wonder where the LINQ/CAML overlap is)&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;DEMO 3&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;List definition obviously become more complex now, wonder how your average SharePoint user will feel about that.&lt;/li&gt;
&lt;li&gt;Demonstrates the cascading functionality&lt;/li&gt;
&lt;li&gt;Column validation looks hot, got an applause&lt;/li&gt;
&lt;li&gt;Lists will indeed become much better for creating applications&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;Accessing Data in Lists&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Lots of new options&lt;/li&gt;
&lt;li&gt;Server OM (as we have now)&lt;/li&gt;
&lt;li&gt;New: Client OM –&amp;gt; Runs on the desktop&lt;/li&gt;
&lt;li&gt;New: REST API’s –&amp;gt; ATOM response&lt;/li&gt;
&lt;li&gt;New: LINQ and all LINQ goodness&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Supports Joins and Projections&lt;/li&gt;
&lt;li&gt;Will dramatically reduce run time errors, moving them to compile time&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;li&gt;Client Object Model&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Different to the Server OM&lt;/li&gt;
&lt;li&gt;Promotes the batching of commands, so different to Server OM, but will be familiar&lt;/li&gt;
&lt;li&gt;Almost full access to site based functions, but not server operations (maybe some limited) you use this “ExecuteQuery” function to perform the operations you line up, nice.&lt;/li&gt;
&lt;li&gt;.Net assembly, Silverlight and Javascript files (Very HOT)&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;REST API&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Supports ADO.NET Data services&lt;/li&gt;
&lt;li&gt;SP2010 also installed ADO.NET services as these are what the REST API’s are built on&lt;/li&gt;
&lt;li&gt;SharePoint becomes an ADO data service. Thanks to REST. HOT&lt;/li&gt;
&lt;li&gt;Seems to come in mostly on the LISTDATA service&lt;/li&gt;
&lt;li&gt;Demonstrates querying by URL, smart stuff.&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;DEMO 4&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Builds a Windows Forms application&lt;/li&gt;
&lt;li&gt;Adds a data source, service reference –&amp;gt; connects to LISTDATA&lt;/li&gt;
&lt;li&gt;Binds a Grid on to the SharePoint List&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;Event Improvements&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Project Template&lt;/li&gt;
&lt;li&gt;New After-Synchronous event&lt;/li&gt;
&lt;li&gt;Site Scoped events&lt;/li&gt;
&lt;li&gt;Web Creation Events&lt;/li&gt;
&lt;li&gt;List Creation events&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;Workflow Improvements&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;This is a really long slide&lt;/li&gt;
&lt;li&gt;SharePoint Designer has an improved design service&lt;/li&gt;
&lt;li&gt;Integration between SPD – VS&lt;/li&gt;
&lt;li&gt;Browser base visualisations, HOT&lt;/li&gt;
&lt;li&gt;OOB workflows can be fully customised.&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;DEMO 5&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Build a really quick workflow is VS&lt;/li&gt;
&lt;li&gt;Creates a Sequential Workflow&lt;/li&gt;
&lt;li&gt;Can create a “Site” or a “List” workflow, Site Workflows do not require a list.&lt;/li&gt;
&lt;li&gt;VS has a very visual designer&lt;/li&gt;
&lt;li&gt;Got your standard drag and drop workflow design, nice, but the devil is in the detail&lt;/li&gt;
&lt;li&gt;Adds an “Initiation form”, this is just a web form&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;SharePoint Service Applications&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;If a job is too big for the Code Behind, make it a service application&lt;/li&gt;
&lt;li&gt;SSP –&amp;gt; Service applications&lt;/li&gt;
&lt;li&gt;Developers can create new services&lt;/li&gt;
&lt;li&gt;WCF knowledge nice to know here&lt;/li&gt;
&lt;li&gt;Includes: &lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;WS/Database provisioning&lt;/li&gt;
&lt;li&gt;Settings Store&lt;/li&gt;
&lt;li&gt;and much more…&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;li&gt;Ribbon and Dialog Framework&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;A number of elements available for use by developers:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Ribbon is context sensitive&lt;/li&gt;
&lt;li&gt;Status bar&lt;/li&gt;
&lt;li&gt;Notification area&lt;/li&gt;
&lt;li&gt;Dialog Framework&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;These are all JS based, all AJAXy&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;Silverlight&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Media Player – HOT&lt;/li&gt;
&lt;li&gt;Beyond Media scenarios, I’m not really much of a Silverlight fan&lt;/li&gt;
&lt;li&gt;Could be nice to smooth over the upload process&lt;/li&gt;
&lt;li&gt;There is a client API for this&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;Flexible Deployment&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Sandbox Solutions - HOT&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Designed to strike a balance between business Agility and Security and Stability&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;Site Collection based&lt;/li&gt;
&lt;li&gt;Limited API Access&lt;/li&gt;
&lt;li&gt;Monitored&lt;/li&gt;
&lt;li&gt;Deployed remotely to a solution gallery (a lot like a document library)&lt;/li&gt;
&lt;li&gt;Does no end up anywhere on the server filesystem&lt;/li&gt;
&lt;li&gt;Easy deployment&lt;/li&gt;
&lt;li&gt;This has some pretty profound implications&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;DEMO 6&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Sandbox solutions come with alternative VS deployment config&lt;/li&gt;
&lt;li&gt;Create a web part –&amp;gt; Adds a label control which displays all the sites and all the lists&lt;/li&gt;
&lt;li&gt;Tries to do some bad stuff in the code –&amp;gt; Creates a big loop&lt;/li&gt;
&lt;li&gt;Packages it, and then goes to upload manually (very smart stuff)&lt;/li&gt;
&lt;li&gt;Solution gallery lives in Site Settings&lt;/li&gt;
&lt;li&gt;Adds the web part&lt;/li&gt;
&lt;li&gt;When the loop goes for too long, then it hits a resource limitation&lt;/li&gt;
&lt;li&gt;Resource monitoring which can set limits, and creates a series of metrics around the performance of various applications&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;eg. Resource Usage.&lt;/li&gt;
&lt;li&gt;Clear this is functionality driven by Microsoft Online requirements&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;In my view this is the most significant new feature in the product&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;SharePoint Online&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Supports Sandboxed solutions&lt;/li&gt;
&lt;li&gt;Supports BCS&lt;/li&gt;
&lt;li&gt;It becomes a development platform&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;Upgrade and Packaging&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade callouts for features – HOT&lt;/li&gt;
&lt;li&gt;Test your SP2007 code before running on a SP2010 server, SHOULD be ok, but needs to be tested&lt;/li&gt;
&lt;li&gt;WSP is the unified packaging approach&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;TFS&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Bit light on, will need to check out the specific session.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=b_fY1RgPJjw:sNQjT8hCmCA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=b_fY1RgPJjw:sNQjT8hCmCA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=b_fY1RgPJjw:sNQjT8hCmCA:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=b_fY1RgPJjw:sNQjT8hCmCA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=b_fY1RgPJjw:sNQjT8hCmCA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=b_fY1RgPJjw:sNQjT8hCmCA:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Daniel/archive/2009/10/19/spc-09-developer-overview.aspx</guid>
         <pubDate>Mon, 19 Oct 2009 06:58:00 -0700</pubDate>
      </item>
      <item>
         <title>Get Your Demos While They Are Hot! Blog Central, Discussions Central, TunnelPoint and Produshare</title>
         <link>http://community.zevenseas.com/Blogs/Daniel/archive/2009/10/14/get-your-demos-while-they-are-hot-blog-central-discussions-central-tunnelpoint-and-produshare.aspx</link>
         <description>&lt;div class="ExternalClassDE0AEB22838D401B8315193947A08123"&gt;&lt;p&gt;As mentioned &lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/ViewPost.aspx?ID=106"&gt;before&lt;/a&gt;, next week, zevenseas is heading to Las Vegas for the SharePoint Conference. Given its a week of “Show and Tell” we are coming fully equipped to demonstrate any of the three product releases we made this year. &lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://demo.zevenseas.com"&gt;Blog Central&lt;/a&gt;&lt;br&gt;Discussions Central (released this week)&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/ViewPost.aspx?ID=90"&gt;TunnelPoint&lt;/a&gt; – &lt;a rel="nofollow" target="_blank" href="http://www.tunnelpoint.com"&gt;http://www.tunnelpoint.com&lt;/a&gt; &lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://www.produshare.com"&gt;ProduShare&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you have an interest in any of the above, and have 5 minutes to spare, drop me an email &lt;a rel="nofollow" target="_blank" href="mailto:daniel@zevenseas.com"&gt;daniel@zevenseas.com&lt;/a&gt; or send me a tweet @danmc and lets be sure to find some time. I’ll even pay for the beer or coffee!&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=pK69GgQLJhs:v3nl2XkmlYw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=pK69GgQLJhs:v3nl2XkmlYw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=pK69GgQLJhs:v3nl2XkmlYw:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=pK69GgQLJhs:v3nl2XkmlYw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_daniel?a=pK69GgQLJhs:v3nl2XkmlYw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_daniel?i=pK69GgQLJhs:v3nl2XkmlYw:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Daniel/archive/2009/10/14/get-your-demos-while-they-are-hot-blog-central-discussions-central-tunnelpoint-and-produshare.aspx</guid>
         <pubDate>Tue, 13 Oct 2009 17:03:15 -0700</pubDate>
      </item>
      <item>
         <title>Update on the Dolphins</title>
         <link>http://community.zevenseas.com/Blogs/Hans/archive/2009/10/13/update-on-the-dolphins.aspx</link>
         <description>&lt;div class="ExternalClass9DF0ACCB7FFF4A16B159E3CBD241925A"&gt;&lt;p&gt;It has been a while that I wrote a small post on the Dolphins we adopted. I think it is important sometimes to report on non-work stuff and this is the perfect excuse for me to do so :-)&lt;/p&gt; &lt;p&gt;All the sightings are done by the Sea Watch Foundation, a very special group of people that keep an eye on the sea for us! Photos are also supplied by them (copyright).&lt;/p&gt; &lt;p&gt;Below some reports from the Sea Watch Foundation. Remember, our adopted dolphins are Nic Nic and Splash.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;We came across Nic Nic next when she and Rip Torn came to visit us in New Quay Bay around the middle of the month. Nic Nic and Rip Torn appeared to be taking it easy in the shallow waters around New Quay, just slowly swimming around with no clear destination in mind, occasionally leaping right out of the water and then continuing on their way. There was also a juvenile dolphin in the area which may have been Nic Nic’s calf, Splash, but we’re not entirely sure.&lt;br&gt;Splash is about five years old now and over the winter has become much more independent, often swimming far away from Nic Nic and doing his own thing. It is likely that he was in the area somewhere, but unfortunately when we last saw him he didn’t have any scars or nicks that we could identify him by, so now that he is spending less and less time with Nic Nic we are not sure which juvenile he is!&lt;br&gt;August 2009 4&lt;br&gt;Interestingly, Nic Nic and Rip Torn were also found together last June as well! Rip Torn is an adult male dolphin who is looking pretty battered now. He has a very large number of markings and each time we see him he seems to have a new scar or nick on his dorsal fin making his appearance quite changeable! Luckily, all of his old scars still remain and he is one of our most distinctive dolphins making it very easy to identify him even with the regular additions to his markings. Hopefully he’s not being too rough with Nic Nic!!!&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;And yes we have some pictures.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/Blogs/Hans/Lists/Posts/Attachments/164/image_2_7B397313.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/Blogs/Hans/Lists/Posts/Attachments/164/image_thumb_7B397313.png" width="244" height="177"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://community.zevenseas.com/Blogs/Hans/Lists/Posts/Attachments/164/image_4_7B397313.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/Blogs/Hans/Lists/Posts/Attachments/164/image_thumb_1_7B397313.png" width="244" height="157"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=UfZbD-i7S1U:KGXtRcPFoUk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=UfZbD-i7S1U:KGXtRcPFoUk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=UfZbD-i7S1U:KGXtRcPFoUk:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=UfZbD-i7S1U:KGXtRcPFoUk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=UfZbD-i7S1U:KGXtRcPFoUk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=UfZbD-i7S1U:KGXtRcPFoUk:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Hans/archive/2009/10/13/update-on-the-dolphins.aspx</guid>
         <pubDate>Tue, 13 Oct 2009 03:08:37 -0700</pubDate>
      </item>
      <item>
         <title>Nintex - Major Sponsor of the Microsoft SharePoint Conference 2009</title>
         <link>http://community.zevenseas.com/Blogs/Hans/archive/2009/10/08/nintex-major-sponsor-of-the-microsoft-sharepoint-conference-2009.aspx</link>
         <description>&lt;div class="ExternalClass62FF9DBD285C4DE7B78852D48125F949"&gt;&lt;p&gt;Copy from their site:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Nintex is proud to sponsor the fifth global Microsoft SharePoint Conference to be held in Las Vegas from 19th – 22nd October, 2009.&lt;br&gt; &lt;br&gt;Nintex will unveil its 2010 products at this event. We invite delegates to come and see us at the Nintex exhibit booth 415, and let us show you our exciting new products.&lt;/p&gt; &lt;p&gt;This is the first conference to showcase the SharePoint 2010 platform features and functionality. The conference will feature many examples of real world deployments and scenarios in sessions delivered by the most experienced SharePoint experts in the industry. Nintex are one of a select number of partners who will be presenting sessions at this conference. On Wednesday October 21st at 9am Nintex’s VP of Technology, Mike Fitzmaurice, will be presenting on Nintex’s upcoming 2010 products in room Surf 1. Make sure you add this to your must-see-sessions list.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;If you want to meet Nintex please ping me on &lt;a rel="nofollow" target="_blank" href="mailto:hans@zevenseas.com"&gt;hans@zevenseas.com&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=-ZjCv8rCLQ8:pa_QYKWgOo0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=-ZjCv8rCLQ8:pa_QYKWgOo0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=-ZjCv8rCLQ8:pa_QYKWgOo0:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=-ZjCv8rCLQ8:pa_QYKWgOo0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=-ZjCv8rCLQ8:pa_QYKWgOo0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=-ZjCv8rCLQ8:pa_QYKWgOo0:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Hans/archive/2009/10/08/nintex-major-sponsor-of-the-microsoft-sharepoint-conference-2009.aspx</guid>
         <pubDate>Thu, 08 Oct 2009 02:42:02 -0700</pubDate>
      </item>
      <item>
         <title>SharePoint Conference 2009 sessions and events</title>
         <link>http://community.zevenseas.com/Blogs/Hans/archive/2009/10/08/sharepoint-conference-2009-sessions-and-events.aspx</link>
         <description>&lt;div class="ExternalClass559711A36892494F961415D6819709E2"&gt;&lt;p&gt;A few people requested this and I decided to create it, a total overview of the sessions and social events during the SharePoint Conference 2009 in Las Vegas.&lt;/p&gt; &lt;p&gt;Click the picture to open it. You can easily copy stuff to your calendar with one click (if you use Google).&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="https://www.google.com/calendar/hosted/zevenseas.com/embed?src=zevenseas.com_oi8flscqrd3tm9el9pm5e6q6a0@group.calendar.google.com&amp;amp;ctz=UTC&amp;amp;pvttk=afcb0c59c8bbf7d7a1fbfef5f9f149cf"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://community.zevenseas.com/Blogs/Hans/Lists/Posts/Attachments/162/image_3_33EC4EB6.png" width="368" height="232"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=vb2JVT0-sJ8:q1iHQWKdeAE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=vb2JVT0-sJ8:q1iHQWKdeAE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=vb2JVT0-sJ8:q1iHQWKdeAE:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=vb2JVT0-sJ8:q1iHQWKdeAE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://feeds.zevenseas.com/~ff/blogs_hans?a=vb2JVT0-sJ8:q1iHQWKdeAE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogs_hans?i=vb2JVT0-sJ8:q1iHQWKdeAE:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">/Blogs/Hans/archive/2009/10/08/sharepoint-conference-2009-sessions-and-events.aspx</guid>
         <pubDate>Thu, 08 Oct 2009 02:39:28 -0700</pubDate>
      </item>
   </channel>
</rss><!-- fe3.pipes.re3.yahoo.com uncompressed/chunked Fri Mar 12 20:47:32 PST 2010 -->
