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

<channel>
	<title>Jesse&#039;s SharePoint Blog</title>
	<atom:link href="http://vspug.com/jessefitz/feed/" rel="self" type="application/rss+xml" />
	<link>http://vspug.com/jessefitz</link>
	<description>Just another VSPUG - Virtual SharePoint User Group weblog</description>
	<lastBuildDate>Wed, 02 Jul 2008 12:51:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>External Collaboration Toolkit for SharePoint &#8211; ugh</title>
		<link>http://vspug.com/jessefitz/2008/07/02/external-collaboration-toolkit-for-sharepoint-ugh/</link>
		<comments>http://vspug.com/jessefitz/2008/07/02/external-collaboration-toolkit-for-sharepoint-ugh/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 12:51:00 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[
I&#39;ve been installing
and exploring the External
Collaboration Toolkit for SharePoint over the past couple of days, and have
to say that, thus far, I&#39;m a bit disappointed.&#160; The setup and
configuration documentation isn&#39;t 100% accurate, and assumes that the person
installing has a decent amount of AD/ADAM knowledge. I figured I was finally up
for some good stuff after fighting [...]]]></description>
			<content:encoded><![CDATA[</p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">I&#39;ve been installing<br />
and exploring the <a href="http://technet.microsoft.com/en-us/library/cc296361%28TechNet.10%29.aspx">External<br />
Collaboration Toolkit for SharePoint</a> over the past couple of days, and have<br />
to say that, thus far, I&#39;m a bit disappointed.&nbsp; The setup and<br />
configuration documentation isn&#39;t 100% accurate, and assumes that the person<br />
installing has a decent amount of AD/ADAM knowledge. I figured I was finally up<br />
for some good stuff after fighting my way through the installation, but the<br />
struggle has continued.<span>&nbsp; </span>Not only have I<br />
run into several problems (bugs?), but much of the functionality I was hoping<br />
to get just doesn&#39;t seem to be there (or isn&#39;t easy to find).<span>&nbsp; </span>It appears that MS didn&#39;t build in any Role<br />
Management functionality, nor do I see any support for adding ADAM groups to<br />
SharePoint groups (as you can do with AD groups).</p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">&nbsp;</p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">The <a href="http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=CKS&amp;ReleaseId=7675">Community<br />
Kit for SharePoint</a> offers much of the functionality I was hoping to see in<br />
ECT.<span>&nbsp; </span>Plus, its open source.<span>&nbsp; </span></p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">&nbsp;</p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">I&#39;m wondering how<br />
many other people are coming away from ECT with the same impression&#8230;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/jessefitz/2008/07/02/external-collaboration-toolkit-for-sharepoint-ugh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grrrrrrrrrrrrr!</title>
		<link>http://vspug.com/jessefitz/2008/06/27/grrrrrrrrrrrrr/</link>
		<comments>http://vspug.com/jessefitz/2008/06/27/grrrrrrrrrrrrr/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 17:06:00 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[&#160;Sure would&#39;ve been nice to know about this before I named my domain in an x.y.z format&#8230; 
&#34;Apparently, SharePoint doesn&#39;t play well with the FQDN somedomain.org (or .com, .info, .local, etc)&#34; 
&#160;
]]></description>
			<content:encoded><![CDATA[<p>&nbsp;Sure would&#39;ve been nice to know about <a href="http://www.benstegink.com/archives/10">this </a><i>before</i> I named my domain in an x.y.z format&#8230; </p>
<p>&quot;Apparently, SharePoint doesn&#39;t play well with the FQDN somedomain.org (or .com, .info, .local, etc)&quot; </p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/jessefitz/2008/06/27/grrrrrrrrrrrrr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging Assembly Load Failure (&quot;File Not Found&quot;) in a SharePoint Workflow</title>
		<link>http://vspug.com/jessefitz/2008/06/25/debugging-assembly-load-failure-quot-file-not-found-quot-in-a-sharepoint-workflow/</link>
		<comments>http://vspug.com/jessefitz/2008/06/25/debugging-assembly-load-failure-quot-file-not-found-quot-in-a-sharepoint-workflow/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 14:20:00 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[
To set the pretext
for this post. I&#39;ve moved on from Applied Information Sciences (who recently
went through a couple rounds of &#39;down-sizing&#39;), and am now with SM Consulting,
an SAIC owned company.&#160; 
&#160;
I&#39;ve spent a large
part of the past 2 days chasing yet another mystery bug related to a SharePoint
workflow.&#160;&#160; One of my colleagues here was
trying to [...]]]></description>
			<content:encoded><![CDATA[</p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">To set the pretext<br />
for this post. I&#39;ve moved on from Applied Information Sciences (who recently<br />
went through a couple rounds of &#39;down-sizing&#39;), and am now with SM Consulting,<br />
an SAIC owned company.<span>&nbsp; </span></p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">&nbsp;</p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">I&#39;ve spent a large<br />
part of the past 2 days chasing yet another mystery bug related to a SharePoint<br />
workflow.<span>&nbsp;&nbsp; </span>One of my colleagues here was<br />
trying to test a bit of new functionality in a custom workflow.<span>&nbsp; </span>Unfortunately, he wasn&#39;t able to get past the<br />
association step.<span>&nbsp; </span>He was receiving a<br />
&quot;File not found&quot; error message and the stack trace revealed that the<br />
error occurred during the load procedure of some (unknown) assembly.</p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">&nbsp;</p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">I still can&#39;t come<br />
close to explaining at all why this is happening, but I can share a neat tool<br />
that I used to diagnose the problem.<span>&nbsp;<br />
</span>Perhaps I&#39;m a bit behind the times, but this was my first attempt at<br />
using the <a href="http://msdn.microsoft.com/en-us/library/e74a18c4%28VS.71%29.aspx">Fusion<br />
Log Viewer</a> to figure out what assembly was causing the problem.<span>&nbsp; </span>I spent a few minutes spinning my wheels<br />
trying to get the app to show me anything, and then a came across this very<br />
useful script from<span>&nbsp; </span><a href="http://www.paraesthesia.com/archive/2004/10/20/fusion-log-viewer-settings-changer.aspx">Travis<br />
Illig</a>.<span>&nbsp; </span>Using the script I was able<br />
to get the viewer to capture all of the information I was looking for.</p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">&nbsp;</p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">As it turns out, the<br />
error was occurring while attempting to load the<br />
Microsoft.Office.Workflow.Pages assembly, which is used in the OOTB custom<br />
workflow association page (CstWrkflIP.aspx).<span>&nbsp;<br />
</span>I have absolutely no idea why this was happening, but since the workflow<br />
wasn&#39;t<span>&nbsp; </span>gathering any association data, I<br />
just removed the AssociationUrl attribute from the workflow.xml file, ran an<br />
iisreset, and. magic.<span>&nbsp; </span>We were then able<br />
to associate the workflow without issue.</p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">&nbsp;</p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">Feel free to chime<br />
in here if anyone out there has a clue as to why we&#39;d be seeing this problem<br />
with association page&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/jessefitz/2008/06/25/debugging-assembly-load-failure-quot-file-not-found-quot-in-a-sharepoint-workflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint Web.config Debug Settings</title>
		<link>http://vspug.com/jessefitz/2008/04/09/sharepoint-web-config-debug-settings/</link>
		<comments>http://vspug.com/jessefitz/2008/04/09/sharepoint-web-config-debug-settings/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 13:43:00 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[I always seem to forget the exact changes needed in your web.config to get some REAL error information in your browser when debugging SharePoint (other than setting customErrors = false).&#160; Yuriy came across the full set yesterday..&#160; 


   1: &#60;configuration&#62;
   2:   &#60;SharePoint&#62;
   3:     [...]]]></description>
			<content:encoded><![CDATA[<p>I always seem to forget the exact changes needed in your web.config to get some REAL error information in your browser when debugging SharePoint (other than setting customErrors = false).&#160; Yuriy came across the full set yesterday..&#160; </p>
<div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:550px;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &#39;Courier New&#39;, courier, monospace;background-color:#f4f4f4;">
<div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;">
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   1:</span> <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">configuration</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">   2:</span>   <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">SharePoint</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   3:</span>     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">SafeMode</span> <span style="color:#ff0000;">CallStack</span><span style="color:#0000ff;">=&quot;true&quot;</span> <span style="color:#0000ff;">/&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">   4:</span>    <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">SharePoint</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   5:</span>   <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">system.web</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">   6:</span>     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">customErrors</span> <span style="color:#ff0000;">mode</span><span style="color:#0000ff;">=&quot;Off&quot;</span> <span style="color:#0000ff;">/&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   7:</span>     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">compilation</span> <span style="color:#ff0000;">debug</span><span style="color:#0000ff;">=&quot;true&quot;</span> <span style="color:#0000ff;">/&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">   8:</span>   <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">system.web</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   9:</span> <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">configuration</span><span style="color:#0000ff;">&gt;</span></pre>
</p></div>
</div>
<p>&#160; </p>
<p>There&#8217;s also this <a href="http://blog.thekid.me.uk/archive/2007/07/25/debugging-tips-for-sharepoint-and-wss-exceptions.aspx">posting</a> which offers a variety of other approaches, but I&#8217;m yet to have much success with many of them (although I admittedly haven&#39;t spent much time trying).</p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/jessefitz/2008/04/09/sharepoint-web-config-debug-settings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&quot;This page has encountered a critical error.&quot;</title>
		<link>http://vspug.com/jessefitz/2008/03/25/quot-this-page-has-encountered-a-critical-error-quot/</link>
		<comments>http://vspug.com/jessefitz/2008/03/25/quot-this-page-has-encountered-a-critical-error-quot/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 18:37:29 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[I&#39;m really far behind on the items I&#39;ve wanted to write about, but I definitely have a list of things to post on. Maybe I&#39;ll write a post about all the posts I need to write&#8230; Regardless, this one is so short and simple that I thought I&#39;d get it out here quickly. 
Less than [...]]]></description>
			<content:encoded><![CDATA[<p>I&#39;m really far behind on the items I&#39;ve wanted to write about, but I definitely have a list of things to post on. Maybe I&#39;ll write a post about all the posts I need to write&#8230; Regardless, this one is so short and simple that I thought I&#39;d get it out here quickly. </p>
<p>Less than a week away from production and we start getting an error upon logon to our site &#8211; &quot;This page has encountered a critical error.&quot; I&#39;m all like &quot;uh uh, no way&quot; and SharePoint&#39;s all like &quot;uh huh, you betcha&quot; and I&#39;m all like &quot;wth sharepoint&quot; and it&#39;s all like &quot;lol&quot;. </p>
<p>After some digging around and we finally figure out that somebody had been using the ASP.NET configuration tool (available from the ASP.NET tab in IIS) to increase the timeout settings for our site.&#160; This tool, in all its infinite wisdom, not only updates that timeout settings, but also adds a nifty little xmlns to the configuration element &#8211; &lt;configuration xmlns=&quot;<a href="http://schemas.microsoft.com/.NetConfiguration/v2.0">http://schemas.microsoft.com/.NetConfiguration/v2.0&quot;</a>&gt;.&#160; Apparently, little Mr. SharePoint don&#39;t like that namespace.&#160; We removed it, reset IIS, and danced a little jig when the site came back up again.</p>
<p>Lesson learned #1:&#160; don&#39;t use a tool to do what you can easily do manually.</p>
<p>Lesson learned #2: don&#39;t trust the Internet.&#160; I didn&#39;t get any useful hits on this error message.</p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/jessefitz/2008/03/25/quot-this-page-has-encountered-a-critical-error-quot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Super Simple Feature for Hiding the Search Scope DropDown</title>
		<link>http://vspug.com/jessefitz/2008/02/13/super-simple-feature-for-hiding-the-search-scope-dropdown/</link>
		<comments>http://vspug.com/jessefitz/2008/02/13/super-simple-feature-for-hiding-the-search-scope-dropdown/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 19:05:28 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[
So I need to hide the scope drop down that shows up next to the search box in my SharePoint MasterPage.&#160; 
Me:&#160; &#34;That&#39;s gotta be simple&#8230;&#160; Just open up SharePoint designer and set some property on the search control.&#34;&#160; 
SharePoint: &#34;Silly little boy!&#160; Say hello to my little friend&#8230;err&#8230; DelegateControl!&#34;
&#60;Enter Jesse into world of SharePoint [...]]]></description>
			<content:encoded><![CDATA[</p>
<p>So I need to hide the scope drop down that shows up next to the search box in my SharePoint MasterPage.&#160; </p>
<p><em>Me</em>:&#160; &quot;That&#39;s gotta be simple&#8230;&#160; Just open up SharePoint designer and set some property on the search control.&quot;&#160; </p>
<p><em>SharePoint</em>: &quot;Silly little boy!&#160; Say hello to my little friend&#8230;err&#8230; DelegateControl!&quot;</p>
<p><em>&lt;Enter Jesse into world of SharePoint delegate controls&gt;</em></p>
<p>Foolishness aside, the concept behind the <a href="http://msdn2.microsoft.com/en-us/library/ms463169.aspx">DelegateControl</a> is actually pretty useful, and because of it I was able to roll a very straightforward feature permitting me to hide the scope drop down in my MasterPage.&#160; And I didn&#39;t even have to write one line of code&#8230; a true ode to developer sloth.</p>
<p>The feature&#8230;.</p>
<div style="border-right:gray 1px solid;padding-right:4px;width:500px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &#39;Courier New&#39;, courier, monospace;background-color:#f4f4f4;">
<div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;">
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   1:</span> <span style="color:#0000ff;">&lt;?</span><span style="color:#800000;">xml</span> <span style="color:#ff0000;">version</span><span style="color:#0000ff;">=&quot;1.0&quot;</span> <span style="color:#ff0000;">encoding</span><span style="color:#0000ff;">=&quot;utf-8&quot;</span> ?<span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">   2:</span> <span style="color:#008000;">&lt;!-- Copyright (c) Microsoft Corporation. All rights reserved. --&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   3:</span> <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Feature</span>  <span style="color:#ff0000;">Id</span><span style="color:#0000ff;">=&quot;085B7E09-1D3E-41a7-9FEE-0C88F4394920&quot;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">   4:</span>           <span style="color:#ff0000;">Title</span><span style="color:#0000ff;">=&quot;Custom Basic Search Control Feature&quot;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   5:</span>           <span style="color:#ff0000;">Description</span><span style="color:#0000ff;">=&quot;A feature for a search control that hides the Scope drop-down.&quot;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">   6:</span>           <span style="color:#ff0000;">DefaultResourceFile</span><span style="color:#0000ff;">=&quot;spscore&quot;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   7:</span>           <span style="color:#ff0000;">Version</span><span style="color:#0000ff;">=&quot;1.0.0.0&quot;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">   8:</span>           <span style="color:#ff0000;">Scope</span><span style="color:#0000ff;">=&quot;WebApplication&quot;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   9:</span>           <span style="color:#ff0000;">xmlns</span><span style="color:#0000ff;">=&quot;http://schemas.microsoft.com/sharepoint/&quot;</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">  10:</span>     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">ElementManifests</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">  11:</span>         <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">ElementManifest</span> <span style="color:#ff0000;">Location</span><span style="color:#0000ff;">=&quot;searcharea.xml&quot;</span><span style="color:#0000ff;">/&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">  12:</span>     <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">ElementManifests</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">  13:</span> <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">Feature</span><span style="color:#0000ff;">&gt;</span></pre>
</p></div>
</div>
<p>&#160;</p>
<p>SearchArea.xml&#8230;</p>
<div style="border-right:gray 1px solid;width:500px;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &#39;Courier New&#39;, courier, monospace;background-color:#f4f4f4;">
<div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;">
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   1:</span> <span style="color:#0000ff;">&lt;?</span><span style="color:#800000;">xml</span> <span style="color:#ff0000;">version</span><span style="color:#0000ff;">=&quot;1.0&quot;</span> <span style="color:#ff0000;">encoding</span><span style="color:#0000ff;">=&quot;utf-8&quot;</span> ?<span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">   2:</span> <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Elements</span> <span style="color:#ff0000;">xmlns</span><span style="color:#0000ff;">=&quot;http://schemas.microsoft.com/sharepoint/&quot;</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   3:</span>     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Control</span> </pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">   4:</span>         <span style="color:#ff0000;">Id</span><span style="color:#0000ff;">=&quot;CustomSmallSearchInputBox&quot;</span> </pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   5:</span>         <span style="color:#ff0000;">Sequence</span><span style="color:#0000ff;">=&quot;1&quot;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">   6:</span>         <span style="color:#ff0000;">ControlClass</span><span style="color:#0000ff;">=&quot;Microsoft.SharePoint.Portal.WebControls.SearchBoxEx&quot;</span> <span style="color:#ff0000;">ControlAssembly</span><span style="color:#0000ff;">=&quot;Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot;</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   7:</span>     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Property</span> <span style="color:#ff0000;">Name</span><span style="color:#0000ff;">=&quot;GoImageUrl&quot;</span><span style="color:#0000ff;">&gt;</span>/_layouts/images/gosearch.gif<span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">Property</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">   8:</span>     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Property</span> <span style="color:#ff0000;">Name</span><span style="color:#0000ff;">=&quot;GoImageUrlRTL&quot;</span><span style="color:#0000ff;">&gt;</span>/_layouts/images/goRTL.gif<span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">Property</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   9:</span>     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Property</span> <span style="color:#ff0000;">Name</span><span style="color:#0000ff;">=&quot;GoImageActiveUrl&quot;</span><span style="color:#0000ff;">&gt;</span>/_layouts/images/gosearch.gif<span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">Property</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">  10:</span>     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Property</span> <span style="color:#ff0000;">Name</span><span style="color:#0000ff;">=&quot;GoImageActiveUrlRTL&quot;</span><span style="color:#0000ff;">&gt;</span>/_layouts/images/goRTL.gif<span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">Property</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">  11:</span>     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Property</span> <span style="color:#ff0000;">Name</span><span style="color:#0000ff;">=&quot;DropDownMode&quot;</span><span style="color:#0000ff;">&gt;</span>HideScopeDD<span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">Property</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">  12:</span>     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Property</span> <span style="color:#ff0000;">Name</span><span style="color:#0000ff;">=&quot;SearchResultPageURL&quot;</span><span style="color:#0000ff;">&gt;</span>/_layouts/osssearchresults.aspx<span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">Property</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">  13:</span>     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Property</span> <span style="color:#ff0000;">Name</span><span style="color:#0000ff;">=&quot;ScopeDisplayGroupName&quot;</span><span style="color:#0000ff;">&gt;&lt;/</span><span style="color:#800000;">Property</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">  14:</span>     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Property</span> <span style="color:#ff0000;">Name</span><span style="color:#0000ff;">=&quot;FrameType&quot;</span><span style="color:#0000ff;">&gt;</span>None<span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">Property</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">  15:</span>     <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">Control</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">  16:</span> <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">Elements</span><span style="color:#0000ff;">&gt;</span></pre>
</p></div>
</div>
<p>Two important things to note here&#8230; the Id of the control (CustomSmallSearchInputBox) and the DropDownMode (there are actually <a href="http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.portal.webcontrols.dropdownmodes.aspx">a bunch of different values</a> you can set here).&#160; So, install your feature, reference the CustomSmallSearchInputBox in your MasterPage and you&#39;re ret&#39; to go:</p>
<div style="border-right:gray 1px solid;padding-right:4px;width:500px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &#39;Courier New&#39;, courier, monospace;background-color:#f4f4f4;">
<div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;">
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   1:</span> <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">asp:ContentPlaceHolder</span> <span style="color:#ff0000;">id</span><span style="color:#0000ff;">=&quot;PlaceHolderSearchArea&quot;</span> <span style="color:#ff0000;">runat</span><span style="color:#0000ff;">=&quot;server&quot;</span><span style="color:#0000ff;">&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"><span style="color:#606060;">   2:</span>       <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">SharePoint:DelegateControl</span> <span style="color:#ff0000;">runat</span><span style="color:#0000ff;">=&quot;server&quot;</span> <span style="color:#ff0000;">ControlId</span><span style="color:#0000ff;">=&quot;CustomSmallSearchInputBox&quot;</span><span style="color:#0000ff;">/&gt;</span></pre>
<pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &#39;Courier New&#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"><span style="color:#606060;">   3:</span> <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">asp:ContentPlaceHolder</span><span style="color:#0000ff;">&gt;</span></pre>
</p></div>
</div>
<p>Theoretically speaking, you could roll your feature with the same ID as the SharePoint feature (SmallSearchInputBox), set the Sequence attribute to something super low, install your feature, and have your customized version start showing up throughout the site.&#160; I myself prefer to keep my changes more modular.</p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/jessefitz/2008/02/13/super-simple-feature-for-hiding-the-search-scope-dropdown/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calling all SharePoint Projects in the Tropics&#8230;</title>
		<link>http://vspug.com/jessefitz/2008/01/30/calling-all-sharepoint-projects-in-the-tropics/</link>
		<comments>http://vspug.com/jessefitz/2008/01/30/calling-all-sharepoint-projects-in-the-tropics/#comments</comments>
		<pubDate>Wed, 30 Jan 2008 11:39:34 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[I ran across this SharePoint site today while perusing my daily RSS feeds.&#160; Needless to say, the scene outside my office window isn&#39;t quite so beautiful (cold rain, gray clouds, leafless trees, and even a buzzard flying by).&#160; So I&#39;m putting a call out to all readers in the tropics in need of quality SharePoint [...]]]></description>
			<content:encoded><![CDATA[<p>I ran across this SharePoint <a href="http://www.hawaiianair.com/AboutUs/Pages/Index.aspx">site</a> today while perusing my daily RSS feeds.&#160; Needless to say, the scene outside my office window isn&#39;t quite so beautiful (cold rain, gray clouds, leafless trees, and even a buzzard flying by).&#160; So I&#39;m putting a call out to all readers in the tropics in need of quality SharePoint consulting services&#8230;&#160; Sure would love to get something going! <img src='http://vspug.com/jessefitz/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> )</p>
<p>Ok, ok&#8230; I know , keep on dreaming Jesse.&#160; (Did I mention I speak Spanish???&#160; Costa Rica?&#160; Puerto Rico?)</p>
<p>Can&#39;t blame a guy for trying <img src='http://vspug.com/jessefitz/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/jessefitz/2008/01/30/calling-all-sharepoint-projects-in-the-tropics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrating an Asp.Net Application into our SharePoint Portal</title>
		<link>http://vspug.com/jessefitz/2008/01/24/integrating-an-asp-net-application-into-our-sharepoint-portal/</link>
		<comments>http://vspug.com/jessefitz/2008/01/24/integrating-an-asp-net-application-into-our-sharepoint-portal/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 17:53:00 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[This was actually a conversion and integration effort.&#160; Our client had a rather old and outdated MS Access application that they wanted to integrate into their soon-to-be-deployed SharePoint portal.&#160; My good friend and coworker, Yuriy Shvadskiy, took on the tremendous effort of first converting the Access database to Sql Server 2005 and also designed/implemented the [...]]]></description>
			<content:encoded><![CDATA[<p>This was actually a conversion and integration effort.&nbsp; Our client had a rather old and outdated MS Access application that they wanted to integrate into their soon-to-be-deployed SharePoint portal.&nbsp; My good friend and coworker, Yuriy Shvadskiy, took on the tremendous effort of first converting the Access database to Sql Server 2005 and also designed/implemented the Asp.Net front-end.&nbsp; Perhaps I&#39;ll try to get him to write something up about this effort&#8230; the final product was a great conglomeration of skill and technology.</p>
<p>After the Asp.Net app was complete we formulated a plan for MOSS integration (with some guidance from our trusty <a href="http://vlele.wordpress.com/">SharePoint Guru</a>).&nbsp; As many of us know, there are a couple ways to go about this.&nbsp; I think the most well known and popular is probably ye olde<em> _layouts</em> directory.&nbsp; Pop your assemblies in the GAC (or web app bin), drop your aspx pages in 12TemplateLayouts, and&#8230; whalah &#8211; application integrated (yes, I know I&#39;m probably missing some steps here).&nbsp; My quarrel with this approach is that we end up losing a fair amount of the functionality provided by SharePoint, most importantly security.</p>
<p>In the end we went with an approach that Vishwas outlines in one if his whitepapers (the name and location of which escapes me now): Convert the Asp.Net front end into a series of custom publishing page layouts and deploy the page layouts to our target site.&nbsp; Here&#39;s an outline of the steps we took:</p>
<ol>
<li>Convert each Asp.Net page into one or more Asp.Net User Controls. </li>
<li>Deploy the controls to the ControlTemplates directory. </li>
<li>For each page in the Asp.Net app, create a custom page layout containing its respective User Control(s). </li>
<li>Deploy the page layouts to the target site, and create a single page instance for each page layout. </li>
</ol>
<p>Pretty simple, really.&nbsp; Our final product was a SharePoint solution consisting of two features:&nbsp; one for the system master page and file dependencies (stylesheets, etc) and another for the custom&nbsp; page layouts.&nbsp; The solution also packaged the system assemblies, web services, and custom User Controls. But, as we all know, the <a href="http://www.cosmik.com/aa-april-july07/pics/rusty_116_04.jpg">devil</a> is in the details.&nbsp; Creating a robust and usable product required us to do more than just deploy the layouts.&nbsp; I&#39;ll try to supply a couple of the points and snippets that I found to be the most useful.&nbsp; Please let me know if there&#39;s something you think that I should cover that I haven&#39;t and I&#39;ll fill in the details.</p>
<p><u>The Custom Page Layouts</u></p>
<p>If you open up SharePoint Designer (I know, painful), you&#39;ll find all the OOTB layouts in the MasterPage Gallery.&nbsp; A closer look at many of these reveals that none of them are exactly simple.&nbsp; So, here&#39;s (what I think to be) the foundation mark-up for a blank page layout:</p>
<div style="BORDER-RIGHT:gray 1px solid;PADDING-RIGHT:4px;BORDER-TOP:gray 1px solid;PADDING-LEFT:4px;FONT-SIZE:8pt;PADDING-BOTTOM:4px;MARGIN:20px 0px 10px;OVERFLOW:auto;BORDER-LEFT:gray 1px solid;WIDTH:580px;CURSOR:text;MAX-HEIGHT:200px;LINE-HEIGHT:12pt;PADDING-TOP:4px;BORDER-BOTTOM:gray 1px solid;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BACKGROUND-COLOR:#f4f4f4;">
<div style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;">
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   1:</span> <span style="BACKGROUND-COLOR:#ffff00;">&lt;%@ Page language=&quot;C#&quot;   Inherits=&quot;Microsoft.SharePoint.Publishing.PublishingLayoutPage,Microsoft.SharePoint.Publishing,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c&quot; %&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   2:</span> <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">asp:Content</span> <span style="COLOR:#ff0000;">ID</span><span style="COLOR:#0000ff;">=&quot;Content2&quot;</span> <span style="COLOR:#ff0000;">ContentPlaceholderID</span><span style="COLOR:#0000ff;">=&quot;PlaceHolderAdditionalPageHead&quot;</span> <span style="COLOR:#ff0000;">runat</span><span style="COLOR:#0000ff;">=&quot;server&quot;</span><span style="COLOR:#0000ff;">&gt;&lt;/</span><span style="COLOR:#800000;">asp:Content</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   3:</span> <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">asp:Content</span> <span style="COLOR:#ff0000;">ID</span><span style="COLOR:#0000ff;">=&quot;Content3&quot;</span> <span style="COLOR:#ff0000;">ContentPlaceholderID</span><span style="COLOR:#0000ff;">=&quot;PlaceHolderPageTitle&quot;</span> <span style="COLOR:#ff0000;">runat</span><span style="COLOR:#0000ff;">=&quot;server&quot;</span><span style="COLOR:#0000ff;">&gt;&lt;/</span><span style="COLOR:#800000;">asp:Content</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   4:</span> <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">asp:Content</span> <span style="COLOR:#ff0000;">ID</span><span style="COLOR:#0000ff;">=&quot;Content4&quot;</span> <span style="COLOR:#ff0000;">ContentPlaceholderID</span><span style="COLOR:#0000ff;">=&quot;PlaceHolderPageTitleInTitleArea&quot;</span> <span style="COLOR:#ff0000;">runat</span><span style="COLOR:#0000ff;">=&quot;server&quot;</span><span style="COLOR:#0000ff;">&gt;&lt;/</span><span style="COLOR:#800000;">asp:Content</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   5:</span> <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">asp:Content</span> <span style="COLOR:#ff0000;">ID</span><span style="COLOR:#0000ff;">=&quot;Content5&quot;</span> <span style="COLOR:#ff0000;">ContentPlaceHolderId</span><span style="COLOR:#0000ff;">=&quot;PlaceHolderTitleBreadcrumb&quot;</span> <span style="COLOR:#ff0000;">runat</span><span style="COLOR:#0000ff;">=&quot;server&quot;</span><span style="COLOR:#0000ff;">&gt;&lt;/</span><span style="COLOR:#800000;">asp:Content</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   6:</span> <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">asp:Content</span> <span style="COLOR:#ff0000;">ID</span><span style="COLOR:#0000ff;">=&quot;Content6&quot;</span> <span style="COLOR:#ff0000;">ContentPlaceholderID</span><span style="COLOR:#0000ff;">=&quot;PlaceHolderMain&quot;</span> <span style="COLOR:#ff0000;">runat</span><span style="COLOR:#0000ff;">=&quot;server&quot;</span><span style="COLOR:#0000ff;">&gt;&lt;/</span><span style="COLOR:#800000;">asp:Content</span><span style="COLOR:#0000ff;">&gt;</span></pre>
</div>
</div>
<p>To take it a step further, here&#39;s one of our &#39;production ready&#39; custom page layouts.&nbsp; You&#39;ll see that it registers some additional SharePoint assemblies, registers some additional CSS, and puts a breadcrumb control on the page.&nbsp; Also notice that we register our custom user control and place it in the main content area.</p>
<div style="BORDER-RIGHT:gray 1px solid;PADDING-RIGHT:4px;BORDER-TOP:gray 1px solid;PADDING-LEFT:4px;FONT-SIZE:8pt;PADDING-BOTTOM:4px;MARGIN:20px 0px 10px;OVERFLOW:auto;BORDER-LEFT:gray 1px solid;WIDTH:580px;CURSOR:text;MAX-HEIGHT:200px;LINE-HEIGHT:12pt;PADDING-TOP:4px;BORDER-BOTTOM:gray 1px solid;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BACKGROUND-COLOR:#f4f4f4;">
<div style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;">
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   1:</span> <span style="BACKGROUND-COLOR:#ffff00;">&lt;%@ Page language=&quot;C#&quot;   Inherits=&quot;Microsoft.SharePoint.Publishing.PublishingLayoutPage,Microsoft.SharePoint.Publishing,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c&quot; %&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   2:</span> <span style="BACKGROUND-COLOR:#ffff00;">&lt;%@ Register Tagprefix=&quot;SharePointWebControls&quot; Namespace=&quot;Microsoft.SharePoint.WebControls&quot; Assembly=&quot;Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot; %&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   3:</span> <span style="BACKGROUND-COLOR:#ffff00;">&lt;%@ Register Tagprefix=&quot;WebPartPages&quot; Namespace=&quot;Microsoft.SharePoint.WebPartPages&quot; Assembly=&quot;Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot; %&gt;</span> </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   4:</span> <span style="BACKGROUND-COLOR:#ffff00;">&lt;%@ Register Tagprefix=&quot;PublishingWebControls&quot; Namespace=&quot;Microsoft.SharePoint.Publishing.WebControls&quot; Assembly=&quot;Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot; %&gt;</span> </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   5:</span> <span style="BACKGROUND-COLOR:#ffff00;">&lt;%@ Register Tagprefix=&quot;PublishingNavigation&quot; Namespace=&quot;Microsoft.SharePoint.Publishing.Navigation&quot; Assembly=&quot;Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot; %&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   6:</span> <span style="BACKGROUND-COLOR:#ffff00;">&lt;%@ Register Src=&quot;~/_controltemplates/AisHelloWorldControl.ascx&quot; TagName=&quot;AisHelloWorldControl&quot; TagPrefix=&quot;uc1&quot; %&gt;</span> </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   7:</span> <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">asp:Content</span> <span style="COLOR:#ff0000;">ID</span><span style="COLOR:#0000ff;">=&quot;Content2&quot;</span> <span style="COLOR:#ff0000;">ContentPlaceholderID</span><span style="COLOR:#0000ff;">=&quot;PlaceHolderAdditionalPageHead&quot;</span> <span style="COLOR:#ff0000;">runat</span><span style="COLOR:#0000ff;">=&quot;server&quot;</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   8:</span>     <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">SharePointWebControls:CssRegistration</span> <span style="COLOR:#ff0000;">ID</span><span style="COLOR:#0000ff;">=&quot;CssRegistration1&quot;</span> <span style="COLOR:#ff0000;">name</span><span style="COLOR:#0000ff;">=&quot;&lt;% $SPUrl:~sitecollection/Style Library/~language/Core Styles/rca.css %&gt;&quot;</span> <span style="COLOR:#ff0000;">runat</span><span style="COLOR:#0000ff;">=&quot;server&quot;</span><span style="COLOR:#0000ff;">/&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   9:</span> <span style="COLOR:#0000ff;">&lt;/</span><span style="COLOR:#800000;">asp:Content</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  10:</span> <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">asp:Content</span> <span style="COLOR:#ff0000;">ID</span><span style="COLOR:#0000ff;">=&quot;Content3&quot;</span> <span style="COLOR:#ff0000;">ContentPlaceholderID</span><span style="COLOR:#0000ff;">=&quot;PlaceHolderPageTitle&quot;</span> <span style="COLOR:#ff0000;">runat</span><span style="COLOR:#0000ff;">=&quot;server&quot;</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  11:</span>      Travel List</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  12:</span> <span style="COLOR:#0000ff;">&lt;/</span><span style="COLOR:#800000;">asp:Content</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  13:</span> <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">asp:Content</span> <span style="COLOR:#ff0000;">ID</span><span style="COLOR:#0000ff;">=&quot;Content4&quot;</span> <span style="COLOR:#ff0000;">ContentPlaceholderID</span><span style="COLOR:#0000ff;">=&quot;PlaceHolderPageTitleInTitleArea&quot;</span> <span style="COLOR:#ff0000;">runat</span><span style="COLOR:#0000ff;">=&quot;server&quot;</span><span style="COLOR:#0000ff;">&gt;&lt;/</span><span style="COLOR:#800000;">asp:Content</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  14:</span> <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">asp:Content</span> <span style="COLOR:#ff0000;">ID</span><span style="COLOR:#0000ff;">=&quot;Content5&quot;</span> <span style="COLOR:#ff0000;">ContentPlaceHolderId</span><span style="COLOR:#0000ff;">=&quot;PlaceHolderTitleBreadcrumb&quot;</span> <span style="COLOR:#ff0000;">runat</span><span style="COLOR:#0000ff;">=&quot;server&quot;</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  15:</span>     <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">div</span> <span style="COLOR:#ff0000;">class</span><span style="COLOR:#0000ff;">=&quot;breadcrumb&quot;</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  16:</span>         <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">asp:SiteMapPath</span> <span style="COLOR:#ff0000;">ID</span><span style="COLOR:#0000ff;">=&quot;siteMapPath&quot;</span> <span style="COLOR:#ff0000;">Runat</span><span style="COLOR:#0000ff;">=&quot;server&quot;</span> <span style="COLOR:#ff0000;">SiteMapProvider</span><span style="COLOR:#0000ff;">=&quot;CurrentNavSiteMapProviderNoEncode&quot;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  17:</span>             <span style="COLOR:#ff0000;">RenderCurrentNodeAsLink</span><span style="COLOR:#0000ff;">=&quot;false&quot;</span> <span style="COLOR:#ff0000;">SkipLinkText</span><span style="COLOR:#0000ff;">=&quot;&quot;</span> <span style="COLOR:#ff0000;">CurrentNodeStyle-CssClass</span><span style="COLOR:#0000ff;">=&quot;breadcrumbCurrent&quot;</span> <span style="COLOR:#ff0000;">NodeStyle-CssClass</span><span style="COLOR:#0000ff;">=&quot;ms-sitemapdirectional&quot;</span><span style="COLOR:#0000ff;">/&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  18:</span>     <span style="COLOR:#0000ff;">&lt;/</span><span style="COLOR:#800000;">div</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  19:</span> <span style="COLOR:#0000ff;">&lt;/</span><span style="COLOR:#800000;">asp:Content</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  20:</span> <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">asp:Content</span> <span style="COLOR:#ff0000;">ID</span><span style="COLOR:#0000ff;">=&quot;Content6&quot;</span> <span style="COLOR:#ff0000;">ContentPlaceholderID</span><span style="COLOR:#0000ff;">=&quot;PlaceHolderMain&quot;</span> <span style="COLOR:#ff0000;">runat</span><span style="COLOR:#0000ff;">=&quot;server&quot;</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  21:</span>         <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">uc1:AisHelloWorldControl</span> <span style="COLOR:#ff0000;">ID</span><span style="COLOR:#0000ff;">=&quot;ucMain&quot;</span> <span style="COLOR:#ff0000;">runat</span><span style="COLOR:#0000ff;">=&quot;server&quot;</span> <span style="COLOR:#0000ff;">/&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  22:</span> <span style="COLOR:#0000ff;">&lt;/</span><span style="COLOR:#800000;">asp:Content</span><span style="COLOR:#0000ff;">&gt;</span></pre>
</div>
</div>
<p><u>The Feature</u></p>
<p>The feature consisted of two components:&nbsp; the file modules used to deploy the layouts to the target site, and the feature activation code which we used to provision the pages (more on that in a bit). Chris O&#39;Brien has a great <a href="http://sharepointnutsandbolts.blogspot.com/2007/04/deploying-master-pages-and-page-layouts.html">post</a> as part of his series on deploying SharePoint artifacts as features that really helped to guide the way on this and explain some of the peculiarities.&nbsp; Here&#39;s a snippet from our ElementManifest showing how to package a single page layout:</p>
<div style="BORDER-RIGHT:gray 1px solid;PADDING-RIGHT:4px;BORDER-TOP:gray 1px solid;PADDING-LEFT:4px;FONT-SIZE:8pt;PADDING-BOTTOM:4px;MARGIN:20px 0px 10px;OVERFLOW:auto;BORDER-LEFT:gray 1px solid;WIDTH:580px;CURSOR:text;MAX-HEIGHT:200px;LINE-HEIGHT:12pt;PADDING-TOP:4px;BORDER-BOTTOM:gray 1px solid;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BACKGROUND-COLOR:#f4f4f4;">
<div style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;">
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   1:</span> <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">Elements</span> <span style="COLOR:#ff0000;">xmlns</span><span style="COLOR:#0000ff;">=&quot;http://schemas.microsoft.com/sharepoint/&quot;</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   2:</span>     <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">Module</span> <span style="COLOR:#ff0000;">Name</span><span style="COLOR:#0000ff;">=&quot;AisCustomPageLayouts&quot;</span> <span style="COLOR:#ff0000;">Url</span><span style="COLOR:#0000ff;">=&quot;_catalogs/masterpage&quot;</span> <span style="COLOR:#ff0000;">Path</span><span style="COLOR:#0000ff;">=&quot;.&quot;</span> <span style="COLOR:#ff0000;">RootWebOnly</span><span style="COLOR:#0000ff;">=&quot;TRUE&quot;</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   3:</span>         <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">File</span> <span style="COLOR:#ff0000;">Url</span><span style="COLOR:#0000ff;">=&quot;AisHome.aspx&quot;</span> <span style="COLOR:#ff0000;">Path</span><span style="COLOR:#0000ff;">=&quot;AisHome.aspx&quot;</span> <span style="COLOR:#ff0000;">Type</span><span style="COLOR:#0000ff;">=&quot;GhostableInLibrary&quot;</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   4:</span>             <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">Property</span> <span style="COLOR:#ff0000;">Name</span><span style="COLOR:#0000ff;">=&quot;Title&quot;</span> <span style="COLOR:#ff0000;">Value</span><span style="COLOR:#0000ff;">=&quot;Travel System Default Page&quot;</span> <span style="COLOR:#0000ff;">/&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   5:</span>             <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">Property</span> <span style="COLOR:#ff0000;">Name</span><span style="COLOR:#0000ff;">=&quot;ContentType&quot;</span> <span style="COLOR:#ff0000;">Value</span><span style="COLOR:#0000ff;">=&quot;$Resources:cmscore,contenttype_pagelayout_name;&quot;</span> <span style="COLOR:#0000ff;">/&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   6:</span>             <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">Property</span> <span style="COLOR:#ff0000;">Name</span><span style="COLOR:#0000ff;">=&quot;PublishingPreviewImage&quot;</span> <span style="COLOR:#ff0000;">Value</span><span style="COLOR:#0000ff;">=&quot;~~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;/Preview Images/WelcomeSplash.png, ~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;/Preview Images/WelcomeSplash.png&quot;</span> <span style="COLOR:#0000ff;">/&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   7:</span>             <span style="COLOR:#0000ff;">&lt;</span><span style="COLOR:#800000;">Property</span> <span style="COLOR:#ff0000;">Name</span><span style="COLOR:#0000ff;">=&quot;PublishingAssociatedContentType&quot;</span> <span style="COLOR:#ff0000;">Value</span><span style="COLOR:#0000ff;">=&quot;;#Page;#0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF39;#&quot;</span><span style="COLOR:#0000ff;">/&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   8:</span>         <span style="COLOR:#0000ff;">&lt;/</span><span style="COLOR:#800000;">File</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   9:</span>     <span style="COLOR:#0000ff;">&lt;/</span><span style="COLOR:#800000;">Module</span><span style="COLOR:#0000ff;">&gt;</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  10:</span> <span style="COLOR:#0000ff;">&lt;/</span><span style="COLOR:#800000;">Elements</span><span style="COLOR:#0000ff;">&gt;</span></pre>
</div>
</div>
<p><u></u></p>
<p>The idea here was to create a one shot deployment, so we aimed at eliminating as many manual steps as possible via some FeatureReceiver code.&nbsp; The following snippet shows how we created the system&#39;s own subsite&nbsp; and&nbsp; pages.&nbsp; You&#39;ll also notice that the code strips security permissions from the custom page layouts.&nbsp; This was done to prevent the custom page layouts from showing up as options on the &#39;Create Page&#39; page.&nbsp; Wouldn&#39;t want anyone hacking our system by creating duplicate pages outside of the locked-down site&#8230;&nbsp; The snippet is kinda long and unorganized (like this post), so let me know if you need any clarification on what I&#39;ve got here.</p>
<div style="BORDER-RIGHT:gray 1px solid;PADDING-RIGHT:4px;BORDER-TOP:gray 1px solid;PADDING-LEFT:4px;FONT-SIZE:8pt;PADDING-BOTTOM:4px;MARGIN:20px 0px 10px;OVERFLOW:auto;BORDER-LEFT:gray 1px solid;WIDTH:580px;CURSOR:text;MAX-HEIGHT:200px;LINE-HEIGHT:12pt;PADDING-TOP:4px;BORDER-BOTTOM:gray 1px solid;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BACKGROUND-COLOR:#f4f4f4;">
<div style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;">
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   1:</span> <span style="COLOR:#0000ff;">public</span> <span style="COLOR:#0000ff;">override</span> <span style="COLOR:#0000ff;">void</span> FeatureActivated(SPFeatureReceiverProperties properties)</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   2:</span> {</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   3:</span>     <span style="COLOR:#0000ff;">try</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   4:</span>     {</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   5:</span>         <span style="COLOR:#0000ff;">using</span> (SPWeb web = ((SPSite)properties.Feature.Parent).OpenWeb())</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   6:</span>         {</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   7:</span>             <span style="COLOR:#008000;">//create the system subsite, its groups, and pages.</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   8:</span>             CreateSiteAndPages(web);</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">   9:</span>&nbsp; </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  10:</span>             <span style="COLOR:#008000;">//strip perm&#39;s on layouts so that regular content authors/editors cannot create instances of our custom page layouts</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  11:</span>             <span style="COLOR:#008000;">//(if permission has been removed the page won&#39;t show up in the CreatePage list of layouts.</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  12:</span>             StripLayoutPermissions(web);</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  13:</span>         }</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  14:</span>     }</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  15:</span>     <span style="COLOR:#0000ff;">catch</span> (Exception e)</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  16:</span>     {</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  17:</span>         System.Diagnostics.EventLog.WriteEntry(<span style="COLOR:#0000ff;">this</span>.ToString(), <span style="COLOR:#006080;">&quot;An error occurred during the FeatureActivated event.&quot;</span> +</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  18:</span>             Environment.NewLine + e.ToString(), System.Diagnostics.EventLogEntryType.Error);</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  19:</span>     }</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  20:</span> }</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  21:</span>&nbsp; </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  22:</span> <span style="COLOR:#0000ff;">private</span> <span style="COLOR:#0000ff;">void</span> CreateSiteAndPages(SPWeb web)</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  23:</span> {</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  24:</span>     <span style="COLOR:#008000;">//create the system site collection.</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  25:</span>     SPWeb aisSystemWeb = web.Webs.Add(@SiteUrl,SiteName, <span style="COLOR:#006080;">&quot;AIS System Site Architecture Prototype&quot;</span>, Convert.ToUInt16(1033), web.WebTemplate, <span style="COLOR:#0000ff;">true</span>, <span style="COLOR:#0000ff;">false</span>);</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  26:</span>&nbsp; </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  27:</span>     <span style="COLOR:#008000;">//create site groups (if they don&#39;t already exist) and assign proper permissions.</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  28:</span>     CreateAllSiteGroups(web, aisSystemWeb );</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  29:</span>&nbsp; </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  30:</span>     PublishingWeb aisSystemPublishingWeb = PublishingWeb.GetPublishingWeb(aisSystemWeb );</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  31:</span>     <span style="COLOR:#008000;">//create the root level pages. </span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  32:</span>     CreateAndPublishPage(aisSystemPublishingWeb , <span style="COLOR:#006080;">&quot;AisHome.aspx&quot;</span>, <span style="COLOR:#006080;">&quot;AIS System Home&quot;</span>, <span style="COLOR:#0000ff;">true</span>);    </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  33:</span> }</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  34:</span>&nbsp; </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  35:</span> <span style="COLOR:#008000;">//create a single publishing page for the specified page layout.</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  36:</span> <span style="COLOR:#0000ff;">private</span> PublishingPage CreateAndPublishPage(PublishingWeb publishingWeb, <span style="COLOR:#0000ff;">string</span> layoutName, <span style="COLOR:#0000ff;">string</span> pageName, <span style="COLOR:#0000ff;">string</span> title, <span style="COLOR:#0000ff;">bool</span> inludeInNav)</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  37:</span> {</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  38:</span>     <span style="COLOR:#008000;">//get a list containing all my custom page layouts</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  39:</span>     Dictionary&lt;<span style="COLOR:#0000ff;">string</span>, PageLayout&gt; layouts  = GetPageLayouts(publishingWeb);</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  40:</span>&nbsp; </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  41:</span>     <span style="COLOR:#0000ff;">if</span> (!layouts.ContainsKey(layoutName.ToUpper()))</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  42:</span>     {</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  43:</span>         System.Diagnostics.EventLog.WriteEntry(<span style="COLOR:#0000ff;">this</span>.ToString(), String.Format(<span style="COLOR:#006080;">&quot;Unable to create page because the layout &#39;{0}&#39; was not found.&quot;</span>, layoutName), </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  44:</span>             System.Diagnostics.EventLogEntryType.Error);</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  45:</span>         <span style="COLOR:#0000ff;">return</span> <span style="COLOR:#0000ff;">null</span>;</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  46:</span>     }</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  47:</span>&nbsp; </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  48:</span>     PageLayout layout = layouts[layoutName.ToUpper()];</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  49:</span>&nbsp; </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  50:</span>     <span style="COLOR:#0000ff;">if</span> (pageName == <span style="COLOR:#0000ff;">null</span>)</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  51:</span>         pageName = layoutName;</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  52:</span>&nbsp; </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  53:</span>     PublishingPage page = publishingWeb.GetPublishingPages().Add(pageName, layout);</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  54:</span>     page.Title = title;</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  55:</span>     page.IncludeInCurrentNavigation = inludeInNav;</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  56:</span>     page.IncludeInGlobalNavigation = <span style="COLOR:#0000ff;">false</span>;</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  57:</span>     page.Update();</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  58:</span>     page.CheckIn(<span style="COLOR:#006080;">&quot;&quot;</span>);</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  59:</span>     page.ListItem.File.Publish(<span style="COLOR:#006080;">&quot;&quot;</span>);</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  60:</span>     <span style="COLOR:#0000ff;">try</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  61:</span>     {</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  62:</span>         page.ListItem.File.Approve(<span style="COLOR:#006080;">&quot;&quot;</span>);</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  63:</span>     }</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  64:</span>     <span style="COLOR:#0000ff;">catch</span> (SPException) { }<span style="COLOR:#008000;">//not all sites require content approval, but I don&#39;t know how to check for this <img src='http://vspug.com/jessefitz/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  65:</span>     <span style="COLOR:#0000ff;">return</span> page;</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  66:</span> }</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  67:</span>&nbsp; </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  68:</span> <span style="COLOR:#0000ff;">private</span>  Dictionary&lt;<span style="COLOR:#0000ff;">string</span>, PageLayout&gt; GetPageLayouts(PublishingWeb web)</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  69:</span> {</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  70:</span>     <span style="COLOR:#008000;">//get a (hardcoded) list of all my custom page layout names.</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  71:</span>     Dictionary&lt;<span style="COLOR:#0000ff;">string</span>, <span style="COLOR:#0000ff;">string</span>&gt; allLayoutNames = GetPageLayoutNameLookupList();</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  72:</span>     Dictionary&lt;<span style="COLOR:#0000ff;">string</span>, PageLayout&gt; layouts = <span style="COLOR:#0000ff;">new</span> Dictionary&lt;<span style="COLOR:#0000ff;">string</span>, PageLayout&gt;();</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  73:</span>     <span style="COLOR:#008000;">//this is the content type id for the &#39;Page&#39; content type</span></pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  74:</span>     <span style="COLOR:#0000ff;">const</span> <span style="COLOR:#0000ff;">string</span> PageLayoutContentId = <span style="COLOR:#006080;">&quot;0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF39&quot;</span>;</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  75:</span>     SPContentTypeId pageContentTypeId = <span style="COLOR:#0000ff;">new</span> SPContentTypeId(PageLayoutContentId);</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  76:</span>&nbsp; </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  77:</span>     <span style="COLOR:#0000ff;">foreach</span> (PageLayout layout <span style="COLOR:#0000ff;">in</span> web.GetAvailablePageLayouts(pageContentTypeId))</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  78:</span>     {</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  79:</span>         <span style="COLOR:#0000ff;">if</span>( allLayoutNames.ContainsKey(layout.Name.ToUpper()))</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  80:</span>             layouts.Add(layout.Name.ToUpper(), layout);</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  81:</span>     }</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  82:</span>&nbsp; </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  83:</span>     <span style="COLOR:#0000ff;">return</span> layouts;</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  84:</span> }</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  85:</span>&nbsp; </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  86:</span> <span style="COLOR:#0000ff;">private</span> <span style="COLOR:#0000ff;">void</span> StripLayoutPermissions(SPWeb web)</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  87:</span> {</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  88:</span>     Dictionary&lt;<span style="COLOR:#0000ff;">string</span>, <span style="COLOR:#0000ff;">string</span>&gt; allLayoutNames = GetPageLayoutNameLookupList();</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  89:</span>     PublishingWeb pubWeb = PublishingWeb.GetPublishingWeb(web);</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  90:</span>     SPContentTypeId pageContentTypeId = <span style="COLOR:#0000ff;">new</span> SPContentTypeId(PageLayoutContentId);</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  91:</span>&nbsp; </pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  92:</span>     <span style="COLOR:#0000ff;">foreach</span> (PageLayout layout <span style="COLOR:#0000ff;">in</span> pubWeb.GetAvailablePageLayouts(pageContentTypeId))</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  93:</span>     {</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  94:</span>         <span style="COLOR:#0000ff;">if</span> (allLayoutNames.ContainsKey(layout.Name.ToUpper()))</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  95:</span>         {</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  96:</span>             SPListItem item = layout.ListItem;</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  97:</span>             item.BreakRoleInheritance(<span style="COLOR:#0000ff;">false</span>);</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  98:</span>         }</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;">  99:</span>     }</pre>
<pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:consolas, &#39;Courier New&#39;, courier, monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"><span style="COLOR:#606060;"> 100:</span> }</pre>
</div>
</div>
<p><u>Using the Ajax Control Toolkit</u></p>
<p>I sure as&#8230;. uhm&#8230;. wouldn&#39;t be the first guy to blog about the challenges and hoops you must jump through to get the toolkit working in SharePoint, so I won&#39;t blather on about it.&nbsp; I will say, however, that there are definitely some useful posts out there &#8211; <a href="http://sharepoint.microsoft.com/blogs/mike/Lists/Posts/Post.aspx?ID=3">this post</a> by Mike Ammerlaan being the one that we found most detailed and useful.&nbsp; </p>
<p>The biggest gotcha we faced was using the <em>&lt;asp:ScriptManager&gt;.&nbsp; </em>Each of our custom page layouts consisted of one custom User Control.&nbsp; That User Control registered the required single instance of the ScriptManager.&nbsp; This worked just fine until we came to integration testing, at which point we realized the portal master page was also the Ajax Control Toolkit, and was registering another ScriptManager on the page.&nbsp; It took us awhile (and a bunch of &#39;Unknown Error&#39; messages) to chase this down, but in the end we decided to remove the ScriptManager from the user controls and count on the master page always registering the required single instance.</p>
<p>There are some obvious problems with this approach.&nbsp; Ideally, I would have preferred to make the user controls smart&#8230; have them figure out if the ScriptManager already existed in the page, and if not, do so.&nbsp; I had no luck with coding something like this, so please chime in here if anyone out there has.&nbsp; The real problem here is that using the custom page layouts outside of our portal (which uses our custom master page) will always require some type of additional customization/manual configuration.&nbsp; Yuck.</p>
<p>Well&#8230; that turned out being much longer than I had originally anticipated, and I feel like there are things I didn&#39;t cover that I should have.&nbsp; Feedback please!</p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/jessefitz/2008/01/24/integrating-an-asp-net-application-into-our-sharepoint-portal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint Search &#8211; Only 3 Items in the Index???</title>
		<link>http://vspug.com/jessefitz/2008/01/18/sharepoint-search-only-3-items-in-the-index/</link>
		<comments>http://vspug.com/jessefitz/2008/01/18/sharepoint-search-only-3-items-in-the-index/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 13:55:00 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[I&#39;m trying to scope out some work for a potential project that requires a fairly robust search component.&#160; Mind you, I&#39;ve done a whole lot of nothing with SharePoint Search, so I&#39;m having to explore things as I come up with an approach.&#160; I set up a new Content Source for crawling my little test [...]]]></description>
			<content:encoded><![CDATA[<p>I&#39;m trying to scope out some work for a potential project that requires a fairly robust search component.&nbsp; Mind you, I&#39;ve done a whole lot of nothing with SharePoint Search, so I&#39;m having to explore things as I come up with an approach.&nbsp; I set up a new Content Source for crawling my little test site site and ran a full crawl, the result of which was 3 items in the index.&nbsp; 3 items&#8230;. hmmm&#8230;&nbsp; No crawl errors, no errors in the event log, but no results for any of my searches.&nbsp; Weird.&nbsp; Pounding-my-head-on-the-table-after-3-hours-of-trying-to-figure-this-out kinda weird.</p>
<p>Eventually I stumbled across the issue.&nbsp; I had used &#39;localhost&#39; instead of my server name in the start address of my content source.&nbsp; Stupid me.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/jessefitz/2008/01/18/sharepoint-search-only-3-items-in-the-index/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Do I Welcome You or Me?</title>
		<link>http://vspug.com/jessefitz/2008/01/10/do-i-welcome-you-or-me/</link>
		<comments>http://vspug.com/jessefitz/2008/01/10/do-i-welcome-you-or-me/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 12:55:00 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[My first post and my first public blog&#8230;I guess I&#39;ll welcome us both.
Hope to use this as a resource and repository for myself and the community in general.&#160; I don&#39;t have a history of keeping up with these kind of things too well, but I&#39;ll do my best  
]]></description>
			<content:encoded><![CDATA[<p>My first post <em>and</em> my first public blog&#8230;I guess I&#39;ll welcome us both.</p>
<p>Hope to use this as a resource and repository for myself and the community in general.&nbsp; I don&#39;t have a history of keeping up with these kind of things too well, but I&#39;ll do my best <img src='http://vspug.com/jessefitz/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/jessefitz/2008/01/10/do-i-welcome-you-or-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
