<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Marc Schuricht</title>
        <link>http://geekswithblogs.net/marcs/Default.aspx</link>
        <description>Killer Cubes</description>
        <language>en-US</language>
        <copyright>Marc Schuricht</copyright>
        <managingEditor>llblu15@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Marc Schuricht</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/marcs/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Inherit Global Navigation</title>
            <category>MOSS 2007 Application Development</category>
            <category>Powershell</category>
            <link>http://geekswithblogs.net/marcs/archive/2009/07/06/133287.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/marcs/archive/2009/07/06/133287.aspx'&gt;http://geekswithblogs.net/marcs/archive/2009/07/06/133287.aspx&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;p&gt; I was recently asked to develop a script which would allow all sites to inherit the global navigation.  Here it is.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;param&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;( &lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$rootUrl&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;"http://litwaredemo"&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; )&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;p&gt;"Setting STSADM"&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;p&gt;$stsadm&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;"C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\bin\STSADM.EXE"&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;p&gt;"Getting Sites XML"&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;&lt;p&gt;[&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;xml&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;] &lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$sites&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &amp;amp;&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$stsadm&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; -o enumsites -url &lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$rootUrl&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;p&gt;"Loading Microsoft.SharePoint"&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;&lt;p&gt;[&lt;/p&gt;&lt;p&gt;[&lt;/p&gt;&lt;p&gt;　&lt;/p&gt;&lt;p&gt;　　&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;System.Reflection.Assembly&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;]::&lt;/font&gt;&lt;/font&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;LoadWithPartialName&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;(&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;"Microsoft.SharePoint"&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;)&lt;/font&gt;&lt;/font&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;System.Reflection.Assembly&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;]::&lt;/font&gt;&lt;/font&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;LoadWithPartialName&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;(&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;"Microsoft.SharePoint.Publishing"&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;)&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;p&gt;function&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;[&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;[&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;　&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;SetGlobalNav&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;([&lt;/font&gt;&lt;/font&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;Microsoft.SharePoint.SPSite&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;] &lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$Site&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;)&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$site&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;.AllWebs | &lt;/font&gt;&lt;/font&gt;&lt;strong&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;%&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;{ &lt;/font&gt;&lt;/font&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;Microsoft.SharePoint.SPWeb&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;] &lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$web&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$SPSite&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;OpenWeb&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;(&lt;/font&gt;&lt;/font&gt;&lt;font color="#000080" size="1" face="Consolas"&gt;&lt;font color="#000080" size="1" face="Consolas"&gt;&lt;font color="#000080" size="1" face="Consolas"&gt;$_&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;.ServerRelativeUrl)&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;if&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; ([&lt;/font&gt;&lt;/font&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;Microsoft.SharePoint.Publishing.PublishingWeb&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;]::&lt;/font&gt;&lt;/font&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;IsPublishingWeb&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;(&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$web&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;)) {&lt;/font&gt;&lt;/font&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;Microsoft.SharePoint.Publishing.PublishingWeb&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;] &lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$pweb&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; [&lt;/font&gt;&lt;/font&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;Microsoft.SharePoint.Publishing.PublishingWeb&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;]::&lt;/font&gt;&lt;/font&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;GetPublishingWeb&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;(&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$web&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;)&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$pweb&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;.InheritGlobalNavigation &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;$true&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$web&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;.Dispose()&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;font color="#0000ff" size="1" face="Consolas"&gt;&lt;p&gt;function&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;EnumSiteCollections&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;()&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;"Getting Site Collection"&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;[&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$sites&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;.Sites.Site | &lt;/font&gt;&lt;/font&gt;&lt;strong&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;%&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;{&lt;/font&gt;&lt;/font&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;&lt;font color="#008080" size="1" face="Consolas"&gt;Microsoft.SharePoint.SPSite&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;] &lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$SPSite&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;&lt;font color="#ff0000" size="1" face="Consolas"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;strong&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;New-Object&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;"Microsoft.SharePoint.SPSite"&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;em&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;-argumentList&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000080" size="1" face="Consolas"&gt;&lt;font color="#000080" size="1" face="Consolas"&gt;&lt;font color="#000080" size="1" face="Consolas"&gt;$_&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;.Url&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;&lt;font color="#800000" size="1" face="Consolas"&gt;"Setting Global Navigation for $($_.Url)"&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;SetGlobalNav&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$SPSite&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;&lt;font color="#800080" size="1" face="Consolas"&gt;$SPSite&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;&lt;font color="#8b4513" size="1" face="Consolas"&gt;Dispose&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1" face="Consolas"&gt;&lt;font size="1" face="Consolas"&gt;()&lt;/font&gt;&lt;/font&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;font color="#5f9ea0" size="1" face="Consolas"&gt;&lt;p&gt;EnumSiteCollections&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/pre&gt; &lt;img src="http://geekswithblogs.net/marcs/aggbug/133287.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marc Schuricht</dc:creator>
            <guid>http://geekswithblogs.net/marcs/archive/2009/07/06/133287.aspx</guid>
            <pubDate>Tue, 07 Jul 2009 00:49:16 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/marcs/comments/133287.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/marcs/archive/2009/07/06/133287.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/marcs/comments/commentRss/133287.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/marcs/services/trackbacks/133287.aspx</trackback:ping>
        </item>
        <item>
            <title>What is the point of Configuration?</title>
            <category>MOSS 2007 Application Development</category>
            <category>Emerging Technologies</category>
            <link>http://geekswithblogs.net/marcs/archive/2008/02/22/119898.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/marcs/archive/2008/02/22/119898.aspx'&gt;http://geekswithblogs.net/marcs/archive/2008/02/22/119898.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I came across an interesting item this morning.  I need to deploy web.config changes to a MOSS 2007 farm.  After hearing many people including Ted Pattison speak about this in various sessions at the Office Developers Conference, my initial reaction was "Great, now I can make web.config modifications using a SPFeatureReceiver and the SPWebConfigModification class.  Additionally, this is discussed in detail here:&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb861909.aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb861909.aspx&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;and Here:&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;a href="http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=32"&gt;http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=32&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;However, I began thinking a little more in depth about this and something &lt;font size="2"&gt;occurred&lt;/font&gt; to me...If I am trying to make modifications to a configuration file so that these items can be changed without compliler dependencies, that is, with needing to rebuild and redeploy my code, &lt;font size="4"&gt;&lt;font style="BACKGROUND-COLOR: #ffff00"&gt;&lt;strong&gt;&lt;u&gt;&lt;em&gt;why in the world would I build an assembly as a SPFeatureReceiver, strong name it, deploy it as a feature to the GAC, that just holds configuration information?????&lt;/em&gt;&lt;/u&gt;&lt;/strong&gt;&lt;font style="BACKGROUND-COLOR: #ffffff"&gt;   &lt;font size="2"&gt;That seems to break the whole model of the purpose of a configuration file and configuration settings which are not compiler dependant.  &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;So I looked further and found that you can deploy web.config changes to the 12\CONFIG directory.  &lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms439965.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms439965.aspx&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;That really made my day, except that WSPs specifically target the 12\TEMPLATE directory and not anything above this directory such as 12\CONFIG.  Now, I fully appreciate that I probably don't know what I'm talking about so if anyone can point me in the right direction regarding a managed deployment strategy for config files to the 12\CONFIG directory using SharePoint solutions, I would be more than greatful, otherwise I will build a wix installer which will accomplish the same thing, only must be run on each server in our farm.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/marcs/aggbug/119898.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marc Schuricht</dc:creator>
            <guid>http://geekswithblogs.net/marcs/archive/2008/02/22/119898.aspx</guid>
            <pubDate>Fri, 22 Feb 2008 21:46:50 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/marcs/comments/119898.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/marcs/archive/2008/02/22/119898.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/marcs/comments/commentRss/119898.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/marcs/services/trackbacks/119898.aspx</trackback:ping>
        </item>
        <item>
            <title>What about PowerShell?</title>
            <category>Emerging Technologies</category>
            <category>MOSS 2007 Application Development</category>
            <category>Powershell</category>
            <link>http://geekswithblogs.net/marcs/archive/2007/12/12/117650.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/marcs/archive/2007/12/12/117650.aspx'&gt;http://geekswithblogs.net/marcs/archive/2007/12/12/117650.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;More on MOSS...&lt;/p&gt;
&lt;p&gt;In order to build our MOSS application we have decided to make the application as loosly-coupled from SharePoint as possible primarily because of the performance problems trying to develop on a Virtual Machine.  So, how do we do it most effectively?  With the help of some sound design patterns and a little PowerShell, it becomes pretty simple.  Let's begin with the design pattern.&lt;/p&gt;
&lt;p&gt;First we need to create a standard ASP.NET website project.  &lt;/p&gt;
&lt;p&gt;Then we need to create a "SolutionBuilder" project which is a standard Class Library project.&lt;/p&gt;
&lt;p&gt;On the property window of each of the two projects we need to make the default namespace to be identical.  We'll try Chadster.SharePoint.&lt;/p&gt;
&lt;p&gt;At this point neither project has a reference to each other.  Now on the web site we'll create a class called ChadsterBasePage.  Its implementation is pretty simple:&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;font size="2"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;using&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt; System.Web.UI;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;font size="2"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;namespace&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt; Chadster.SharePoint&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;ChadsterBasePage&lt;/span&gt; : &lt;span style="COLOR: #2b91af"&gt;Page&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt; ChadsterBasePage()&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="COLOR: green"&gt;//&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="COLOR: green"&gt;// TODO: Add constructor logic here&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="COLOR: green"&gt;//&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Now, on in the SolutionBuilder Project, we need to add references to Microsoft.SharePoint.dll and System.Web.dll and we need to create the same class as above:&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;font size="2"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;using&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt; Microsoft.SharePoint.WebControls;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;font size="2"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;namespace&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt; Chadster.SharePoint&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;ChadsterBasePage&lt;/span&gt; : &lt;span style="COLOR: #2b91af"&gt;LayoutsPageBase&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt; ChadsterBasePage()&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="COLOR: green"&gt;//&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="COLOR: green"&gt;// TODO: Add constructor logic here&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="COLOR: green"&gt;//&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The obvious difference is that our SolutionBuilder inherits LayoutsPageBase (so that we can deploy as an application page.)  In our base pages, we can now expose properties that could be exposed using the SharePoint API such as site title or site Id, etc.&lt;/p&gt;
&lt;p&gt;Now, in the website project, we can create as many pages as we like all inheriting from our base page.  Here is where the magic of powershell comes in.  We can write a simple script to copy template files and *.cs files to appropriate locations within the "SolutionBuilder" project to be build into a dll.&lt;/p&gt;
&lt;p&gt;In addition, the PowerShell script will also modify our manifest.xml file so that when we build the WSP file as described &lt;a href="http://www.andrewconnell.com/blog/articles/UsingVisualStudioAndMsBuildToCreateWssSolutions.aspx"&gt;HERE&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The PowerShell Script looks like this:&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;$solutionBuilder = "C:\Safe\SolutionBuilder"&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;$12HiveLayouts = "$solutionBuilder\TEMPLATE\LAYOUTS"&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;$12HiveLayoutsGraphics = "$12HiveLayouts\[ProjectName]"&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;$manifestFile = "$solutionBuilder\manifest.xml"&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;$csFolder = "$solutionBuilder\[ProjectName]"&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;$asciiEncoding = "ascii"&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;Get-ChildItem&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;$csFolder | Foreach-Object { Remove-Item $_.FullName -force -recurse }&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;Get-ChildItem&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;$12HiveLayoutsGraphics | Foreach-Object { Remove-Item $_.FullName -force -recurse }&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;Get-ChildItem C:\Safe\Website\Graphics\*.cs | ForEach-Object { Copy-Item $_.FullName $csFolder }&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;Get-ChildItem C:\Safe\Website\*.ascx | ForEach-Object { Copy-Item $_.FullName $12HiveLayoutsGraphics -force }&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;Get-ChildItem C:\Safe\Website\*.aspx | ForEach-Object { Copy-Item $_.FullName $12HiveLayoutsGraphics -force }&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;[xml]$manifest = Get-Content $manifestFile&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;$templateFiles = $manifest.Solution.TemplateFiles&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;$templateFiles.RemoveAll()&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;Get-ChildItem $12HiveLayoutsGraphics | Foreach-Object { &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;$templateFile = $manifest.CreateElement("TemplateFile")&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;$templateFiles.AppendChild($templateFile)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;$templateFile.SetAttribute("Location", "LAYOUTS\[ProjectName]\$($_.Name)")&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;$manifest | Format-Xml&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;| Out-File $manifestFile -encoding $asciiEncoding&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;$manifestText = get-content $manifestFile &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-bidi-font-size: 10.0pt; mso-no-proof: yes"&gt;&lt;font size="2"&gt;$manifestText -replace 'xmlns=""',''&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;| set-content $manifestFile&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; Enjoy!&lt;/p&gt;
&lt;p&gt; &lt;/p&gt; &lt;img src="http://geekswithblogs.net/marcs/aggbug/117650.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marc Schuricht</dc:creator>
            <guid>http://geekswithblogs.net/marcs/archive/2007/12/12/117650.aspx</guid>
            <pubDate>Thu, 13 Dec 2007 10:48:06 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/marcs/comments/117650.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/marcs/archive/2007/12/12/117650.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/marcs/comments/commentRss/117650.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/marcs/services/trackbacks/117650.aspx</trackback:ping>
        </item>
        <item>
            <title>AJAX Entender within Server Control</title>
            <category>MOSS 2007 Application Development</category>
            <category>.NET 2.0</category>
            <category>Emerging Technologies</category>
            <link>http://geekswithblogs.net/marcs/archive/2007/12/12/117649.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/marcs/archive/2007/12/12/117649.aspx'&gt;http://geekswithblogs.net/marcs/archive/2007/12/12/117649.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;So, I came across a requirement where the users do not want to wade through a potential 100's of items in a combobox, but are stuck on using a combo box.  Our team has already built a generic server control which inherits from TableRow allowing us to add various controls as TableRows within an ASP:Table.&lt;/p&gt;
&lt;p&gt;Essentially we get something like this:&lt;/p&gt;
&lt;pre&gt;&amp;lt;ASP:Table ID="Table1" runat="server"&amp;gt;&lt;br /&gt;  &amp;lt;Chadster:DropDownListFieldEditor &lt;br /&gt;	ID="DropDownListField" &lt;br /&gt;	Title="Pick an Item" &lt;br /&gt;	Description="Please Choose an Item from the list" &lt;br /&gt;	runat="server" /&amp;gt;&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  . and so on&lt;br /&gt;&amp;lt;/ASP:Table&amp;gt;&lt;/pre&gt;
&lt;p&gt;The interesting twist comes in when we want to implement the AJAX extender, found &lt;a href="http://www.asp.net/AJAX/AjaxControlToolkit/Samples/Default.aspx"&gt;HERE&lt;/a&gt;, to search our list using AJAX. &lt;/p&gt;
&lt;p&gt;A couple decisions are made to start:&lt;br /&gt;
(1) there may be more than 1 ajax enabled control per page so the page needs to implement the script manager and not the server control.&lt;br /&gt;
(2) the server control should be self-contained and nothing external should know or care that the control is ajax-enabled.  &lt;/p&gt;
&lt;p&gt;That said, here is the implementation:&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;[&lt;span style="COLOR: #2b91af"&gt;ToolboxData&lt;/span&gt;(&lt;span style="COLOR: #a31515"&gt;"&amp;lt;{0}:AjaxDropDownListFieldEditor runat=server&amp;gt;&amp;lt;/{0}:AjaxDropDownListFieldEditor&amp;gt;"&lt;/span&gt;)]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;    &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;AjaxDropDownListFieldEditor&lt;/span&gt; : &lt;span style="COLOR: #2b91af"&gt;DropDownListFieldEditor&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;    {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;        &lt;span style="COLOR: blue"&gt;private&lt;/span&gt; &lt;span style="COLOR: blue"&gt;readonly&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;ListSearchExtender&lt;/span&gt; searchExtender;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;        &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; AjaxDropDownListFieldEditor()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;        {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;            searchExtender = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;ListSearchExtender&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;        }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;        &lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt; &lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;        &lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt; Called by the ASP.NET page framework to notify server controls that use composition-based implementation to create any child controls they contain in preparation for posting back or rendering.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;        &lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt; &lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;        &lt;span style="COLOR: blue"&gt;protected&lt;/span&gt; &lt;span style="COLOR: blue"&gt;override&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; CreateChildControls()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;        {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;            &lt;span style="COLOR: blue"&gt;base&lt;/span&gt;.CreateChildControls();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;            searchExtender.PromptText = &lt;span style="COLOR: #a31515"&gt;"Enter Text"&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;            searchExtender.PromptPosition = &lt;span style="COLOR: #2b91af"&gt;ListSearchPromptPosition&lt;/span&gt;.Top;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;            searchExtender.TargetControlID = Editor.UniqueID;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;            EnsureChildControls();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;            Page.Form.Controls.Add(searchExtender);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;        }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Calibri" size="3"&gt;The magic happens in two places:&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Calibri" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;searchExtender.TargetControlID = Editor.&lt;span style="BACKGROUND: yellow; mso-highlight: yellow"&gt;UniqueID&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Calibri" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Calibri" size="3"&gt;this ensures that we have the control’s unique server-side id, otherwise it complains that it cannot find the control.  Secondly here:&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Calibri" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;Page.&lt;span style="BACKGROUND: yellow; mso-highlight: yellow"&gt;Form&lt;/span&gt;.Controls.Add(searchExtender);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Calibri" size="3"&gt;We need to ensure we add the searchExtender control to the Form’s control collection, not just the page control collection or the generic this.Controls.  If you add it to the page controls then the extender control  will not be placed in the within a form control with runat=”server”.  The latter will result in the extender not allowed to be added a TableRow control.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Calibri" size="3"&gt;Enjoy!&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt; &lt;/p&gt;
&lt;/span&gt; &lt;img src="http://geekswithblogs.net/marcs/aggbug/117649.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marc Schuricht</dc:creator>
            <guid>http://geekswithblogs.net/marcs/archive/2007/12/12/117649.aspx</guid>
            <pubDate>Thu, 13 Dec 2007 10:01:39 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/marcs/comments/117649.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/marcs/archive/2007/12/12/117649.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/marcs/comments/commentRss/117649.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/marcs/services/trackbacks/117649.aspx</trackback:ping>
        </item>
        <item>
            <title>MOSS Deployment Scenarios 2 of 4 - Feature.xml </title>
            <category>Drafts</category>
            <link>http://geekswithblogs.net/marcs/archive/2007/11/11/116785.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/marcs/archive/2007/11/11/116785.aspx'&gt;http://geekswithblogs.net/marcs/archive/2007/11/11/116785.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;In the last post I focused on the Solution file for a MOSS deployment of Andrew Connell's TaskLogger Timer Job found &lt;a href="http://www.andrewconnell.com/blog/articles/CreatingCustomSharePointTimerJobs.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this post, I'll move on to the second, and in my opinion, simpler Feature.xml.&lt;/p&gt;
&lt;pre&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;&amp;lt;Feature xmlns="http://schemas.microsoft.com/sharepoint/"&lt;br /&gt;   Id="FF736F29-1356-4236-9718-7899EDE7007D"&lt;br /&gt;   Title="Task Logger Timer Job"&lt;br /&gt;         Description="Installs the timer job."&lt;br /&gt;         Scope="Site"&lt;br /&gt;         Hidden="TRUE"&lt;br /&gt;         Version="1.0.0.0"&lt;br /&gt;   ReceiverAssembly="TaskLoggerTimerJob, &lt;br /&gt;	Version=1.0.0.0, &lt;br /&gt;	Culture=neutral, &lt;br /&gt;	PublicKeyToken=d4efc76f0ce027b5"&lt;br /&gt;   ReceiverClass="TaskLoggerTimerJob.TaskLoggerJobInstaller"&amp;gt;&lt;br /&gt;&amp;lt;/Feature&amp;gt;&lt;br /&gt;&lt;/pre&gt; &lt;img src="http://geekswithblogs.net/marcs/aggbug/116785.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marc Schuricht</dc:creator>
            <guid>http://geekswithblogs.net/marcs/archive/2007/11/11/116785.aspx</guid>
            <pubDate>Mon, 12 Nov 2007 06:48:17 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/marcs/comments/116785.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/marcs/archive/2007/11/11/116785.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/marcs/comments/commentRss/116785.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/marcs/services/trackbacks/116785.aspx</trackback:ping>
        </item>
        <item>
            <title>MOSS Deployment Scenarios 1 of 4 - Manifest.xml</title>
            <category>MOSS 2007 Application Development</category>
            <link>http://geekswithblogs.net/marcs/archive/2007/11/11/116782.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/marcs/archive/2007/11/11/116782.aspx'&gt;http://geekswithblogs.net/marcs/archive/2007/11/11/116782.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;As I mentioned earlier, I am working on a project that involves using MOSS as a development platform or framework to create an entire application instead of just providing a few simple customizations.  This means that may of the items will be deployed as solutions (.wsp) and feature deployments.&lt;/p&gt;
&lt;p&gt;There have been many posts on creating solutions and deploying them to MOSS, but many have lacked the level of detail that would help a lot of developers understand and troubleshoot problems with MOSS solution deployments.&lt;/p&gt;
&lt;p&gt;For starters, let's look at the different files and configurations:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Manifest.xml&lt;/li&gt;
    &lt;li&gt;Feature.xml&lt;/li&gt;
    &lt;li&gt;Elements.xml&lt;/li&gt;
    &lt;li&gt;&amp;lt;ProjectName&amp;gt;.ddf&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Generally speaking, these are the three files needed to define a solution package and a 4th ddf file used to create a wsp (CAB) file that MOSS will use to install.&lt;/p&gt;
&lt;p&gt;Let's use a semi-real-world example to get an understanding of what's going on.  Once we have the two classes set up, we can start to define the different solution/feature files.  For the content of what we will deploy, I will use Andrew Connell's TaskLogger Timer Job as a reference. &lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;a href="http://www.andrewconnell.com/blog/articles/CreatingCustomSharePointTimerJobs.aspx"&gt;http://www.andrewconnell.com/blog/articles/CreatingCustomSharePointTimerJobs.aspx&lt;/a&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;em&gt;Manifest.xml&lt;/em&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is the primary file which defines the solution package as a whole.  MOSS uses this file to know where to look for various files.  &lt;/p&gt;
&lt;pre&gt; &amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;&amp;lt;Solution xmlns="http://schemas.microsoft.com/sharepoint/"&lt;br /&gt;          SolutionId="A32DFE4D-B965-42af-B862-5897FA297755"&lt;br /&gt;          DeploymentServerType="[ApplicationServer | WebFrontEnd]"&amp;gt;&lt;/pre&gt;
&lt;pre&gt; &amp;lt;FeatureManifests&amp;gt;&lt;br /&gt;  &amp;lt;FeatureManifest Location="TaskLoggerTimerJob\feature.xml" /&amp;gt;&lt;br /&gt; &amp;lt;/FeatureManifests&amp;gt;&lt;/pre&gt;
&lt;pre&gt; &amp;lt;Assemblies&amp;gt;&lt;br /&gt;  &amp;lt;Assembly DeploymentTarget="[WebApplication | GlobalAssemblyCache]" Location="TaskLoggerTimerJob.dll"&amp;gt;&amp;lt;/Assembly&amp;gt;&lt;br /&gt; &amp;lt;/Assemblies&amp;gt;&lt;br /&gt;&amp;lt;/Solution&amp;gt;&lt;/pre&gt;
&lt;p&gt;The Solution element defines the SolutionId, just a new guid and the deployment server type.  In this case, since we are deploying a time job, we will use the ApplicationServer.  However, a scenario where you might just use WebFrontEnd would be deploying a simple web part.&lt;/p&gt;
&lt;p&gt;The FeatureManifests element refers to the feature.xml files collection.  Yes, you can deploy many features with one solution.  Just specify the different Feature folders.  One, caveat, you must define a feature.xml file for each feature.  Meaning you cannot name the feature.xml file as anything other than feature.xml.  Doing so will give the following error upon deployment:&lt;/p&gt;
&lt;pre&gt;"The feature path &amp;lt;FeatureName&amp;gt;\otherfeat.xml' must be of the form directory\feature.xml". &lt;/pre&gt;
&lt;p&gt;The Assemblies element defines which assemblies you are deploying.  For timer jobs, you MUST deploy to the GAC, however, for other items, you can choose WebApplication as the deployment target. If you deploy as a WebApplication, you must add an entry into the web.config located in the root of the virtual directory of the target of the deployment which specifies the file as a "SafeControl" in the SafeControls Element.  &lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&amp;lt;SafeControl Assembly="&lt;em&gt;Assembly Name&lt;/em&gt;, &lt;em&gt;Version,&lt;/em&gt; &lt;em&gt;Culture&lt;/em&gt;, &lt;em&gt;PublicKeyToken&lt;/em&gt;" Namespace="&lt;em&gt;Namespace&lt;/em&gt;" TypeName="*" /&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt; &lt;img src="http://geekswithblogs.net/marcs/aggbug/116782.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marc Schuricht</dc:creator>
            <guid>http://geekswithblogs.net/marcs/archive/2007/11/11/116782.aspx</guid>
            <pubDate>Mon, 12 Nov 2007 06:08:30 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/marcs/comments/116782.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/marcs/archive/2007/11/11/116782.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/marcs/comments/commentRss/116782.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/marcs/services/trackbacks/116782.aspx</trackback:ping>
        </item>
        <item>
            <title>Introduction</title>
            <category>MOSS 2007 Application Development</category>
            <link>http://geekswithblogs.net/marcs/archive/2007/10/12/116016.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/marcs/archive/2007/10/12/116016.aspx'&gt;http://geekswithblogs.net/marcs/archive/2007/10/12/116016.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Recently, I was asked to help build a web application that, like most custom dev projects, has its own RDBMS, and general application layers to present the data users are able to manage.  The application has some simple workflows, but generally is simple CRUD stuff.  Additionally, the client needs to be able to associate the data stored in the custom application with physical files which can range from 50-300MB each.  &lt;/p&gt;
&lt;p&gt;At this point, anyone reading this blog is thinking...why are you blogging about this??&lt;/p&gt;
&lt;p&gt;The catch is the client has already made the decision that all web developement must be surfaced through MOSS 2007.  Immediately several design options come to mind to get this to work.  &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt; I can create a standard web application that "looks" like MOSS and just have that run as a traditional web app off of a link within SharePoint.  &lt;/li&gt;
    &lt;li&gt;I can follow the same approach as 1, but expose the interface through an IFrame web part. or &lt;/li&gt;
    &lt;li&gt;Dig deep into the MOSS environment and take this opportunity to show that an application can be built leveraging the existing MOSS environment as a development framework.  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;I Choose 3!&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;So, I'll begin to discuss the problems and solutions as well as headaches and successes that occur as this application begins to take form.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/marcs/aggbug/116016.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marc Schuricht</dc:creator>
            <guid>http://geekswithblogs.net/marcs/archive/2007/10/12/116016.aspx</guid>
            <pubDate>Fri, 12 Oct 2007 22:03:10 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/marcs/comments/116016.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/marcs/archive/2007/10/12/116016.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/marcs/comments/commentRss/116016.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/marcs/services/trackbacks/116016.aspx</trackback:ping>
        </item>
        <item>
            <title>MOSS and Dynamics AX.  A Happy Family</title>
            <category>Emerging Technologies</category>
            <category>Dynamics</category>
            <link>http://geekswithblogs.net/marcs/archive/2007/08/22/114888.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/marcs/archive/2007/08/22/114888.aspx'&gt;http://geekswithblogs.net/marcs/archive/2007/08/22/114888.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;After creating this blog 2+ years ago, and only posting 3 articles and starting lots of other, I realized, that I suck at blogging.  &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/sad_smile.gif" /&gt;So, I have resolved to blog more often, but with shorter topics:&lt;/p&gt;
&lt;p&gt;That's right, Microsoft has finally realized the need to have an integration path with MOSS (their premere corporate portal solution) with Dynamics AX (their premere ERP system)  Please read this white paper, it has a lot of great ideas!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.microsoft.com/download/9/E/D/9ED7F2E2-116B-4207-82F6-774F8225F3F8/MicrosoftDynamicsAX_WSS_WhitePaper.pdf"&gt;http://download.microsoft.com/download/9/E/D/9ED7F2E2-116B-4207-82F6-774F8225F3F8/MicrosoftDynamicsAX_WSS_WhitePaper.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt; &lt;img src="http://geekswithblogs.net/marcs/aggbug/114888.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marc Schuricht</dc:creator>
            <guid>http://geekswithblogs.net/marcs/archive/2007/08/22/114888.aspx</guid>
            <pubDate>Wed, 22 Aug 2007 23:26:51 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/marcs/comments/114888.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/marcs/archive/2007/08/22/114888.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/marcs/comments/commentRss/114888.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/marcs/services/trackbacks/114888.aspx</trackback:ping>
        </item>
        <item>
            <title>Wonderful World of Dynamics</title>
            <category>.NET 2.0</category>
            <category>Emerging Technologies</category>
            <link>http://geekswithblogs.net/marcs/archive/2006/10/25/95089.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/marcs/archive/2006/10/25/95089.aspx'&gt;http://geekswithblogs.net/marcs/archive/2006/10/25/95089.aspx&lt;/a&gt;&lt;/p&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;Microsoft has recently &lt;FONT color=#000000&gt;released Dynamics AX 4.0, their latest version of Enterprise ERP to attempt to compete better with the "Big Guys", namely Oracle, and SAP.&amp;nbsp; After seeing some of the capabilities of CRM 3.0, I wasn't too excited about the most recent release of any MBS technology.&amp;nbsp; Boy was I surprised after I got the install working (yikes).&amp;nbsp; In case some of you haven't heard, here are a few of the development&amp;nbsp;features DAX 4.0 has:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face="Courier New" size=2&gt;Its own OO language (yep, that's right, read it again just to make sure you got it...Polyporphism, Encapsulation, Inheritance, the works.)&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face="Courier New" size=2&gt;An IDE...doesn't rival VS2005, but for what it is, not bad&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face="Courier New" size=2&gt;CLR integration complete with Intellisense&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face="Courier New" size=2&gt;Open Source&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face="Courier New" size=2&gt;Enterprise Portal/Web Part integration&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face="Courier New" size=2&gt;Integrated Unit Testing&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;FONT face="Courier New" size=2&gt;
&lt;P&gt;I got to thinking about the 3rd one and realized that with complete CLR integration some of the possibilities.&amp;nbsp; So, just for the heck of it, I decided to throw together a little sample that will allow a user to record a debit from a petty cash account using a smart phone.&amp;nbsp; More to come on that.&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt; &lt;img src="http://geekswithblogs.net/marcs/aggbug/95089.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marc Schuricht</dc:creator>
            <guid>http://geekswithblogs.net/marcs/archive/2006/10/25/95089.aspx</guid>
            <pubDate>Thu, 26 Oct 2006 01:43:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/marcs/comments/95089.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/marcs/archive/2006/10/25/95089.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/marcs/comments/commentRss/95089.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/marcs/services/trackbacks/95089.aspx</trackback:ping>
        </item>
        <item>
            <title>VSS with VS</title>
            <category>.NET 2.0</category>
            <link>http://geekswithblogs.net/marcs/archive/2005/11/23/61027.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/marcs/archive/2005/11/23/61027.aspx'&gt;http://geekswithblogs.net/marcs/archive/2005/11/23/61027.aspx&lt;/a&gt;&lt;/p&gt;&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Yesterday when working with VS 2005 I ran into a particular frusteration.&amp;nbsp; My client has dictated that even thought this project is a 2.0 project they are not yet ready to use VSS 2005 and, for obvious reasons, not ready to use VSTS.&amp;nbsp; so we are stuck with &lt;SARCASM&gt;&lt;SARCASM&gt;good ole&lt;/SARCASM&gt;&lt;/SARCASM&gt; 6.0d.&amp;nbsp; When starting my team had some particular problems with storing a web project and getting latest of the code.&amp;nbsp; Turns out the MS has hidden the Open Solution from Source Control command.&amp;nbsp; It is now a left-hand task item on the file explorer common control when doing a regular open solution.&amp;nbsp; I actually like this approach better since it is more consistent with the other XP file explorer common controls, however, it would have been nice if this was somehow documented or at least configurable so that teams used to working with 6.0 are not left to scour newsgroups for this feature.&amp;nbsp; Anyway, I just wanted to throw this out there in case any of you are having the same difficulty.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;For more details, &lt;A href="http://msdn2.microsoft.com/en-us/library/b9zzhatx.aspx"&gt;click here&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt; &lt;img src="http://geekswithblogs.net/marcs/aggbug/61027.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marc Schuricht</dc:creator>
            <guid>http://geekswithblogs.net/marcs/archive/2005/11/23/61027.aspx</guid>
            <pubDate>Wed, 23 Nov 2005 22:36:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/marcs/comments/61027.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/marcs/archive/2005/11/23/61027.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/marcs/comments/commentRss/61027.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/marcs/services/trackbacks/61027.aspx</trackback:ping>
        </item>
        <item>
            <title>2.0 Release Wish List </title>
            <category>.NET 2.0</category>
            <link>http://geekswithblogs.net/marcs/archive/2005/11/08/59485.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/marcs/archive/2005/11/08/59485.aspx'&gt;http://geekswithblogs.net/marcs/archive/2005/11/08/59485.aspx&lt;/a&gt;&lt;/p&gt;&lt;DIV class=post-body&gt;
&lt;P&gt;
&lt;DIV style="CLEAR: both"&gt;&lt;/DIV&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-SIZE: 85%; FONT-FAMILY: verdana"&gt;Yeah, I know it has not even been 24 hours since the release of 2.0 but I've already compliled a list of likes/dislikes and here they are. Maybe someone at Microsoft will stumble across this:&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="FONT-SIZE: 85%; FONT-FAMILY: Verdana"&gt;&lt;FONT size=2&gt;&lt;STRIKE&gt;Prompting when I clear all my breakpoints??!? c'mon I'm smarter than that!&lt;/STRIKE&gt;&lt;/FONT&gt;&lt;/SPAN&gt; 
&lt;LI&gt;&lt;SPAN style="FONT-SIZE: 85%; FONT-FAMILY: Verdana"&gt;&lt;FONT size=2&gt;Refactor doesn't rename folders on my machine. Ok, this is a huge wish, but sho' would be nice&lt;/FONT&gt;&lt;/SPAN&gt; 
&lt;LI&gt;&lt;SPAN style="FONT-SIZE: 85%; FONT-FAMILY: Verdana"&gt;&lt;FONT size=2&gt;ecapsulating a field won't format the class so that my fields are at the top, then constructors then properties then methods. That can't be too hard.&lt;/FONT&gt;&lt;/SPAN&gt; 
&lt;LI&gt;&lt;SPAN style="FONT-SIZE: 85%; FONT-FAMILY: Verdana"&gt;&lt;FONT size=2&gt;classes aren't public by default&lt;/FONT&gt;&lt;/SPAN&gt; 
&lt;LI&gt;&lt;SPAN style="FONT-SIZE: 85%; FONT-FAMILY: Verdana"&gt;&lt;FONT size=2&gt;Limited Integration with VSS for MSBuild (yeah yeah, I know there are tools available, but again...sho' would be nice)&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;LI&gt;&lt;SPAN style="FONT-SIZE: 85%; FONT-FAMILY: Verdana"&gt;&lt;FONT size=2&gt;With ObjectDataSources I can't choose an interface for my business object (with the wizard).&amp;nbsp; Shouldn't I be able to bind to a contract?&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV style="CLEAR: both; PADDING-BOTTOM: 0.25em"&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;/P&gt;&lt;/DIV&gt; &lt;img src="http://geekswithblogs.net/marcs/aggbug/59485.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marc Schuricht</dc:creator>
            <guid>http://geekswithblogs.net/marcs/archive/2005/11/08/59485.aspx</guid>
            <pubDate>Wed, 09 Nov 2005 06:56:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/marcs/comments/59485.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/marcs/archive/2005/11/08/59485.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/marcs/comments/commentRss/59485.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/marcs/services/trackbacks/59485.aspx</trackback:ping>
        </item>
    </channel>
</rss>