<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:posterous="http://posterous.com/help/rss/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Creative SharePoint</title>
    <link>http://creativesharepoint.posterous.com</link>
    <description>Adventures in SharePoint development</description>
    <generator>posterous.com</generator>
    <link xmlns="http://www.w3.org/2005/Atom" type="application/json" href="http://posterous.com/api/sup_update#54f53f5f1" rel="http://api.friendfeed.com/2008/03#sup" />
    
    
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CreativeSharepoint" /><feedburner:info uri="creativesharepoint" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://posterous.superfeedr.com/" /><item>
      <pubDate>Fri, 08 Jul 2011 14:55:19 -0700</pubDate>
      <title>A Link-less Lookup Field</title>
      <link>http://feedproxy.google.com/~r/CreativeSharepoint/~3/KNPtUF9DT5k/a-link-less-lookup-field</link>
      <guid isPermaLink="false">http://creativesharepoint.posterous.com/a-link-less-lookup-field</guid>
      <description>&lt;p&gt;
	&lt;p&gt;This week I&amp;rsquo;ve been scouring the web to figure out how to display a lookup
field on a page layout as text, without the automatic link to the lookup
item.&lt;/p&gt;

&lt;p&gt;First, you have to add the field you want as an additional field on the
lookup. Click on into the list settings, then the lookup field settings, and
add the field you want to display sans link. (for me it was the same field I
was looking up: the Title)&lt;/p&gt;

&lt;p&gt; [image: blog1.jpg]&lt;/p&gt;

&lt;p&gt;To make sure this works like you want it to, check the list settings. You
should now see a new column in your list titled something like
&amp;ldquo;LookupFieldName:Title&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;Next, you need to do a little URL encode magic to pull it into your page
layout. I would have never figured this out had it not been for Emerson
Bruce&amp;rsquo;s &lt;a href="http://bit.ly/py7JEL"&gt;helpful post&lt;/a&gt; on a feature that doesn&amp;rsquo;t seem
to be documented anywhere. So you just add this bit to your page layout.&lt;/p&gt;

&lt;p&gt;&lt;div class="data type-xml"&gt;
    
      &lt;table class="lines" cellspacing="0" cellpadding="0"&gt;
        &lt;tr&gt;
          &lt;td&gt;
            &lt;pre class="line_numbers"&gt;&lt;span rel="#L1" id="L1"&gt;1&lt;/span&gt;
&lt;/pre&gt;
          &lt;/td&gt;
          &lt;td width="100%"&gt;
            
              
                &lt;div class="highlight"&gt;&lt;pre /&gt;&lt;div class="line" id="LC1"&gt;&lt;span class="nt"&gt;&amp;lt;SharePointWebControls:ListItemProperty&lt;/span&gt; &lt;span class="na"&gt;ID=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;CustomListItemProperty1&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;Property=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;LookupFieldName_x003a_Title&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;runat=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
              
            
          &lt;/td&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
    
  &lt;/div&gt;&lt;/p&gt;

&lt;p&gt;Notice the &amp;ldquo;&lt;em&gt;x003a&lt;/em&gt;&amp;rdquo; in the Property attribute? That&amp;rsquo;s html speak for a
colon. So with that, you should have the title text without the link.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://creativesharepoint.posterous.com/a-link-less-lookup-field"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://creativesharepoint.posterous.com/a-link-less-lookup-field#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CreativeSharepoint/~4/KNPtUF9DT5k" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/572032/Seth.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/eK1nHcNdu1</posterous:profileUrl>
        <posterous:firstName>Seth</posterous:firstName>
        <posterous:lastName>Hein</posterous:lastName>
        <posterous:nickName>reallySeth</posterous:nickName>
        <posterous:displayName>Seth Hein</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="111" width="245" url="http://getfile9.posterous.com/getfile/files.posterous.com/creativesharepoint/aoChNcwF7qA55KUkF3y3yABAEvqEj18DxsE6PHSp5MP1CPetkpKOQnHreDpE/blog1.jpg">
        <media:thumbnail height="111" width="245" url="http://getfile9.posterous.com/getfile/files.posterous.com/creativesharepoint/aoChNcwF7qA55KUkF3y3yABAEvqEj18DxsE6PHSp5MP1CPetkpKOQnHreDpE/blog1.jpg" />
      </media:content>
    <feedburner:origLink>http://creativesharepoint.posterous.com/a-link-less-lookup-field</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 03 Jun 2010 07:42:12 -0700</pubDate>
      <title>Troubleshooting Delay Problems in a SharePoint Workflow</title>
      <link>http://feedproxy.google.com/~r/CreativeSharepoint/~3/i2lKtWFJrVY/troubleshooting-delay-problems-in-a-sharepoin</link>
      <guid isPermaLink="false">http://creativesharepoint.posterous.com/troubleshooting-delay-problems-in-a-sharepoin</guid>
      <description>&lt;p&gt;
	&lt;div class="posterous_bookmarklet_entry"&gt;
      &lt;blockquote class="posterous_short_quote"&gt;A workflow does not resume automatically when a delay activity is triggered in Windows SharePoint Services 3.0&lt;/blockquote&gt;

&lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://support.microsoft.com/kb/953630"&gt;support.microsoft.com&lt;/a&gt;&lt;/div&gt;
    &lt;p&gt;A very helpful KB article by Microsoft for getting workflows up and running again if they seem to freeze for too long after a delay activity.&lt;/p&gt;&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://creativesharepoint.posterous.com/troubleshooting-delay-problems-in-a-sharepoin"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://creativesharepoint.posterous.com/troubleshooting-delay-problems-in-a-sharepoin#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CreativeSharepoint/~4/i2lKtWFJrVY" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/572032/Seth.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/eK1nHcNdu1</posterous:profileUrl>
        <posterous:firstName>Seth</posterous:firstName>
        <posterous:lastName>Hein</posterous:lastName>
        <posterous:nickName>reallySeth</posterous:nickName>
        <posterous:displayName>Seth Hein</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://creativesharepoint.posterous.com/troubleshooting-delay-problems-in-a-sharepoin</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 24 May 2010 10:03:00 -0700</pubDate>
      <title>Adding Web Parts to a Page Through a Feature</title>
      <link>http://feedproxy.google.com/~r/CreativeSharepoint/~3/9zxbsPUryQs/adding-web-parts-to-a-page-through-a-feature</link>
      <guid isPermaLink="false">http://creativesharepoint.posterous.com/adding-web-parts-to-a-page-through-a-feature</guid>
      <description>&lt;p&gt;
	&lt;p&gt;A couple weeks ago I needed to create a custom site definition to be reused by international offices at my company. After doing a bit of &lt;a href="http://www.andrewconnell.com/blog/archive/2008/12/06/Using-a-Minimal-Publishing-Site-Definition-in-the-field.aspx" target="_blank"&gt;research&lt;/a&gt;, and consulting with the SharePoint admin guru &lt;a href="http://twitter.com/jdwade" target="_blank"&gt;J.D. Wade&lt;/a&gt;, I decided to create a minimal site definition and do all of the heavy lifting through custom features that would be stapled to the site definition.&lt;/p&gt;
&lt;p&gt;When I go, I go all out. So when I decided to go minimal on the site definition, it was going to be all or nothing. In general, this wasn't a problem. I only needed to create a few lists and apply some custom content types to them. The trick came when I found I needed to add web parts to the default page, and also to a couple of sub pages. You can do this without too much trouble in the onet.xml of a site definition. But like I said, I'm no cheater. After a lot of searching, I found &lt;a href="http://vspug.com/michael/2009/05/25/manage-webparts-of-page-layouts-through-a-feature-resolving-the-quot-alluserswebpart-quot-pain/" target="_blank"&gt;these&lt;/a&gt; &lt;a href="http://vspug.com/michael/2009/05/25/manage-webparts-of-page-layouts-through-a-feature-resolving-the-quot-alluserswebpart-quot-pain-part-2/" target="_blank"&gt;two&lt;/a&gt; posts which gave me the basics.&lt;/p&gt;
&lt;p&gt;However, this solution limited me to only adding web parts that have .webpart or .dwp definitions. I also needed to add a few list view web parts, so I added this functionality to the code.&lt;/p&gt;
&lt;p&gt;Enough of me rambling on, I'm sure you're just dying to see how this beauty works.  Well...by all means, allow me.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;The Config File&lt;/h2&gt;
&lt;p&gt;Here's where it all starts. In here you specify the relative path to the page, and inside each page element, there are web part elements. In this example you'll see examples of web parts deployed by a definition file, and also a list view web part.&lt;/p&gt;
&lt;p&gt;&lt;div class="data type-xml"&gt;
    
      &lt;table class="lines" cellspacing="0" cellpadding="0"&gt;
        &lt;tr&gt;
          &lt;td&gt;
            &lt;pre class="line_numbers"&gt;&lt;span rel="#L1" id="L1"&gt;1&lt;/span&gt;
&lt;span rel="#L2" id="L2"&gt;2&lt;/span&gt;
&lt;span rel="#L3" id="L3"&gt;3&lt;/span&gt;
&lt;span rel="#L4" id="L4"&gt;4&lt;/span&gt;
&lt;span rel="#L5" id="L5"&gt;5&lt;/span&gt;
&lt;span rel="#L6" id="L6"&gt;6&lt;/span&gt;
&lt;span rel="#L7" id="L7"&gt;7&lt;/span&gt;
&lt;span rel="#L8" id="L8"&gt;8&lt;/span&gt;
&lt;span rel="#L9" id="L9"&gt;9&lt;/span&gt;
&lt;span rel="#L10" id="L10"&gt;10&lt;/span&gt;
&lt;/pre&gt;
          &lt;/td&gt;
          &lt;td width="100%"&gt;
            
              
                &lt;div class="highlight"&gt;&lt;pre /&gt;&lt;div class="line" id="LC1"&gt;&lt;span class="cp"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC2"&gt;&lt;span class="nt"&gt;&amp;lt;Configuration&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC3"&gt;&amp;nbsp;&amp;nbsp;&lt;span class="nt"&gt;&amp;lt;Page&lt;/span&gt; &lt;span class="na"&gt;FileName=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;pages/default.aspx&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nt"&gt;&amp;lt;WebPart&lt;/span&gt; &lt;span class="na"&gt;Id=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;ZoneId=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;Index=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;FileName=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Example.webpart&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;Type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Definition&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nt"&gt;&amp;lt;WebPart&lt;/span&gt; &lt;span class="na"&gt;Id=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;ZoneId=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Right&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;Index=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;FileName=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;Type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;ListView&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;ListName=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Announcements&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC6"&gt;&amp;nbsp;&amp;nbsp;&lt;span class="nt"&gt;&amp;lt;/Page&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC7"&gt;&amp;nbsp;&amp;nbsp;&lt;span class="nt"&gt;&amp;lt;Page&lt;/span&gt; &lt;span class="na"&gt;FileName=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;pages/AnotherPage.aspx&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC8"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nt"&gt;&amp;lt;WebPart&lt;/span&gt; &lt;span class="na"&gt;Id=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;ZoneId=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Main&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;Index=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;FileName=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Example.webpart&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;Type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Definition&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC9"&gt;&amp;nbsp;&amp;nbsp;&lt;span class="nt"&gt;&amp;lt;/Page&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC10"&gt;&lt;span class="nt"&gt;&amp;lt;/Configuration&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
              
            
          &lt;/td&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
    
  &lt;/div&gt;&lt;/p&gt;
&lt;h2&gt;The Code&lt;/h2&gt;
&lt;p&gt;Here's the fun part. As I said, most of the code I pulled from &lt;a href="http://vspug.com/michael/2009/05/25/manage-webparts-of-page-layouts-through-a-feature-resolving-the-quot-alluserswebpart-quot-pain/" target="_blank"&gt;these&lt;/a&gt; &lt;a href="http://vspug.com/michael/2009/05/25/manage-webparts-of-page-layouts-through-a-feature-resolving-the-quot-alluserswebpart-quot-pain-part-2/" target="_blank"&gt;posts&lt;/a&gt;. I did clean up a few things (although I am finding it hard to remember what) and I added the option to add a list view web part. Actually, it's not too bad. We are basically looping through some xpath to pull out all the necessary values from the configuration.xml file, then creating the appropriate web part. As you'll notice near the end, I am still planning on adding the ability to add a site members web part if I can ever figure it out. Creating one of those guys in the object model isn't documented very well from what I've seen.&lt;/p&gt;
&lt;p&gt;&lt;div class="data type-c"&gt;
    
      &lt;table class="lines" cellspacing="0" cellpadding="0"&gt;
        &lt;tr&gt;
          &lt;td&gt;
            &lt;pre class="line_numbers"&gt;&lt;span rel="#L1" id="L1"&gt;1&lt;/span&gt;
&lt;span rel="#L2" id="L2"&gt;2&lt;/span&gt;
&lt;span rel="#L3" id="L3"&gt;3&lt;/span&gt;
&lt;span rel="#L4" id="L4"&gt;4&lt;/span&gt;
&lt;span rel="#L5" id="L5"&gt;5&lt;/span&gt;
&lt;span rel="#L6" id="L6"&gt;6&lt;/span&gt;
&lt;span rel="#L7" id="L7"&gt;7&lt;/span&gt;
&lt;span rel="#L8" id="L8"&gt;8&lt;/span&gt;
&lt;span rel="#L9" id="L9"&gt;9&lt;/span&gt;
&lt;span rel="#L10" id="L10"&gt;10&lt;/span&gt;
&lt;span rel="#L11" id="L11"&gt;11&lt;/span&gt;
&lt;span rel="#L12" id="L12"&gt;12&lt;/span&gt;
&lt;span rel="#L13" id="L13"&gt;13&lt;/span&gt;
&lt;span rel="#L14" id="L14"&gt;14&lt;/span&gt;
&lt;span rel="#L15" id="L15"&gt;15&lt;/span&gt;
&lt;span rel="#L16" id="L16"&gt;16&lt;/span&gt;
&lt;span rel="#L17" id="L17"&gt;17&lt;/span&gt;
&lt;span rel="#L18" id="L18"&gt;18&lt;/span&gt;
&lt;span rel="#L19" id="L19"&gt;19&lt;/span&gt;
&lt;span rel="#L20" id="L20"&gt;20&lt;/span&gt;
&lt;span rel="#L21" id="L21"&gt;21&lt;/span&gt;
&lt;span rel="#L22" id="L22"&gt;22&lt;/span&gt;
&lt;span rel="#L23" id="L23"&gt;23&lt;/span&gt;
&lt;span rel="#L24" id="L24"&gt;24&lt;/span&gt;
&lt;span rel="#L25" id="L25"&gt;25&lt;/span&gt;
&lt;span rel="#L26" id="L26"&gt;26&lt;/span&gt;
&lt;span rel="#L27" id="L27"&gt;27&lt;/span&gt;
&lt;span rel="#L28" id="L28"&gt;28&lt;/span&gt;
&lt;span rel="#L29" id="L29"&gt;29&lt;/span&gt;
&lt;span rel="#L30" id="L30"&gt;30&lt;/span&gt;
&lt;span rel="#L31" id="L31"&gt;31&lt;/span&gt;
&lt;span rel="#L32" id="L32"&gt;32&lt;/span&gt;
&lt;span rel="#L33" id="L33"&gt;33&lt;/span&gt;
&lt;span rel="#L34" id="L34"&gt;34&lt;/span&gt;
&lt;span rel="#L35" id="L35"&gt;35&lt;/span&gt;
&lt;span rel="#L36" id="L36"&gt;36&lt;/span&gt;
&lt;span rel="#L37" id="L37"&gt;37&lt;/span&gt;
&lt;span rel="#L38" id="L38"&gt;38&lt;/span&gt;
&lt;span rel="#L39" id="L39"&gt;39&lt;/span&gt;
&lt;span rel="#L40" id="L40"&gt;40&lt;/span&gt;
&lt;span rel="#L41" id="L41"&gt;41&lt;/span&gt;
&lt;span rel="#L42" id="L42"&gt;42&lt;/span&gt;
&lt;span rel="#L43" id="L43"&gt;43&lt;/span&gt;
&lt;span rel="#L44" id="L44"&gt;44&lt;/span&gt;
&lt;span rel="#L45" id="L45"&gt;45&lt;/span&gt;
&lt;span rel="#L46" id="L46"&gt;46&lt;/span&gt;
&lt;span rel="#L47" id="L47"&gt;47&lt;/span&gt;
&lt;span rel="#L48" id="L48"&gt;48&lt;/span&gt;
&lt;span rel="#L49" id="L49"&gt;49&lt;/span&gt;
&lt;span rel="#L50" id="L50"&gt;50&lt;/span&gt;
&lt;span rel="#L51" id="L51"&gt;51&lt;/span&gt;
&lt;span rel="#L52" id="L52"&gt;52&lt;/span&gt;
&lt;span rel="#L53" id="L53"&gt;53&lt;/span&gt;
&lt;span rel="#L54" id="L54"&gt;54&lt;/span&gt;
&lt;span rel="#L55" id="L55"&gt;55&lt;/span&gt;
&lt;span rel="#L56" id="L56"&gt;56&lt;/span&gt;
&lt;span rel="#L57" id="L57"&gt;57&lt;/span&gt;
&lt;span rel="#L58" id="L58"&gt;58&lt;/span&gt;
&lt;span rel="#L59" id="L59"&gt;59&lt;/span&gt;
&lt;/pre&gt;
          &lt;/td&gt;
          &lt;td width="100%"&gt;
            
              
                &lt;div class="highlight"&gt;&lt;pre /&gt;&lt;div class="line" id="LC1"&gt;&lt;span class="k"&gt;try&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC2"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;// Get the limitedWebPartManager of the page layout file.&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SPLimitedWebPartManager&lt;/span&gt; &lt;span class="n"&gt;wpManager&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;File&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GetLimitedWebPartManager&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;PersonalizationScope&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Shared&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC6"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;// cycle through each web part and get the different attributes&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC7"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;XPathNavigator&lt;/span&gt; &lt;span class="n"&gt;webPartConfiguration&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;pageLayoutConfiguration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;WebPart&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC8"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC9"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;errorMsg&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC10"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;webPartFilename&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webPartConfiguration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GetAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;FileName&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC11"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;webPartType&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webPartConfiguration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GetAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Type&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC12"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;webPartFilepath&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Definition&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RootDirectory&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;\\&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="n"&gt;webPartConfiguration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GetAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;FileName&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC13"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;webPartUniqueID&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webPartConfiguration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GetAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Id&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;ToLower&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC14"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;webPartZoneID&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webPartConfiguration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GetAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;ZoneId&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC15"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;webPartZoneIndex&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Convert&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ToInt32&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;webPartConfiguration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GetAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Index&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC16"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;// if the web part comes from a definition, open the .webpart or .dwp definition file&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC17"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;webPartType&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Definition&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC18"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC19"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;// Import the webpart into memory by loading the webpart definition file&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC20"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;FileStream&lt;/span&gt; &lt;span class="n"&gt;wpFileStream&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;FileStream&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;webPartFilepath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;FileMode&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Open&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC21"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;FileAccess&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Read&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC22"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;XmlTextReader&lt;/span&gt; &lt;span class="n"&gt;wpXmlReader&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;XmlTextReader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wpFileStream&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC23"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Web&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UI&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WebControls&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WebParts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WebPart&lt;/span&gt; &lt;span class="n"&gt;webPart&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;wpManager&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ImportWebPart&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wpXmlReader&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;out&lt;/span&gt; &lt;span class="n"&gt;errorMsg&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC24"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(!&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;IsNullOrEmpty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;errorMsg&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC25"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC26"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;ApplicationException&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC27"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Error importing webPart &amp;#39;{0}&amp;#39;: {1}&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;webPartFilename&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC28"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;errorMsg&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC29"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC30"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;// set the web part ID&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC31"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;webPart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webPartUniqueID&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC32"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;// add the web part to the web part manager&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC33"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;wpManager&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddWebPart&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;webPart&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;webPartZoneID&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;webPartZoneIndex&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC34"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC35"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;// if the web part is a list view part, add it&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC36"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="nf"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;webPartType&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;ListView&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC37"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC38"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;ListViewWebPart&lt;/span&gt; &lt;span class="n"&gt;webPart&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;ListViewWebPart&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC39"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;listName&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webPartConfiguration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GetAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;ListName&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC40"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;SPList&lt;/span&gt; &lt;span class="n"&gt;list&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;web&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Lists&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;listName&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC41"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;webPart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ListName&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ToString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;B&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;ToUpper&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC42"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;webPart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ZoneID&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webPartZoneID&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC43"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;wpManager&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddWebPart&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;webPart&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;webPartZoneID&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;webPartZoneIndex&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC44"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC45"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="nf"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;webPartType&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Members&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC46"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC47"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;// TODO: add code to create a site members web part and add it to the page&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC48"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC49"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC50"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC51"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;// Update the list item.&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC52"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Update&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC53"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;// Check in and publish the page layout.&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC54"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;fileOperationMessage&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Definition&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GetTitle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Threading&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Thread&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CurrentThread&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC55"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;CurrentCulture&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;: WebPart configuration.&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC56"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;File&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CheckIn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fileOperationMessage&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC57"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;File&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Publish&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fileOperationMessage&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC58"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC59"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
              
            
          &lt;/td&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
    
  &lt;/div&gt;&lt;/p&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;Make sure you add references to the web part definitions and the configuration.xml file in your feature file like so:&lt;/p&gt;
&lt;p&gt;&lt;div class="data type-xml"&gt;
    
      &lt;table class="lines" cellspacing="0" cellpadding="0"&gt;
        &lt;tr&gt;
          &lt;td&gt;
            &lt;pre class="line_numbers"&gt;&lt;span rel="#L1" id="L1"&gt;1&lt;/span&gt;
&lt;span rel="#L2" id="L2"&gt;2&lt;/span&gt;
&lt;span rel="#L3" id="L3"&gt;3&lt;/span&gt;
&lt;span rel="#L4" id="L4"&gt;4&lt;/span&gt;
&lt;span rel="#L5" id="L5"&gt;5&lt;/span&gt;
&lt;span rel="#L6" id="L6"&gt;6&lt;/span&gt;
&lt;/pre&gt;
          &lt;/td&gt;
          &lt;td width="100%"&gt;
            
              
                &lt;div class="highlight"&gt;&lt;pre /&gt;&lt;div class="line" id="LC1"&gt;&lt;span class="nt"&gt;&amp;lt;ElementManifests&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC2"&gt;&amp;nbsp;&amp;nbsp;&lt;span class="c"&gt;&amp;lt;!-- Configurations --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC3"&gt;&amp;nbsp;&amp;nbsp;&lt;span class="nt"&gt;&amp;lt;ElementFile&lt;/span&gt; &lt;span class="na"&gt;Location=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;configuration.xml&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC4"&gt;&amp;nbsp;&amp;nbsp;&lt;span class="c"&gt;&amp;lt;!-- WebParts --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC5"&gt;&amp;nbsp;&amp;nbsp;&lt;span class="nt"&gt;&amp;lt;ElementFile&lt;/span&gt; &lt;span class="na"&gt;Location=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Example.webpart&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC6"&gt;&lt;span class="nt"&gt;&amp;lt;/ElementManifests&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
              
            
          &lt;/td&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
    
  &lt;/div&gt;&lt;/p&gt;
&lt;p&gt;You can also grab the &lt;a href="http://gist.github.com/409421" target="_blank"&gt;full source&lt;/a&gt; of my .cs file referenced above if you'd like to use it on your own SharePoint site. Also if you are looking for example code of the minimal site definition from Andrew Connell's book, look &lt;a href="http://www.wrox.com/WileyCDA/WroxTitle/Professional-SharePoint-2007-Web-Content-Management-Development-Building-Publishing-Sites-with-Office-SharePoint-Server-2007.productCd-0470224754,descCd-DOWNLOAD.html" target="_blank"&gt;no further&lt;/a&gt; (it's in chapter 5 by the way).&lt;/p&gt;
&lt;h2&gt;Am I Crazy?&lt;/h2&gt;
&lt;p&gt;I do wonder if I'm taking this whole minimalist thing to an extreme. So I'll put the question to you, oh most intelligent of readers. Do you see any benefits to adding web parts to pages through features, or would it just be easier to add them in the onet.xml file of a site definition? Give me a shout out in the comments.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://creativesharepoint.posterous.com/adding-web-parts-to-a-page-through-a-feature"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://creativesharepoint.posterous.com/adding-web-parts-to-a-page-through-a-feature#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CreativeSharepoint/~4/9zxbsPUryQs" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/572032/Seth.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/eK1nHcNdu1</posterous:profileUrl>
        <posterous:firstName>Seth</posterous:firstName>
        <posterous:lastName>Hein</posterous:lastName>
        <posterous:nickName>reallySeth</posterous:nickName>
        <posterous:displayName>Seth Hein</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://creativesharepoint.posterous.com/adding-web-parts-to-a-page-through-a-feature</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 06 May 2010 09:05:00 -0700</pubDate>
      <title>~masterurl not working</title>
      <link>http://feedproxy.google.com/~r/CreativeSharepoint/~3/MlN8xMGBMs0/masterurl-not-working</link>
      <guid isPermaLink="false">http://creativesharepoint.posterous.com/masterurl-not-working</guid>
      <description>&lt;p&gt;
	&lt;div class="posterous_bookmarklet_entry"&gt;
&lt;blockquote class="posterous_long_quote"&gt;You cannot use that syntax; if you use "~masterurl" in your MasterPageFile property, the value &lt;strong&gt;must&lt;/strong&gt; be "~masterurl/default.master" or "~masterurl/custom.master". Anything else will give you an error.&lt;/blockquote&gt;
&lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/sharepointcustomization/thread/06edc092-0816-4bcf-9eda-e153fa1610df"&gt;social.msdn.microsoft.com&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Good to know, I was trying to use ~masterurl/myCustomMaster.master in my theming feature.  Of course, ~masterurl/default.master probably won't work through the object model anyway!&lt;/p&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://creativesharepoint.posterous.com/masterurl-not-working"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://creativesharepoint.posterous.com/masterurl-not-working#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CreativeSharepoint/~4/MlN8xMGBMs0" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/572032/Seth.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/eK1nHcNdu1</posterous:profileUrl>
        <posterous:firstName>Seth</posterous:firstName>
        <posterous:lastName>Hein</posterous:lastName>
        <posterous:nickName>reallySeth</posterous:nickName>
        <posterous:displayName>Seth Hein</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://creativesharepoint.posterous.com/masterurl-not-working</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 26 Apr 2010 14:49:42 -0700</pubDate>
      <title>SharePoint WTF Moments</title>
      <link>http://feedproxy.google.com/~r/CreativeSharepoint/~3/FzrDpWukO7M/sharepoint-wtf-moments</link>
      <guid isPermaLink="false">http://creativesharepoint.posterous.com/sharepoint-wtf-moments</guid>
      <description>&lt;p&gt;
	&lt;div class="posterous_bookmarklet_entry"&gt;
      &lt;blockquote class="posterous_medium_quote"&gt;The “Microsoft.Build.Tasks.Delete” task could not be loaded from the assembly C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Build.Tasks.dll. Could not load file or assembly ‘file:///C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Build.Tasks.dll’ or one of its dependencies. The system cannot find the file specified. Confirm that the &amp;lt;UsingTask&amp;gt; declaration is correct, and that the assembly and all its dependencies are available.&amp;nbsp;Platform.StagingAnalysis.Workflow.Services&lt;/blockquote&gt;

&lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://sharepointwtfmoments.wordpress.com/"&gt;sharepointwtfmoments.wordpress.com&lt;/a&gt;&lt;/div&gt;
    &lt;p&gt;Ran into this one today. Good thing the SharePoint WTF Moments blog was there to bail me out!&lt;/p&gt;&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://creativesharepoint.posterous.com/sharepoint-wtf-moments"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://creativesharepoint.posterous.com/sharepoint-wtf-moments#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CreativeSharepoint/~4/FzrDpWukO7M" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/572032/Seth.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/eK1nHcNdu1</posterous:profileUrl>
        <posterous:firstName>Seth</posterous:firstName>
        <posterous:lastName>Hein</posterous:lastName>
        <posterous:nickName>reallySeth</posterous:nickName>
        <posterous:displayName>Seth Hein</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://creativesharepoint.posterous.com/sharepoint-wtf-moments</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 19 Feb 2010 13:26:00 -0800</pubDate>
      <title>Fixing SharePoint 2007's Feature File Deployment</title>
      <link>http://feedproxy.google.com/~r/CreativeSharepoint/~3/YR0ybnd86vQ/fixing-sharepoint-2007s-feature-file-deployme</link>
      <guid isPermaLink="false">http://creativesharepoint.posterous.com/fixing-sharepoint-2007s-feature-file-deployme</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Feature deploying files into SharePoint such as web parts or master pages is something that most developers and admins of any caliber should be familiar with.  Also called "provisioning", it's the bread and butter of customizing SharePoint, if you will.  Part of the basics. However, there are some serious issues with &lt;a href="http://msdn.microsoft.com/en-us/library/ms441170.aspx" target="_blank"&gt;how SharePoint accomplishes this out of the box&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;The first issue I found a year or so ago.  I was deploying some web parts through a feature, and went to deactivate the feature.  After deactivation, much to my dismay, I found the web parts still deployed in the web part gallery.  Not a huge deal, but an annoyance to be sure.  So I rolled up my sleeves, dove into the SharePoint object model, and developed a custom event receiver that removed the web parts previously deployed when deactivated.&lt;/p&gt;
&lt;p&gt;I found the second issue I found a few weeks ago.  I was working on deploying a custom master page and I started hitting problems.  Aside from hitting the first problem again, I found that overwriting a master page (or page layout) was impossible using the out of the box SharePoint file provisioning.  At first I was trying to override default.master, but then realized the errors of my ways (may the SharePoint gods forgive me). Never overwrite a default master page.  Just copy it, rename it, and build your new one from there.  You will save yourself future headaches and pain.  But I digress, this did get me thinking of the problems with upgrading the master page in the future.  If I can't overwrite a page that's already deployed, if I make a change to the master page and upgrade my solution, that means the upgraded master page won't get deployed.  Seems rediculous, but it's true.  I tested it thoroghly to make sure.  I even tried using the IgnoreIfAlreadyExists flag, but found later that that flag &lt;a href="http://www.sharepointvoodoomagic.com/2009/01/ignoreifalreadyexists.html" target="_blank"&gt;doesn't do what I thought it did anyway&lt;/a&gt;.  So what to do...&lt;/p&gt;
&lt;p&gt;Once again I had to roll up my sleeves and dive into the SharePoint object model and create a feature receiver to solve my woes. And with the trusty Google at my side, I was able to pound out a good solution.  Thanks to &lt;a href="http://johanleino.wordpress.com/2009/04/22/howto-handling-file-updates-in-sharepoint/" target="_blank"&gt;Johan Leino's post&lt;/a&gt; on handling the IgnoreIfAlreadyExists attribute, I found most of the code I needed.  He wrote a feature receiver that uses LINQ to parse the elements.xml of a normal file provisioning feature.  Then if the IgnoreIfAlreadyExists attribute is there, his feature receiver will overwrite the current file.  I took that, then added code to deploy a new file, as Johan's code only handled updating a file that already exists.  Finally I added the deactivating functionality so that the files that are deployed on feature activation are removed after feature deactivation&lt;sup&gt;1&lt;/sup&gt;. The beauty of this solution is that it supports all the file properties that a normal SharePoint provisioning feature supports.  Just use the normal elements.xml files that you would with any other file provisioning feature, but in your feature.xml, point to the feature receiver assembly instead.  And voila, you have a beautiful, upgradable file provisioning solution!&lt;/p&gt;
&lt;p&gt;I've attached my final .cs file as well as sample feature.xml and elements.xml files for your SharePoint developing pleasure.&lt;/p&gt;
&lt;p&gt;&lt;div class='p_embed p_file_embed'&gt;
&lt;a href="http://creativesharepoint.posterous.com/fixing-sharepoint-2007s-feature-file-deployme"&gt;&lt;img alt="" src="http://posterous.com/images/filetypes/zip.png" /&gt;&lt;/a&gt;
&lt;div class='p_embed_description'&gt;
&lt;strong&gt;FileContentDeployment.zip&lt;/strong&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/creativesharepoint/hc8f5kHJxHoM3YpA33BCLLsgseLi5g7pOpmRUVPrGDnBZmURpct61w0J3Kb3/FileContentDeployment.zip"&gt;Download this file&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;The only issue I have is that when you don't specify the path attribute in the module element of the elements.xml the feature throws an error on activation.  Obviously to solve this you just add Path="" into the module element, but I'd like to fix the .cs file so it checks that the path attribute exists before it tries to read from it.  Unfortunately I'm a newbie when it comes to LINQ, so any help on that would be appreciated.  Just let me know in the comments.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;em&gt;UPDATE: I just came across &lt;a href="http://www.beckybertram.com/oldblog/index.php?p=37&amp;amp;more=1&amp;amp;c=1&amp;amp;tb=1&amp;amp;pb=1" target="_blank"&gt;this post&lt;/a&gt; by Becky Bertram about updating page layouts.  So apparently it should work, you just have to watch out for rogue SharePoint Designer tags. &lt;/em&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small; color: #888888;"&gt;1. This turned out to be a pain because there's a bug when deleting a master page from the master page gallery.  I wrote &lt;a href="http://creativesharepoint.posterous.com/this-item-cannot-be-deleted-because-it-is-sti"&gt;a post on the issue and the fix&lt;/a&gt; a few weeks ago. You just have to create a folder, move the files-to-be-deleted into that folder, then delete the folder.  In my case I had to do that through the object model, but if you are just testing and need a one time fix, you can do all that through SharePoint designer.&lt;/span&gt;&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://creativesharepoint.posterous.com/fixing-sharepoint-2007s-feature-file-deployme"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://creativesharepoint.posterous.com/fixing-sharepoint-2007s-feature-file-deployme#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CreativeSharepoint/~4/YR0ybnd86vQ" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/572032/Seth.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/eK1nHcNdu1</posterous:profileUrl>
        <posterous:firstName>Seth</posterous:firstName>
        <posterous:lastName>Hein</posterous:lastName>
        <posterous:nickName>reallySeth</posterous:nickName>
        <posterous:displayName>Seth Hein</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://creativesharepoint.posterous.com/fixing-sharepoint-2007s-feature-file-deployme</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 01 Feb 2010 12:09:01 -0800</pubDate>
      <title>Too Busy for Standards?</title>
      <link>http://feedproxy.google.com/~r/CreativeSharepoint/~3/cxUN4rObdrg/too-busy-for-standards</link>
      <guid isPermaLink="false">http://creativesharepoint.posterous.com/too-busy-for-standards</guid>
      <description>&lt;p&gt;
	&lt;p&gt;A couple weeks ago I posted some thoughts on &lt;a href="http://creativesharepoint.posterous.com/sharepoint-development-standards"&gt;standards for SharePoint development&lt;/a&gt;.&amp;nbsp; I was hoping to get some feedback from other SharePoint developers on what kinds of things you standardize.&amp;nbsp; However, in spite of some great retweets and lots of page views, no one left me any comments.&amp;nbsp; That leads me to one of two conclusions.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;SharePoint developers are so busy that they don't have time for development standards, or...&lt;/li&gt;
&lt;li&gt;No one reads this blog!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Granted, 2 is a valid option, especially since I post here semi-regularly at best (though I'm making a concerted effort to change that).&amp;nbsp; However, I am starting to think that 1 has a lot of weight to it. I was originally thrown into SharePoint development, not knowing anything about what SharePoint was or how it worked.&amp;nbsp; And not only did I develop, but I was expected to administrate the farm as well.&amp;nbsp; My team was under staffed for the job, and requests for updates and help were pouring in.&amp;nbsp; Sound familiar?&lt;/p&gt;
&lt;p&gt;So this is my attempt to generate a bit more conversation.&amp;nbsp; Because I think standards are important, but we have to evaluate where we are first before we decide where we are going.&amp;nbsp; So where are you guys at?&amp;nbsp; Can you sympathize with 1?&amp;nbsp; Are you too busy for standards?&amp;nbsp; Do you even care about standards, or does it just sound like a waste of time?&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://creativesharepoint.posterous.com/too-busy-for-standards"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://creativesharepoint.posterous.com/too-busy-for-standards#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CreativeSharepoint/~4/cxUN4rObdrg" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/572032/Seth.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/eK1nHcNdu1</posterous:profileUrl>
        <posterous:firstName>Seth</posterous:firstName>
        <posterous:lastName>Hein</posterous:lastName>
        <posterous:nickName>reallySeth</posterous:nickName>
        <posterous:displayName>Seth Hein</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://creativesharepoint.posterous.com/too-busy-for-standards</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 29 Jan 2010 10:43:22 -0800</pubDate>
      <title>This item cannot be deleted because it is still referenced by other pages...</title>
      <link>http://feedproxy.google.com/~r/CreativeSharepoint/~3/wbhZ6n2M_kI/this-item-cannot-be-deleted-because-it-is-sti</link>
      <guid isPermaLink="false">http://creativesharepoint.posterous.com/this-item-cannot-be-deleted-because-it-is-sti</guid>
      <description>&lt;p&gt;
	&lt;div class="posterous_bookmarklet_entry"&gt;
      &lt;p&gt;
I was getting this error today while trying to delete a custom master page from the master page gallery.  Turns out, &lt;a href="http://support.microsoft.com/kb/926812#" target="_blank"&gt;it's a known bug&lt;/a&gt;! Anyway, the work around, thanks to &lt;a href="http://www.katriendg.com/aboutdotnet/2007_1_cannot_delete_page_layout.aspx" target="_blank"&gt;Katrien&lt;/a&gt;, is to create a folder, move the offending master page into the folder using SharePoint Designer or explorer view, then delete the folder.  Gotta love SharePoint! 
&lt;/p&gt;

&lt;p&gt;
I'm currently working on a feature receiver that will deploy and retract the custom master page. We'll see if this bug affects my retract code...
&lt;/p&gt;
    &lt;p&gt;&lt;/p&gt;&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://creativesharepoint.posterous.com/this-item-cannot-be-deleted-because-it-is-sti"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://creativesharepoint.posterous.com/this-item-cannot-be-deleted-because-it-is-sti#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CreativeSharepoint/~4/wbhZ6n2M_kI" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/572032/Seth.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/eK1nHcNdu1</posterous:profileUrl>
        <posterous:firstName>Seth</posterous:firstName>
        <posterous:lastName>Hein</posterous:lastName>
        <posterous:nickName>reallySeth</posterous:nickName>
        <posterous:displayName>Seth Hein</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://creativesharepoint.posterous.com/this-item-cannot-be-deleted-because-it-is-sti</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 22 Jan 2010 14:09:00 -0800</pubDate>
      <title>SharePoint Development Standards</title>
      <link>http://feedproxy.google.com/~r/CreativeSharepoint/~3/1bkdPj8Ojpk/sharepoint-development-standards</link>
      <guid isPermaLink="false">http://creativesharepoint.posterous.com/sharepoint-development-standards</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Recently my team got burned by a SharePoint consulting company that did some shoddy work.&amp;nbsp; I don't blame them entirely, we should have been more specific about our requirements and standards.&amp;nbsp; But at the same time, their work has been making me groan all week.&amp;nbsp; They updated out of the box master pages through SharePoint designer, created site templates using .stp files through the GUI, and they hard coded static links into their custom web parts that broke when we deployed them to a different location.&amp;nbsp; &lt;p /&gt; So all this has shown me the value of good standards and communication.&amp;nbsp; I'm starting with the standards part.&amp;nbsp; Here's my crack at a list of standards for developing custom SharePoint functionality.&amp;nbsp; Although I've been programming in SharePoint 2007 since the beta, I know I still have loads to learn, so I wanted to enlist the help of the &lt;a href="http://www.youtube.com/watch?v=LKTH6f1JfX8"&gt;internets&lt;/a&gt; on this one.&amp;nbsp; What is standard operating procedure for you when you develop in SharePoint?&amp;nbsp; What are the musts, and what are the nice to haves?&amp;nbsp; Give me all the gory object modely details.&lt;p /&gt; &lt;p /&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;My Current SharePoint Development Standards List&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;General&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All custom SharePoint work must be deployed through SharePoint solutions (.wsp files)&lt;/li&gt;
&lt;li&gt;&lt;span style="text-decoration: line-through;"&gt;We will not import or restore any backups of sites developed by third parties. This shouldn't be a problem as all custom work will be deployed through solutions and features anyway.&lt;/span&gt; &lt;em&gt;I wanted to avoid importing hidden designer hacks, but &lt;a href="http://twitter.com/jdwade" target="_blank"&gt;J.D. Wade&lt;/a&gt; brought up a good point, we might need to import actual content, so we can't completely write this off.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;All functionality and customizations must be documented&lt;/li&gt;
&lt;li&gt;Site and list templates must be created through code and features (site and list definitions). STP files are not allowed as they are not updatable. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web parts must be deployed using our custom feature receiver (we can provide source to third parties working with us).&lt;/li&gt;
&lt;li&gt;Custom code must be checked for memory leaks using &lt;a href="http://code.msdn.microsoft.com/SPDisposeCheck"&gt;SPDisposeCheck&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;For site definitions, use a minimal site definition with feature stapling.&lt;/li&gt;
&lt;li&gt;Use best practices when accessing data using the SharePoint object model. See &lt;a href="http://go.microsoft.com/fwlink?LinkId=95450"&gt;Working with Large Lists&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/bb687949.aspx"&gt;Common Coding Issues When Using the SharePoint Object Model&lt;/a&gt;, and &lt;a href="http://msdn.microsoft.com/en-us/library/aa973248.aspx"&gt;Using Disposable Windows SharePoint Services Objects&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;12 Hive Deployment&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No out of the box SharePoint files in the 12 hive will be overwritten&lt;/li&gt;
&lt;li&gt;Images deployed must be deployed into an RGA/ProjectName folder &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;SharePoint Designer&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SharePoint designer updates are generally not allowed. The only exception to this rule is for creating DataForm web parts.&lt;/li&gt;
&lt;li&gt;DataForm web parts must be exported through the SharePoint GUI and solution packaged for deployment as a feature.&lt;/li&gt;
&lt;li&gt;Editing out of the box master pages is not allowed. Instead, duplicate an existing master page, make edits, then solution package the master page for feature deployment.&lt;/li&gt;
&lt;li&gt;No SharePoint Designer created workflows. These are not portable and cannot be packaged for solution deployment. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;InfoPath&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;custom ASPX forms are preferred over InfoPath forms. They are easier to support, debug, and upgrade.&lt;/li&gt;
&lt;li&gt;InfoPath forms must be browser compatible. We run all our InfoPath forms deployed through forms services through the browser.&lt;/li&gt;
&lt;li&gt;If the InfoPath form has code behind or needs full trust it must be solution packaged and deployed through central admin. (see &lt;a href="http://creativesharepoint.posterous.com/solution-packaging-infopath-forms-for-sharepo"&gt;my previous post&lt;/a&gt; for reference)&lt;/li&gt;
&lt;li&gt;If InfoPath form does not have code behind and does not need full trust the form can be manually published to a document library, but the process and location of the document library must be documented inside the form. Just add the documentation text into a section control at the top of the form and set conditional formatting on that section to always hide the section, that way users will never see it. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;&lt;span style="font-family: mceinline;"&gt;Update 08-17-2020: Richard Harbridge has taken this list and combined it with other SharePoint development standards from around the internets to form &lt;a href="http://www.rharbridge.com/?page_id=259"&gt;a bigger list of standards&lt;/a&gt;.&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;/ul&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://creativesharepoint.posterous.com/sharepoint-development-standards"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://creativesharepoint.posterous.com/sharepoint-development-standards#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CreativeSharepoint/~4/1bkdPj8Ojpk" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/572032/Seth.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/eK1nHcNdu1</posterous:profileUrl>
        <posterous:firstName>Seth</posterous:firstName>
        <posterous:lastName>Hein</posterous:lastName>
        <posterous:nickName>reallySeth</posterous:nickName>
        <posterous:displayName>Seth Hein</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://creativesharepoint.posterous.com/sharepoint-development-standards</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 25 Sep 2009 12:21:48 -0700</pubDate>
      <title>In a World Where Chuck Norris and SharePoint Meet</title>
      <link>http://feedproxy.google.com/~r/CreativeSharepoint/~3/gAmtEEID364/in-a-world-where-chuck-norris-and-sharepoint</link>
      <guid isPermaLink="false">http://creativesharepoint.posterous.com/in-a-world-where-chuck-norris-and-sharepoint</guid>
      <description>&lt;p&gt;
	&lt;div class="posterous_bookmarklet_entry"&gt;
      &lt;blockquote class="posterous_short_quote"&gt;Chuck Norris can modify SharePoint’s application.master in a supportable manner.&lt;/blockquote&gt;&lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.sharingthepoint.com/Lists/Posts/Post.aspx?List=1471d163-5f8e-4e57-8473-6872da55dcd9&amp;amp;ID=159"&gt;sharingthepoint.com&lt;/a&gt;&lt;/div&gt;
    &lt;p&gt;If there was any doubt as to my geek-ness, this solidifies it.  This is about the funniest thing I've seen all week. Thanks for the laugh &lt;a href="http://twitter.com/jdwade" target="_blank"&gt;@JDWade&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://creativesharepoint.posterous.com/in-a-world-where-chuck-norris-and-sharepoint"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://creativesharepoint.posterous.com/in-a-world-where-chuck-norris-and-sharepoint#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CreativeSharepoint/~4/gAmtEEID364" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/572032/Seth.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/eK1nHcNdu1</posterous:profileUrl>
        <posterous:firstName>Seth</posterous:firstName>
        <posterous:lastName>Hein</posterous:lastName>
        <posterous:nickName>reallySeth</posterous:nickName>
        <posterous:displayName>Seth Hein</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://creativesharepoint.posterous.com/in-a-world-where-chuck-norris-and-sharepoint</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 16 Sep 2009 09:02:00 -0700</pubDate>
      <title>OpenOffice and StarOffice SharePoint Connector</title>
      <link>http://feedproxy.google.com/~r/CreativeSharepoint/~3/F7kL0nNGnY8/sun-connector-for-sharepoint-server-openoffic</link>
      <guid isPermaLink="false">http://creativesharepoint.posterous.com/sun-connector-for-sharepoint-server-openoffic</guid>
      <description>&lt;p&gt;
	&lt;div class="posterous_bookmarklet_entry"&gt;
&lt;blockquote class="posterous_short_quote"&gt;Microsofts SharePoint Server provides a single workspace for teams to organize documents and participate in discussions. The Sun Connector for SharePoint Server makes StarOffice or OpenOffice.org the perfect SharePoint client and adds the support for the ODF (OpenDocument) file format in Microsoft SharePoint Server.&lt;/blockquote&gt;
&lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://extensions.services.openoffice.org/project/sharepoint_connector"&gt;extensions.services.openoffice.org&lt;/a&gt; (via &lt;a href="http://twitter.com/stoolpigeon/statuses/4031315461" target="_blank"&gt;@stoolpigeon&lt;/a&gt;)&lt;/div&gt;
&lt;p&gt;I'd be interested to know if anyone is using this and how it works.&lt;/p&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://creativesharepoint.posterous.com/sun-connector-for-sharepoint-server-openoffic"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://creativesharepoint.posterous.com/sun-connector-for-sharepoint-server-openoffic#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CreativeSharepoint/~4/F7kL0nNGnY8" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/572032/Seth.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/eK1nHcNdu1</posterous:profileUrl>
        <posterous:firstName>Seth</posterous:firstName>
        <posterous:lastName>Hein</posterous:lastName>
        <posterous:nickName>reallySeth</posterous:nickName>
        <posterous:displayName>Seth Hein</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://creativesharepoint.posterous.com/sun-connector-for-sharepoint-server-openoffic</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 03 Aug 2009 12:07:00 -0700</pubDate>
      <title>SharePoint Development VM Building</title>
      <link>http://feedproxy.google.com/~r/CreativeSharepoint/~3/H9rbtNXxih0/sharepoint-development-vm-building</link>
      <guid isPermaLink="false">http://creativesharepoint.posterous.com/sharepoint-development-vm-building</guid>
      <description>&lt;p&gt;
	&lt;p&gt;For the past couple weeks I've been building (and rebuilding) a cloneable SharePoint development VM.&amp;nbsp; Had to restart originally when I installed the wrong version of Windows 2003 Server, then again when I realized I installed the wrong version of SQL Server (doh!).&amp;nbsp; Third time's the charm though.&amp;nbsp; This time I've documented all the steps, and taken ubiquitous snapshots (I love you vmware) to make sure this will be the last time.&amp;nbsp; It has taken me a while to find all the different pieces I'm using, so I thought I would compile my step by step process here in case it might be helpful to others.&lt;p /&gt; &lt;strong&gt;Create the VM&lt;/strong&gt;&lt;br /&gt;For this I used VMWare Workstation 6.5.&amp;nbsp; My host machine is a dual core Dell with 4 GB of ram, and this setup seems to run fine without lagging my host down badly. For more details on getting better performance, check out &lt;a href="http://www.hanselman.com/blog/VMPerformanceChecklistBeforeYouComplainThatYourVirtualMachineIsSlow.aspx" target="_blank"&gt;this great article&lt;/a&gt; by Scott Hanselman.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 GB of ram&lt;/li&gt;
&lt;li&gt;40 GB disk (not preallocated)&lt;/li&gt;
&lt;li&gt;Hard disk file split up into 2 GB files on the host (for easy moving and defragmentation)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Installing Windows&lt;/strong&gt;&lt;br /&gt;For this I used &lt;em&gt;Windows Server 2003 Standard R2 SP2&lt;/em&gt;. I didn't do anything special, just let VMWare workstation do the automatic install for me.&amp;nbsp; Once the server came up I did the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Renamed the server to mossDevRoot &lt;span style="color: #999999;"&gt;(to match the name I used on the host side for the VM name)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Gave the server the Application Server Role&lt;/li&gt;
&lt;li&gt;Turned off IE Enhanced Security&lt;span style="color: #999999;"&gt; (Through "Add Remove Programs" &amp;gt; "Add/Remove Windows Components".&amp;nbsp; Internet Explorer Enhance Security Configuration is an option in this list.)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Installed .Net &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&amp;amp;displaylang=en" target="_blank"&gt;2.0&lt;/a&gt; and &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=333325FD-AE52-4E35-B531-508D977D32A6&amp;amp;displaylang=en" target="_blank"&gt;3.5&lt;/a&gt; frameworks, along with &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=AB99342F-5D1A-413D-8319-81DA479AB0D7&amp;amp;displaylang=en" target="_blank"&gt;3.5 SP1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Installed &lt;a href="http://support.microsoft.com/kb/946517" target="_blank"&gt;KB 946517&lt;/a&gt; &lt;span style="color: #999999;"&gt;(to fix an IIS bug)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Installed &lt;a href="http://support.microsoft.com/kb/959209" target="_blank"&gt;KB 959209&lt;/a&gt; &lt;span style="color: #999999;"&gt;(this is actually a set of 3 updates for the .Net framework.&amp;nbsp; Make sure to install them in the order specified!)&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Create Service Accounts&lt;br /&gt;&lt;/strong&gt;Here are the various service accounts I created and their purposes.&amp;nbsp; On a side note, after the server is sysprepped and cloned, when you log into it to begin using it, you must first login with the SharePoint service account (svc4shrpnt in my case) so that SharePoint can be configured correctly.&amp;nbsp; Running the SharePoint configuration wizard under a normal user account is BAD!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;svc4sqlagent &lt;span style="color: #999999;"&gt;(SQL Server Agent service account)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;svc4sqldbengine &lt;span style="color: #999999;"&gt;(SQL Server Database Engine service account)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;svc4sqlanalysis &lt;span style="color: #999999;"&gt;(SQL Server Analysis Services service account)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;svc4sqlreporting &lt;span style="color: #999999;"&gt;(SQL Server Reporting Services service account)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;svc4shrpnt &lt;span style="color: #999999;"&gt;(SharePoint service account)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;svc4shrpntfarm &lt;span style="color: #999999;"&gt;(SharePoint farm service account)&lt;/span&gt;&lt;span style="color: #999999;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;svc4shrpntapppool &lt;span style="color: #999999;"&gt;(SharePoint application pool service account)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;svc4shrpntsearch &lt;span style="color: #999999;"&gt;(SharePoint Search account)&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;br /&gt;SQL Server&lt;/strong&gt;&lt;br /&gt;I used SQL Server 2008 Standard for this.&amp;nbsp; After the main install (and entering the sql service accounts created above in the installation wizard), I installed these patches:&lt;p /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; -&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19&amp;amp;displaylang=en" target="_blank"&gt;SQL Server SP1&lt;/a&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; -&lt;a href="http://support.microsoft.com/kb/971491" target="_blank"&gt;SQL Server 2008 Cumulative Update Package 3 - KB 971491&lt;/a&gt;&lt;p /&gt; &lt;br /&gt;&lt;strong&gt;Microsoft SharePoint 2007&lt;/strong&gt;&lt;br /&gt;Now it's time for the big mamma-jamma.&amp;nbsp; First you need to get things ready for your &lt;a href="http://en.wikipedia.org/wiki/Slipstream_%28computing%29" target="_blank"&gt;slipstream&lt;/a&gt; install.&amp;nbsp; First you need to create the slipstream install (for &lt;a href="http://technet.microsoft.com/en-us/library/cc261890.aspx" target="_blank"&gt;MOSS&lt;/a&gt;, or just for &lt;a href="http://technet.microsoft.com/en-us/library/cc287882.aspx" target="_blank"&gt;WSS&lt;/a&gt;).&amp;nbsp; One of the tricks I learned is that when you extract the updates to the updates folder, you need to do them in order, first the WSS update, and then the matching MOSS update (if you are wanting to install MOSS that is).&amp;nbsp; So for example, if you were wanting to slipstream SP2, and the June cumulative updates, you would extract the WSS SP2 file, then extract the MOSS SP2 file, then extract the June Cumulative update for WSS, then extract the June Cumulative update for MOSS.&amp;nbsp; As I'm writing this, the most recent set of patches you need for your MOSS or WSS server to be fresh and up to date is listed on &lt;a href="http://blogs.msdn.com/sharepoint/archive/2009/07/20/june-cumulative-update-packages-ready-for-download.aspx" target="_blank"&gt;this post&lt;/a&gt; from the &lt;a href="http://blogs.msdn.com/sharepoint/default.aspx" target="_blank"&gt;Microsoft SharePoint Team Blog&lt;/a&gt;.&amp;nbsp; If you want to keep up to date on SharePoint goings on, subscribing to this is a must.&lt;p /&gt; A few other tidbits I did before running the slipstream installation.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Created folder C:\SharePoint\ with subfolders Indexes, ULSLogs, UsageLogs, SMTPDrop, IISLogs&lt;/li&gt;
&lt;li&gt;Pointed IIS Logs to the C:\SharePoint\IISLogs folder &lt;span style="color: #999999;"&gt;(by right clicking on the "Web Sites" folder and selecting "Properties". &amp;nbsp;This will ensure all future websites' logs go to this folder as well)&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now run the installation only, but &lt;em&gt;DO NOT &lt;/em&gt;run the configuration wizard. &amp;nbsp;Since we are planning on sysprepping this server, cloning it, and renaming the machine, we can't run the configuration wizard until the server name is set to what it's going to be, as the SharePoint configuration wizard sets up a lot of things based on the machine name. &amp;nbsp;Once the installation is completed (and it will take a little while, especially on the part where it installs the updates), then we can continue. &amp;nbsp;If you get a message like I did the first couple times that says some of the updates were not installed, you messed up the slipstream somehow and will need to recreate that.&lt;p /&gt; &lt;strong&gt;Visual Studio 2008&lt;br /&gt;&lt;/strong&gt;That beautiful tool beloved by developers comes next. &amp;nbsp;After installing Visual Studio 2008 team edition along with the team explorer, here are a couple other patches and addons I installed.&lt;strong&gt;&lt;br /&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E&amp;amp;displaylang=en"&gt;Service Pack 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=6D94E307-67D9-41AC-B2D6-0074D6286FA9&amp;amp;displaylang=en"&gt;SharePoint Server 2007 SDK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jetbrains.com/resharper/index.html"&gt;ReSharper&lt;/a&gt; &lt;span style="color: #999999;"&gt;(not free, but oh so sweet!)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://spdevmod.codeplex.com/"&gt;SharePoint Development Environment Modifications &lt;/a&gt;&lt;br /&gt; &lt;span style="color: #999999;"&gt;(external tools for Visual Studio SharePoint development which are very handy.&amp;nbsp;I manually removed the ones that deal with deploying solutions to minimize confusing with &lt;a href="http://www.codeplex.com/stsdev"&gt;stsdev&lt;/a&gt; build targets, as that is my solution packaging automation system of choice.)&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Etc, Etc...&lt;/strong&gt;&lt;br /&gt;That concludes all the big installs, now for the little stuff that make a SharePoint development VM feel more like 127.0.0.1. I found a &lt;a href="http://blogs.msdn.com/emberger/archive/2009/03/20/automating-wss-v3-moss-2007-development-environment-setup-part-xv-useful-external-tools.aspx"&gt;few&lt;/a&gt; &lt;a href="http://www.andrewconnell.com/blog/archive/2008/10/07/So-whats-on-your-SharePoint-development-machine.aspx"&gt;helpful&lt;/a&gt; lists out there on the internets, I picked off my favorite things and added a few others.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;InfoPath 2007&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=baa3ad86-bfc1-4bd4-9812-d9e710d44f42&amp;amp;displaylang=en"&gt;SharePoint Designer&lt;/a&gt; &lt;span style="color: #999999;"&gt;(a.k.a. SharePoint Destroyer, use with care)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://notepad-plus.sourceforge.net/uk/site.htm"&gt;Notepad++&lt;/a&gt; &lt;span style="color: #999999;"&gt;(A notepad alternative with tabs, syntax highlighting, and other coolness)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://derekslager.com/blog/posts/2006/12/emacs-hack-1-installing-emacs-on-windows.ashx"&gt;Emacs&lt;/a&gt; &lt;span style="color: #999999;"&gt;(The true super hero of text editors, dwarfs even Notepad++.&amp;nbsp; Not for the faint of heart)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;PowerShell 1.0 &lt;span style="color: #999999;"&gt;(The Windows command line on steroids.&amp;nbsp; Don't worry, it's legal. &amp;nbsp;I installed this one through the optional section of Windows Update.)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sourceforge.net/projects/winmerge/"&gt;WinMerge&lt;/a&gt; &lt;span style="color: #999999;"&gt;(a useful tool for difference display and merging for both files and directories)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.red-gate.com/products/reflector/index.htm"&gt;Red Gate's Reflector&lt;/a&gt; &lt;span style="color: #999999;"&gt;(decompiling and reflecting .net assemblies)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.harbar.net/articles/APM.aspx"&gt;Application Pool Manager&lt;/a&gt; &lt;span style="color: #999999;"&gt;(Quickly reset app pools, iis, and SharePoint services)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.harbar.net/archive/2007/04/25/Rightclick-a-.WSP-to-Add-Solution.aspx"&gt;Right-click a .wsp to add solution reg hack&lt;/a&gt; &lt;span style="color: #999999;"&gt;(allows you to right click a .wsp file and click "Add Solution" which runs stsadm -o addsolution)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/spm"&gt;SharePoint Manager 2007&lt;/a&gt; &lt;span style="color: #999999;"&gt;(SharePoint browsing and editing through the object model)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.fiddler2.com/fiddler2/"&gt;Fiddler&lt;/a&gt; &lt;span style="color: #999999;"&gt;(a web debugging proxy which logs all HTTP(S) traffic between your computer and the internet, and allows you to inspect traffic, set breakpoints, and fiddle with incoming or outgoing data)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx"&gt;DebugView&lt;/a&gt; &lt;span style="color: #999999;"&gt;(See how your code is run by the CLR runtime. You just add instructions like System.Diagnostics.Debug.WriteLine(&amp;ldquo;what I want to display in debug view&amp;rdquo;), and you see it in DebugView window.)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.firefox.com"&gt;Firefox&lt;/a&gt; &lt;span style="color: #999999;"&gt;(for all that cross browser testing....or just because I love it!)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.7-zip.org/"&gt;7-Zip&lt;/a&gt; &lt;span style="color: #999999;"&gt;(open source file archiver)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb897557.aspx"&gt;BgInfo&lt;/a&gt; &lt;span style="color: #999999;"&gt;(puts server info on the desktop background)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://spcamlviewer.codeplex.com/"&gt;Stramit CAML Viewer&lt;/a&gt; &lt;span style="color: #999999;"&gt;(nice little tool to get into the SharePoint object model and display CAML queries)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/camlintellisense/Release/ProjectReleases.aspx?ReleaseId=2212"&gt;CAML.NET IntelliSense&lt;/a&gt; &lt;span style="color: #999999;"&gt;(adds intellisense for CAML Queries in Visual Studio)&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt; It's Sysprep Time!&lt;/strong&gt;&lt;br /&gt;This is it, the final countdown, and one of the most frustrating parts for me. &amp;nbsp;There are a couple things you need to do before sysprepping your machine, so that you don't end up slamming your head against your keyboard for hours like I did.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add the svc4shrpnt account to the local Administrators group.&lt;/li&gt;
&lt;li&gt;In SQL 2008 Manager, add builtin\Administrators to the logins section of security and give it sysadmin rights. &lt;span style="color: #999999;"&gt;(this one is huge, and took me forever to figure out, but thanks to &lt;a href="http://rnowik.com/Attempt-at-building-Sysprep-d-VM-with-Server-2008-SQL-2008-MOSS.aspx"&gt;an excellent post&lt;/a&gt;, I was saved from doing further damage to myself and my defenseless dell lappy. &amp;nbsp;Check out the post for the reasoning behind it.)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now for the actual sysprepping. I found &lt;a href="http://www.mukalian.com/blog/post/2009/01/02/How-to-Create-a-Cloneable-SharePoint-Development-Environment.aspx"&gt;this helpful article&lt;/a&gt; with some downloadable files, but not enough explanation for my lowly developer brain. &amp;nbsp;It took me a bit of digging through the Google, so I'll provide the details that I assume most admins consider common knowledge for the rest of us.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Head on over to &lt;a href="http://www.mukalian.com/blog/post/2009/01/02/How-to-Create-a-Cloneable-SharePoint-Development-Environment.aspx"&gt;this blog post&lt;/a&gt; and download the Clonable Assets at the bottom of the post. &lt;span style="color: #999999;"&gt;(If you are already familiar with sysprep, feel free to skip the rest of these instructions, as they are meant for us developer types)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #999999;"&gt;&lt;span style="color: #000000;"&gt;Create the folder C:\Sysprep on your virtual server and copy in the sysprep.inf file. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #999999;"&gt;&lt;span style="color: #000000;"&gt;Create another folder, C:\Scripts, and copy in mossconfig.bat and startsql.bat.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #999999;"&gt;&lt;span style="color: #000000;"&gt;Update the sysprep.inf file&lt;/span&gt;&lt;/span&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;span style="color: #999999;"&gt;&lt;span style="color: #000000;"&gt;Make sure the paths to the .bat files are correct&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #999999;"&gt;&lt;span style="color: #000000;"&gt;If you indend to rename your server after you sysprep it, make sure that under the [UserData] section you remove the * after "ComputerName=". &amp;nbsp;That way you will be prompted for a new computer name when you boot up the server after sysprep.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #999999;"&gt;&lt;span style="color: #000000;"&gt;Also if you don't have a volume license key, make sure to clear out everything after "ProductKey=" so you will be prompted to add a key when booting up the server after sysprep.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #999999;"&gt;&lt;span style="color: #000000;"&gt;Update startsql.bat&lt;/span&gt;&lt;/span&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;span style="color: #999999;"&gt;&lt;span style="color: #000000;"&gt;Under the "dropping SQL Server" section, update the server name with your current VM server name&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #999999;"&gt;&lt;span style="color: #000000;"&gt;Update %COMPUTERNAME%\adminmoss to&amp;nbsp;&lt;span style="color: #999999;"&gt;&lt;span style="color: #000000;"&gt;whatever user name you plan on using to configure SharePoint &lt;span style="color: #999999;"&gt;(I used&amp;nbsp;%COMPUTERNAME%\svc4shrpnt)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Install the latest version of sysprep (&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=93f20bb1-97aa-4356-8b43-9584b7e72556&amp;amp;displaylang=en"&gt;for Windows Server 2003 SP2&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Browse to C:\Windows\System32 and open deploy.cab&lt;/li&gt;
&lt;li&gt;Copy sysprep.exe and setupcl.exe to the C:\Sysprep folder.&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #999999;"&gt;&lt;span style="color: #000000;"&gt;Shutdown your server and create a snapshot (if you use VMWare) or backup the thing (if you're using VPC). &amp;nbsp;(I've heard a rumor that you can only re-sysprep a server 3 times before it won't work anymore. &amp;nbsp;I didn't take the time to verify that, but I just decided to create a snapshot that I can go back to in case I need to install any more updates in the future.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #999999;"&gt;&lt;span style="color: #000000;"&gt;Start the server back up and run sysprep.exe. &amp;nbsp;Click on the Reseal button, and let it shut your server down.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #999999;"&gt;&lt;span style="color: #000000;"&gt;Create another snapshot or backup of the server (if you don't have troubles, this is the part you will clone or copy and give out to others on your team, or use in the future when spinning up new servers)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #999999;"&gt;&lt;span style="color: #000000;"&gt;Start up the server, give it a new name, and watch the command prompt as it should successfully configure SQL and SharePoint.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If at this point everything works, then take that last snapshot and clone it off (or if it's a VPC copy, copy it off) and share it out or save it off someewhere else for later use. &amp;nbsp;Then restore the snapshot prior to the last snapshot on the original VM. &amp;nbsp;This will allow you update the root of the VM as new patches come out, then sysprep it up again and copy off the sysprepped server for yourself and others.&lt;p /&gt; If things didn't work, take a deep breath, get up and walk around, get a glass of water, get a good night sleep, then&amp;nbsp;hop back to the snapshot before the last snapshot, and the process we all so effectionatly call troubleshooting.&lt;p /&gt; &lt;br /&gt;&lt;strong&gt;Lastly...&lt;/strong&gt;&lt;br /&gt;Here are a couple handy SharePoint solutions you might want to install...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/features"&gt;Log Viewer&lt;/a&gt; &lt;span style="color: #999999;"&gt;(for viewing the Unified Logging Service (ULS) logs from within Central Admin)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/SharePointWarmupJob"&gt;SharePoint Warmup Job&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;p /&gt;And a huge thanks to &lt;a href="http://wadingthrough.wordpress.com/" target="_blank"&gt;KB Man&lt;/a&gt;, for pointing me to all the server updates and patches I needed! &amp;nbsp;He is an admin genius, and I couldn't have figured all this out without his help.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://creativesharepoint.posterous.com/sharepoint-development-vm-building"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://creativesharepoint.posterous.com/sharepoint-development-vm-building#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CreativeSharepoint/~4/H9rbtNXxih0" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/572032/Seth.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/eK1nHcNdu1</posterous:profileUrl>
        <posterous:firstName>Seth</posterous:firstName>
        <posterous:lastName>Hein</posterous:lastName>
        <posterous:nickName>reallySeth</posterous:nickName>
        <posterous:displayName>Seth Hein</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://creativesharepoint.posterous.com/sharepoint-development-vm-building</feedburner:origLink></item>
    <item>
      <pubDate>Tue, 30 Jun 2009 09:22:00 -0700</pubDate>
      <title>Solution Packaging InfoPath Forms for SharePoint Deployment...the Right Way</title>
      <link>http://feedproxy.google.com/~r/CreativeSharepoint/~3/Ls0rBX81HY0/solution-packaging-infopath-forms-for-sharepo</link>
      <guid isPermaLink="false">http://creativesharepoint.posterous.com/solution-packaging-infopath-forms-for-sharepo</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;First things first, giving credit where credit is due...&lt;br /&gt;&lt;/strong&gt;&lt;span style="font-size: small;"&gt;First, I want to start by thanking  &lt;a href="http://blogs.infosupport.com/members/bartg/default.aspx" target="_blank"&gt;Bart Gunneman&lt;/a&gt; for &lt;a href="http://blogs.infosupport.com/blogs/porint/archive/2007/04/24/How-to-deploy-an-admin-approved-form-template-using-the-feature-framework.aspx"&gt;this great article&lt;/a&gt; on deploying InfoPath forms as features, and also thanks to &lt;/span&gt;&lt;/span&gt;&lt;span class="post-author vcard"&gt;&lt;span class="fn"&gt;Jason Apergis for his &lt;a href="http://www.k2distillery.com/2008/10/deploy-infopath-as-feature.html"&gt;post&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: small;"&gt; and &lt;a href="http://www.k2distillery.com/2008/12/deploy-infopath-as-feature-with-managed.html"&gt;follow up&lt;/a&gt; on deploying InfoPath forms as features. I learned loads from these two posts during this whole process.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: small;"&gt;The reason I re-wrote all of this instead of just passing you off to their posts was because I was documenting the entire process anyway for my own needs and thought it would be helpful to post all the steps I took. The key piece I added is the bit about the external data connections, which in my opinion is essential to the solution deployment process.&amp;nbsp; If you have to reconfigure the data connection on an InfoPath form every time you want to deploy to a new SharePoint farm, you lose the main benefit of solution packaging in the first place, the easy deployment to multiple farms. But with external data connections managed through Central Administration, SharePoint developers and admins can rejoice together, as they work to develop and easily deploy InfoPath solutions to SharePoint farms.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;So without further adieu, here is the step by step process to solution packaging an InfoPath form for deployment in SharePoint 2007.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;Solution Setup&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a new &amp;ldquo;Empty Solution (no assembly)&amp;rdquo; solution using STSDEV (I have had problems with choosing the .net 3.5 framework from STSDEV.&amp;nbsp; Maybe I need to upgrade STSDEV, but I&amp;rsquo;ve found that sticking with .net 3.0 works best for me)&lt;/li&gt;
&lt;li&gt;Open the solution you just created.&lt;/li&gt;
&lt;li&gt;Delete the &amp;ldquo;manifest.xml&amp;rdquo; and the &amp;ldquo;SolutionPackage.ddf&amp;rdquo; files from the &amp;ldquo;DeploymentFiles&amp;rdquo; folder.&amp;nbsp; (They aren&amp;rsquo;t necessary because STSDEV recreates those files automatically at build time. And if you leave them and use a source control, it&amp;rsquo;s a pain to have to remember to check them out every time you build so STSDEV doesn&amp;rsquo;t puke on a locked file)&lt;/li&gt;
&lt;li&gt;Create the &amp;ldquo;TEMPLATE&amp;rdquo;, &amp;ldquo;FEATURES&amp;rdquo; and feature folder under the RootFiles folder of the project. &lt;span style="color: #888888;"&gt;&lt;em&gt;The Project should now look like figure 1 at the bottom of the post.&lt;/em&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;Feature.xml File&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a new feature.xml file in the feature folder and copy this code into it:&lt;span style="color: #996633;"&gt;&lt;p /&gt;&lt;span style="font-family: courier new,monospace;"&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #996633; font-family: courier new,monospace;"&gt;&lt;br /&gt; &amp;lt;Feature xmlns="&lt;a href="http://schemas.microsoft.com/sharepoint/" target="_blank"&gt;http://schemas.microsoft.com/sharepoint/&lt;/a&gt;"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Id="11111111-1111-1111-1111-111111111111"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Title="Feature Title"&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description="Feature Description."&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Version="12.0.0.0"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Scope="Site"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DefaultResourceFile="ipfscore"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReceiverClass="Microsoft.Office.InfoPath.Server.Administration.XsnFeatureReceiver"&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReceiverAssembly="Microsoft.Office.InfoPath.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ActivationDependencies&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ActivationDependency FeatureId="C88C4FF1-DBF5-4649-AD9F-C6C426EBCBF5"/&amp;gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ActivationDependencies&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ElementManifests&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ElementManifest Location="element.xml"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ElementFile Location="InfoPathForm.xsn"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ElementManifests&amp;gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="color: #996633;"&gt;&lt;br style="font-family: courier new,monospace;" /&gt; &lt;span style="font-family: courier new,monospace;"&gt;&amp;lt;/Feature&amp;gt;&lt;/span&gt;&lt;p /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Replace the Id in the &amp;lt;Feature&amp;gt; tag with a new GUID.&lt;/li&gt;
&lt;li&gt;Replace the Feature Title and Description with appropriate text&lt;/li&gt;
&lt;li&gt;In the &amp;lt;ElementManifests&amp;gt; section, replace the &amp;ldquo;InfoPathForm.xsn&amp;rdquo; form filename with the name of the InfoPath form you are going to package.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;Elements.xml File&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt; Create a new elements.xml file in the feature folder and copy this code into it:&lt;p /&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;xml&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt; &lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;version&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;="1.0"&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt; &lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;encoding&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;="utf-8"&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt; ?&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;&amp;gt;&lt;/span&gt;&lt;br style="font-family: courier new,monospace; color: #996633;" /&gt; &lt;span style="font-family: courier new,monospace; color: #996633;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;Elements&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt; &lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;xmlns&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;="&lt;a href="http://schemas.microsoft.com/sharepoint/" target="_blank"&gt;http://schemas.microsoft.com/sharepoint/&lt;/a&gt;"&amp;gt;&lt;/span&gt;&lt;br style="font-family: courier new,monospace; color: #996633;" /&gt; &lt;span style="font-family: courier new,monospace; color: #996633;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;Module&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt; &lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;Name&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;="XSN"&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt; &lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;Url&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;="FormServerTemplates"&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt; &lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;RootWebOnly&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;="TRUE"&amp;gt;&lt;/span&gt;&lt;br style="font-family: courier new,monospace; color: #996633;" /&gt; &lt;span style="font-family: courier new,monospace; color: #996633;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;File&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt; &lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;Url&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;="InfoPathForm.xsn"&lt;/span&gt;&lt;br style="font-family: courier new,monospace; color: #996633;" /&gt; &lt;span style="font-family: courier new,monospace; color: #996633;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;Name&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;="InfoPathForm.xsn"&lt;/span&gt;&lt;br style="font-family: courier new,monospace; color: #996633;" /&gt; &lt;span style="font-family: courier new,monospace; color: #996633;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;Type&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;="GhostableInLibrary" /&amp;gt;&lt;/span&gt;&lt;br style="font-family: courier new,monospace; color: #996633;" /&gt; &lt;span style="font-family: courier new,monospace; color: #996633;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;Module&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;&amp;gt;&lt;/span&gt;&lt;br style="font-family: courier new,monospace; color: #996633;" /&gt; &lt;span style="font-family: courier new,monospace; color: #996633;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;Elements&lt;/span&gt;&lt;span style="font-family: courier new,monospace; color: #996633;"&gt;&amp;gt;&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;Modify the Url and Name parameters in the &amp;lt;File&amp;gt; tag to match the name of the InfoPath form you are packaging.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;InfoPath Data Connections&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;em style="color: #666666;"&gt;If your form needs to use any external data connection files (.udcx files), go through these steps to make sure the deployed InfoPath form will look for the external data connection file in the Central Administration site that it is uploaded to.&amp;nbsp; The point of this is so that you don&amp;rsquo;t have to reconfigure paths in the InfoPath form and re-publish every time you want to deploy to a different SharePoint farm. You will still need to create a new .udcx file and upload it to the Central Administration on the new farm, but that's a lot easier than the alternative!&lt;/em&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Convert Any Non-External Data Connections to External Data Connections (.udcx files) and upload them to a data connections library      
&lt;ul&gt;
&lt;li&gt;In InfoPath Designer, click &amp;ldquo;Tools&amp;rdquo; &amp;gt; &amp;ldquo;Data Connections&amp;rdquo;&lt;/li&gt;
&lt;li&gt; Select the data connection and click &amp;ldquo;Convert&amp;hellip;&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Enter the URL of any SharePoint Data Connections library that you have contribute access to (don&amp;rsquo;t worry, this won&amp;rsquo;t be the final resting place of the .udcx file)&lt;/li&gt;
&lt;li&gt;Select &amp;ldquo;Centrally managed connection library (advanced)&amp;rdquo; and click &amp;ldquo;OK&amp;rdquo;&lt;span style="color: #666666;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;For any existing External Data Connections, check to make sure they are set to be centrally managed      
&lt;ul&gt;
&lt;li&gt;In InfoPath Designer, click &amp;ldquo;Tools&amp;rdquo; &amp;gt; &amp;ldquo;Data Connections&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Select the data connection and click &amp;ldquo;Modify&amp;hellip;&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Click &amp;ldquo;Connection Options&amp;hellip;&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Select &amp;ldquo;Centrally managed connection library&amp;rdquo; and click &amp;ldquo;OK&amp;rdquo;&lt;span style="color: #666666;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;Click &amp;ldquo;Next &amp;gt;&amp;rdquo; through the rest of the options and finally &amp;ldquo;Finish&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Download, update, and upload the External Data Connection files to Central Administration      
&lt;ul&gt;
&lt;li&gt;Browse to the Data Connections library that you uploaded the External Data Connection files to from step 1.&lt;/li&gt;
&lt;li&gt;Click the drop down next to the name and select &amp;ldquo;Send To&amp;rdquo; &amp;gt; &amp;ldquo;Download a Copy&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Open the .udcx file in your favorite text editor (let&amp;rsquo;s hear it for Emacs!) and make modifications.      
&lt;ul&gt;
&lt;li&gt;Set the &amp;ldquo;UseFormsServiceProxy&amp;rdquo; attribute to &amp;ldquo;true&amp;rdquo; wherever it is set to &amp;ldquo;false&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Change any web service URLs to the appropriate URLs (think development, staging, or production environments)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Browse to the Central Administration of the SharePoint farm you are going to deploy this InfoPath form to.&lt;/li&gt;
&lt;li&gt;Click &amp;ldquo;Application Management&amp;rdquo; then under the &amp;ldquo;InfoPath Forms Services&amp;rdquo; section click &amp;ldquo;Manage data connection files&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Click upload&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt; InfoPath Deployment&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If the form is not already there, copy the InfoPath form into the root of the solution. Your solution should now look like figure 2 at the bottom of this post.&lt;/li&gt;
&lt;li&gt;Open the InfoPath form in InfoPath Designer&lt;/li&gt;
&lt;li&gt;Publish the Form      
&lt;ul&gt;
&lt;li&gt;Select &amp;ldquo;File&amp;rdquo; &amp;gt; &amp;ldquo;Publish&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Select &amp;ldquo;To a network location&amp;rdquo; for where you want to publish the form template and click &amp;ldquo;Next&amp;rdquo;&lt;/li&gt;
&lt;li&gt;For the path, navigate to the TEMPLATE\FEATURES\InfoPathFormFeatures folder in your solution.&lt;/li&gt;
&lt;li&gt;Enter the &amp;ldquo;Form template name&amp;rdquo; and click &amp;ldquo;Next&amp;rdquo;&lt;/li&gt;
&lt;li&gt;On this screen, clear out any text in the text box and click &amp;ldquo;Next&amp;rdquo;.&amp;nbsp; It is possible that a prompt might appear stating: &amp;ldquo;Users will not be able to open this form because of the security level it requires and because no alternative access path has been specified.&amp;nbsp; To enable users to open the form, you must enter an alternative access path.&amp;nbsp; Click OK, to continue publishing the form template or Cancel to enter an alternative access path."&amp;nbsp; This form can be safely ignored, since when this form is published to Central Admin, the correct permission level will be automatically assigned.&lt;/li&gt;
&lt;li&gt;Click &amp;ldquo;Publish&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Click &amp;ldquo;Close&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add the published form to the feature folder in your Visual Studio Project      
&lt;ul&gt;
&lt;li&gt;Right Click on the feature folder and click &amp;ldquo;Add&amp;rdquo; &amp;gt; &amp;ldquo;Existing Item&amp;hellip;&amp;rdquo;&lt;/li&gt;
&lt;li&gt; Select the published InfoPath form and click &amp;ldquo;Add&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;InfoPath Code Behind&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;em style="color: #666666;"&gt;If your InfoPath form has .Net code behind, run through these steps. On a side note, as far as I know, InfoPath 2007 form code behind is automatically created in Visual Studio 2005.&amp;nbsp; So if you were previously using Visual Studio 2008 like I am, you might just skip step 1 and manually add the project to your source control. (You are using source control right?)&lt;/em&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Add the Visual Studio project for the form code behind to this solution for easy reference      
&lt;ul&gt;
&lt;li&gt;Click &amp;ldquo;File&amp;rdquo; &amp;gt; &amp;ldquo;Add&amp;rdquo; &amp;gt; &amp;ldquo;Existing Project&amp;hellip;&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Select the .csproj file for the InfoPath form code behind and click &amp;ldquo;Open&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add the code behind .dll to the Feature folder&lt;br /&gt;&lt;em style="color: #666666;"&gt;According to &lt;a href="http://www.k2distillery.com/2008/12/deploy-infopath-as-feature-with-managed.html"&gt;this post&lt;/a&gt;, an error is thrown if you don&amp;rsquo;t deploy the code behind .dll in the feature folder (yes, even if it is already deployed in the GAC.&amp;nbsp; I haven&amp;rsquo;t seen this first hand, but hey, I&amp;rsquo;m a trusting guy!)&lt;br /&gt; &lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt; Build and Celebrate&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Now after all your hard work, you can build the solution. STSDEV will take care of packaging the whole deal up into a friendly little .wsp and SharePoint admins around the world will bless your mother for giving birth to you!&lt;span style="font-size: medium;"&gt;&amp;nbsp; &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="Solution01" height="151" src="http://posterous.com/getfile/files.posterous.com/reallyseth/j24KaXiSgU1KnZkPrgGJj4Cg0nQgl1cGEnkfB5567mIqBqvrXjQkAuFuRB9Y/solution01.gif" width="246" /&gt;
&lt;img alt="Solution02" height="205" src="http://posterous.com/getfile/files.posterous.com/reallyseth/6azh5S9e1CUXSe2uhVlfEBUw0GX7PewxmoplBFKhoiliaa829g8gTvlrWR92/solution02.gif" width="243" /&gt;
&lt;div class='p_see_full_gallery'&gt;&lt;a href="http://creativesharepoint.posterous.com/solution-packaging-infopath-forms-for-sharepo"&gt;See the full gallery on Posterous&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://creativesharepoint.posterous.com/solution-packaging-infopath-forms-for-sharepo"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://creativesharepoint.posterous.com/solution-packaging-infopath-forms-for-sharepo#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CreativeSharepoint/~4/Ls0rBX81HY0" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/572032/Seth.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/eK1nHcNdu1</posterous:profileUrl>
        <posterous:firstName>Seth</posterous:firstName>
        <posterous:lastName>Hein</posterous:lastName>
        <posterous:nickName>reallySeth</posterous:nickName>
        <posterous:displayName>Seth Hein</posterous:displayName>
      </posterous:author>
      <media:content type="image/gif" height="151" width="246" url="http://getfile6.posterous.com/getfile/files.posterous.com/reallyseth/j24KaXiSgU1KnZkPrgGJj4Cg0nQgl1cGEnkfB5567mIqBqvrXjQkAuFuRB9Y/solution01.gif">
        <media:thumbnail height="151" width="246" url="http://getfile6.posterous.com/getfile/files.posterous.com/reallyseth/j24KaXiSgU1KnZkPrgGJj4Cg0nQgl1cGEnkfB5567mIqBqvrXjQkAuFuRB9Y/solution01.gif" />
      </media:content>
      <media:content type="image/gif" height="205" width="243" url="http://getfile8.posterous.com/getfile/files.posterous.com/reallyseth/6azh5S9e1CUXSe2uhVlfEBUw0GX7PewxmoplBFKhoiliaa829g8gTvlrWR92/solution02.gif">
        <media:thumbnail height="205" width="243" url="http://getfile8.posterous.com/getfile/files.posterous.com/reallyseth/6azh5S9e1CUXSe2uhVlfEBUw0GX7PewxmoplBFKhoiliaa829g8gTvlrWR92/solution02.gif" />
      </media:content>
    <feedburner:origLink>http://creativesharepoint.posterous.com/solution-packaging-infopath-forms-for-sharepo</feedburner:origLink></item>
  </channel>
</rss>

