<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Jan Tielens&amp;#39; Bloggings</title><link>http://weblogs.asp.net/jan/default.aspx</link><description>Joy, frustration, excitement, madness, aha&amp;#39;s, headaches, ... codito ergo sum!</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Adding Copy and Paste to SharePoint with the SmartTools</title><link>http://weblogs.asp.net/jan/archive/2008/06/14/adding-copy-and-paste-to-sharepoint-with-the-smarttools.aspx</link><pubDate>Sat, 14 Jun 2008 09:06:19 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6274027</guid><dc:creator>Jan Tielens</dc:creator><slash:comments>13</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jan/rsscomments.aspx?PostID=6274027</wfw:commentRss><comments>http://weblogs.asp.net/jan/archive/2008/06/14/adding-copy-and-paste-to-sharepoint-with-the-smarttools.aspx#comments</comments><description>&lt;p&gt;I've just uploaded a new extensions to the &lt;a href="http://www.codeplex.com/smarttools" target="_blank"&gt;SmartTools for SharePoint&lt;/a&gt; project on &lt;a href="http://www.codeplex.com/" target="_blank"&gt;CodePlex&lt;/a&gt;. This extension adds Copy and Paste functionality to SharePoint Document Libraries. You can download the extension from the &lt;a href="http://www.codeplex.com/smarttools/Release/ProjectReleases.aspx?ReleaseId=13197" target="_blank"&gt;Releases section&lt;/a&gt;. For more info and screenshots see the &lt;a href="http://www.codeplex.com/smarttools/Wiki/View.aspx?title=Copy%20Paste" target="_blank"&gt;CopyPaste Wiki page on CodePlex&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=smarttools&amp;amp;DownloadId=36907" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=smarttools&amp;amp;DownloadId=36909" /&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:58b40d74-53f0-4178-bb5a-a62ff4247288" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/sharepoint" rel="tag"&gt;sharepoint&lt;/a&gt;,&lt;a href="http://technorati.com/tags/wss" rel="tag"&gt;wss&lt;/a&gt;,&lt;a href="http://technorati.com/tags/moss" rel="tag"&gt;moss&lt;/a&gt;,&lt;a href="http://technorati.com/tags/copypaste" rel="tag"&gt;copypaste&lt;/a&gt;,&lt;a href="http://technorati.com/tags/smarttools" rel="tag"&gt;smarttools&lt;/a&gt;,&lt;a href="http://technorati.com/tags/copy" rel="tag"&gt;copy&lt;/a&gt;,&lt;a href="http://technorati.com/tags/paste" rel="tag"&gt;paste&lt;/a&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6274027" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jan/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Got Some Spare Time? Read Some SharePoint Blogs!</title><link>http://weblogs.asp.net/jan/archive/2008/06/04/got-some-spare-time-read-some-sharepoint-blogs.aspx</link><pubDate>Wed, 04 Jun 2008 07:01:27 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6246824</guid><dc:creator>Jan Tielens</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jan/rsscomments.aspx?PostID=6246824</wfw:commentRss><comments>http://weblogs.asp.net/jan/archive/2008/06/04/got-some-spare-time-read-some-sharepoint-blogs.aspx#comments</comments><description>&lt;p&gt;Weblogs are a great way to keep up with the latest SharePoint Buzz and I get quite a lot of questions from people who are just dipping their toes in the SharePoint pool for some good reading material. Well if you don't want to go after every interesting SharePoint blog individually or if you want to add blogs to your list that you didn't know yet, check out following links:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;On the &lt;a href="http://sharepoint.microsoft.com/sharepoint/default.aspx" target="_blank"&gt;SharePoint Community Portal&lt;/a&gt; you can find the &lt;a href="http://services.newsgator.com/sharepoint/opml" target="_blank"&gt;OPML of SharePoint PG, MVPs, Insiders, and Rangers&lt;/a&gt;. You can import this OPML in your favorite RSS reader, et voila you are subscribed to a bunch of very interesting blogs.&lt;/li&gt;    &lt;li&gt;Also on the &lt;a href="http://sharepoint.microsoft.com/sharepoint/default.aspx" target="_blank"&gt;SharePoint Community Portal&lt;/a&gt; you can find a link to some aggregated feeds, for example &lt;a href="http://feeds.feedburner.com/sharepointmvpblogs" target="_blank"&gt;the feed of all MVP blogs&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.sharepointjoel.com/" target="_blank"&gt;Joel Oleson&lt;/a&gt; has compiled a list of the &lt;a href="http://www.sharepointjoel.com/Lists/Posts/Post.aspx?ID=31" target="_blank"&gt;Top 100 SharePoint Blogs&lt;/a&gt;. &lt;em&gt;&amp;lt;ShamelessPlug&amp;gt;I'm number seven in the list!&amp;lt;/ShamelessPlug&amp;gt;&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;Probably due to lots of feedback related to his &lt;a href="http://www.sharepointjoel.com/Lists/Posts/Post.aspx?ID=31" target="_blank"&gt;Top 100 list&lt;/a&gt;, Joel also created a &lt;a href="http://www.sharepointjoel.com/Lists/Posts/Post.aspx?ID=32" target="_blank"&gt;list of more than 300 SharePoint related blogs&lt;/a&gt;, sorted alphabetically.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you really want to read every bit related to SharePoint, you can use following sites (quality of the content is not guaranteed!):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://technorati.com/search/sharepoint?authority=n&amp;amp;language=en" target="_blank"&gt;Technorati SharePoint search&lt;/a&gt; (&lt;a href="http://feeds.technorati.com/search/sharepoint?authority=n&amp;amp;language=en" target="_blank"&gt;RSS&lt;/a&gt;) (Technorati is tracking all kind of blogs and news sources)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://summize.com/search?q=sharepoint" target="_blank"&gt;Summize SharePoint search&lt;/a&gt; (&lt;a href="http://summize.com/search.atom?q=sharepoint" target="_blank"&gt;RSS&lt;/a&gt;) (Summize is a cool search engine for &lt;a href="http://www.twitter.com" target="_blank"&gt;Twitter&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.google.com/blogsearch?hl=en&amp;amp;q=sharepoint&amp;amp;ie=UTF-8&amp;amp;scoring=d" target="_blank"&gt;Google Blog Search for SharePoint&lt;/a&gt; (&lt;a href="http://www.google.com/blogsearch_feeds?hl=en&amp;amp;q=sharepoint&amp;amp;scoring=d&amp;amp;ie=utf-8&amp;amp;num=10&amp;amp;output=rss" target="_blank"&gt;RSS&lt;/a&gt;)&lt;/li&gt; &lt;/ul&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:dc9aafed-878c-4834-a4fb-d3ea32ba5d83" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/sharepoint" rel="tag"&gt;sharepoint&lt;/a&gt;,&lt;a href="http://technorati.com/tags/wss" rel="tag"&gt;wss&lt;/a&gt;,&lt;a href="http://technorati.com/tags/moss" rel="tag"&gt;moss&lt;/a&gt;,&lt;a href="http://technorati.com/tags/blog" rel="tag"&gt;blog&lt;/a&gt;,&lt;a href="http://technorati.com/tags/blogs" rel="tag"&gt;blogs&lt;/a&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6246824" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jan/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>New Version of the Caml Query Builder Tool</title><link>http://weblogs.asp.net/jan/archive/2008/05/28/new-version-of-the-caml-query-builder-tool.aspx</link><pubDate>Wed, 28 May 2008 05:31:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6226472</guid><dc:creator>Jan Tielens</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jan/rsscomments.aspx?PostID=6226472</wfw:commentRss><comments>http://weblogs.asp.net/jan/archive/2008/05/28/new-version-of-the-caml-query-builder-tool.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://www.u2u.info/Blogs/karine" mce_href="http://www.u2u.info/Blogs/karine"&gt;My colleague Karine&lt;/a&gt; has released a new version of her Caml Query Builder Tool! Version 3.1.0.0 has some great new features:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Query fields by ID&lt;/li&gt;&lt;li&gt;&lt;strong&gt;GetListItemChanges&lt;/strong&gt; (method of the Lists.asmx web 
service)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;GetListItemChangesSinceToken&lt;/strong&gt; (method of the Lists.asmx web 
service)&lt;/li&gt;&lt;li&gt;extra options of the &lt;strong&gt;QueryOptions&lt;/strong&gt; part&lt;/li&gt;&lt;li&gt;support for data type &lt;strong&gt;ModStat&lt;/strong&gt; &lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.u2u.info/SharePoint/U2U%20Community%20Tools/U2U%20Caml%20Query%20Builder%202007%20v3.1.0.0%20%28windows%20version%29.zip" mce_href="http://www.u2u.info/SharePoint/U2U%20Community%20Tools/U2U%20Caml%20Query%20Builder%202007%20v3.1.0.0%20(windows%20version).zip"&gt;Download here&lt;/a&gt; and check &lt;a href="http://www.u2u.info/Blogs/karine/Lists/Posts/Post.aspx?ID=28" mce_href="http://www.u2u.info/Blogs/karine/Lists/Posts/Post.aspx?ID=28"&gt;her blog post&lt;/a&gt; for the full details.&lt;br&gt;



&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6226472" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jan/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>DevDays NL Presentations and Demos Online</title><link>http://weblogs.asp.net/jan/archive/2008/05/28/devdays-nl-presentations-and-demos-online.aspx</link><pubDate>Wed, 28 May 2008 05:20:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6226462</guid><dc:creator>Jan Tielens</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jan/rsscomments.aspx?PostID=6226462</wfw:commentRss><comments>http://weblogs.asp.net/jan/archive/2008/05/28/devdays-nl-presentations-and-demos-online.aspx#comments</comments><description>
&lt;p&gt;Pfew, the &lt;a href="http://www.devdays.nl" mce_href="http://www.devdays.nl"&gt;DevDays 2008 in Amsterdam&lt;/a&gt;, The Netherlands are over! I think both of my sessions (&lt;b&gt;Getting your SharePoint Code Deployed&lt;/b&gt; &amp;amp; &lt;b&gt;Advanced Web Part Development&lt;/b&gt;) went pretty well; no crashes or failing demos. Let's hope the audience thinks the same. :-) I already got quite some requests to get my presentations and demo code. So instead of sending a copy to everybody's email, I've uploaded them to my SkyDrive account.&lt;/p&gt;

&lt;p&gt;&lt;iframe src="http://cid-e8dbdda21bf6ff73.skydrive.live.com/embedrowdetail.aspx/Public/DevDays%20NL%202008" marginheight="0" marginwidth="0" style="border: 1px solid rgb(221, 229, 233); margin: 3px; padding: 0pt; width: 240px; height: 66px; background-color: rgb(255, 255, 255);" mce_src="http://cid-e8dbdda21bf6ff73.skydrive.live.com/embedrowdetail.aspx/Public/DevDays%20NL%202008" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;

&lt;p&gt;If you have any questions, comments and/or feedback; feel free to post them as a comment on this blog and I'll try to do my best to answer them. :-)&lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6226462" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jan/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>DevDays 2008 The Netherlands</title><link>http://weblogs.asp.net/jan/archive/2008/05/21/devdays-2008-the-netherlands.aspx</link><pubDate>Wed, 21 May 2008 17:23:05 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6208090</guid><dc:creator>Jan Tielens</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jan/rsscomments.aspx?PostID=6208090</wfw:commentRss><comments>http://weblogs.asp.net/jan/archive/2008/05/21/devdays-2008-the-netherlands.aspx#comments</comments><description>&lt;p&gt;For the third year in a row I'll be speaking at the Dutch &lt;a href="http://devdays.nl/"&gt;Developer Days&lt;/a&gt; in Amsterdam. The event starts tomorrow and I've got two sessions on &lt;a href="http://devdays.nl/Programma.aspx?deel=23"&gt;Friday&lt;/a&gt; (Getting your SharePoint Code Deployed and Advanced Web Part Development). Speaking in Amsterdam is always lots of fun, so I hope to meet you there!&lt;/p&gt;  &lt;p&gt;By the way, if you can't make it to the event, you can watch a life screen of the keynote.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6208090" width="1" height="1"&gt;</description></item><item><title>Photo World Record Attempt in Amsterdam</title><link>http://weblogs.asp.net/jan/archive/2008/05/21/photo-world-record-attempt-in-amsterdam.aspx</link><pubDate>Wed, 21 May 2008 17:12:38 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6208072</guid><dc:creator>Jan Tielens</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jan/rsscomments.aspx?PostID=6208072</wfw:commentRss><comments>http://weblogs.asp.net/jan/archive/2008/05/21/photo-world-record-attempt-in-amsterdam.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://micromiel.com/"&gt;Micromiel&lt;/a&gt; is organizing a cool photo event in Amsterdam this weekend, I whish I could attend it!&lt;/p&gt;  &lt;p&gt;&lt;em&gt;This Saturday (the 24th of May), I&amp;#8217;m organizing an event for amateur-photographers in downtown Amsterdam. The day starts around 12 noon with a welcome and introduction at &lt;/em&gt;&lt;a href="http://www.rodehoed.nl"&gt;&lt;em&gt;&amp;#8216;De Rode Hoed&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;#8216;, a pretty classy venue naar the waterside. Around 40 photographers will be divided into 4 groups of 10, and will then board a ship that will be docked right outside the building. Right then, the challenge starts. Every group will take pictures over the course of 2 kilometers, so that in total we&amp;#8217;ll span an 8 kilometer route from the boat. All the pictures will be collected and then stitched together using Windows Live Photo Gallery to form the world&amp;#8217;s largest panoramic picture. The end result will be put into a DeepZoom viewer so it&amp;#8217;ll become scrollable and zoomable and it will be sent to the Guiness Book of World Records. &lt;a href="http://micromiel.com/2008/05/19/photo-event-amsterdam/"&gt;Full post here&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6208072" width="1" height="1"&gt;</description></item><item><title>Creating Hierarchical Menus with a CustomAction in SharePoint</title><link>http://weblogs.asp.net/jan/archive/2008/05/08/creating-hierarchical-menus-with-a-customaction-in-sharepoint.aspx</link><pubDate>Thu, 08 May 2008 05:14:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6169669</guid><dc:creator>Jan Tielens</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jan/rsscomments.aspx?PostID=6169669</wfw:commentRss><comments>http://weblogs.asp.net/jan/archive/2008/05/08/creating-hierarchical-menus-with-a-customaction-in-sharepoint.aspx#comments</comments><description>&lt;P&gt;It’s a fairly known technique to make use of CustomActions to add elements to the out-of-the-box user interface of SharePoint: you can add menu items to the Site Actions menu, you can add links on the Site Settings page, etc. The following piece of XML is the manifest of a feature that will add a new menu item to the Site Actions menu:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;lt;Elements xmlns="&lt;/FONT&gt;&lt;FONT face="courier new,courier"&gt;http://schemas.microsoft.com/sharepoint/&lt;/FONT&gt;&lt;FONT face="courier new,courier"&gt;"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;CustomAction&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Id="{B0B5A0CB-7FBE-4dd6-9B2A-2B1E1321B8F9}"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Location="Microsoft.SharePoint.StandardMenu"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GroupId="SiteActions"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Title="Dummy Menu Item"&amp;gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;UrlAction&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Url="/_layouts/dummy.aspx"/&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/CustomAction&amp;gt;&lt;BR&gt;&amp;lt;/Elements&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;For a more detailed description of CustomActions, I recommend following articles:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn.microsoft.com/en-us/library/ms460194.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms460194.aspx"&gt;Custom Action Element (MSDN)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://blog.thekid.me.uk/archive/2007/06/23/sample-editcontrolblock-customaction-for-sharepoint.aspx" mce_href="http://blog.thekid.me.uk/archive/2007/06/23/sample-editcontrolblock-customaction-for-sharepoint.aspx"&gt;Sample CustomActions for SharePoint&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://johnholliday.net/resources/customactions.html" mce_href="http://johnholliday.net/resources/customactions.html"&gt;SharePoint Custom Action Identifiers&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Another variation on this technique is to provide a reference to a class, instead of having fixed UI element specified in the XML. The following piece of XML points to the class ListSettingsMenu in the DemoCustomAction assembly.&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;lt;Elements xmlns="http://schemas.microsoft.com/sharepoint/"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;CustomAction&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Id="{42550415-FD08-4f1f-BAE6-93CCB2A2DE60}"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Location="Microsoft.SharePoint.StandardMenu"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GroupId="SiteActions"&lt;BR&gt;&lt;FONT color=#990000&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ControlAssembly="DemoCustomAction"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ControlClass="DemoCustomAction.ListSettingsMenu"&amp;gt;&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/CustomAction&amp;gt;&lt;BR&gt;&amp;lt;/Elements&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The cool thing is that you now can write code that will render the UI element; it’s even possible to create a hierarchical menu. The following implementation of the ListSettingsMenu class, in combination with the XML from above, is adding one extra menu item to the Site Actions menu (List Settings). This new menu item will contain a sub menu item for every list on the site, these sub menu items will point to the settings pages of the corresponding lists. The ListSettingsMenu class inherits from the WebControl class, by overriding the CreateChildControls method, you can instantiate &lt;A class="" href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.submenutemplate.aspx" mce_href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.submenutemplate.aspx"&gt;SubMenuTemplate&lt;/A&gt; and &lt;A class="" href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.menuitemtemplate.aspx" mce_href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.menuitemtemplate.aspx"&gt;MenuItemTemplate&lt;/A&gt; instances, and add them to the Controls collection. An instance of the SubMenuItemTemplate class corresponds with a menu item that contains sub menu items. These sub menu items are instances of the MenuItemTemplate class. By setting the Text, Description and ImageUrl properties of these classes, you can specify how the menu items will be rendered in the SharePoint UI. The ClientOnClickNavigateUrl of the MenuItemTemplate class specifies the URL for the menu item itself.&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;namespace DemoCustomAction&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class ListSettingsMenu: System.Web.UI.WebControls.WebControl&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override void CreateChildControls()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SubMenuTemplate listSettings = new SubMenuTemplate();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; listSettings.Text = "List Settings";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; listSettings.Description = "Manage settings for lists on this site";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; listSettings.ImageUrl = "/_layouts/images/lg_ICASCX.gif";&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (SPList list in SPContext.Current.Web.Lists)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&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; if (!list.Hidden)&lt;BR&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; {&lt;BR&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; MenuItemTemplate listItem = new MenuItemTemplate();&lt;BR&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; listItem.Text = list.Title;&lt;BR&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; listItem.Description = string.Format(&lt;BR&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; "Manage settings for {0}", list.Title);&lt;BR&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; listItem.ImageUrl = list.ImageUrl;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&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; string url = string.Format(&lt;BR&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; "{0}/_layouts/listedit.aspx?List={{{1}}}", &lt;BR&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; SPContext.Current.Web.Url, list.ID.ToString());&lt;BR&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; listItem.ClientOnClickNavigateUrl = url;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&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; listSettings.Controls.Add(listItem);&lt;BR&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; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Controls.Add(listSettings);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;To deploy all of this first of all the assembly (DLL) that contains the ListSettingsMenu should be built and copied either to the Global Assembly Cache or the BIN folder of the SharePoint site where you’d like to use it. Secondly the feature should be installed by copying the feature files and running &lt;FONT face="courier new,courier"&gt;STSADM -o installfeature -n featurename&lt;/FONT&gt;. &lt;STRONG&gt;Finally a SafeControl element must be added to the web.config, so the ListSettingsMenu control is marked as safe. If you forget the last step, you won’t get an error, but the extra menu item won’t be rendered.&lt;/STRONG&gt; Here is a screenshot of the result:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=smarttools&amp;amp;DownloadId=34007" mce_src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=smarttools&amp;amp;DownloadId=34007"&gt;&lt;/P&gt;
&lt;P&gt;The only caveat for this technique seems to be that you can’t use it to add a hierarchical menu in a EditControlBlock (ECB) CustomAction. The menu items of the ECB are rendered using Javascript. If you want to see a full blown example of what you can accomplish, check out the latest addition to the &lt;A class="" href="http://www.codeplex.com/smarttools" mce_href="http://www.codeplex.com/smarttools"&gt;SmartTools&lt;/A&gt; project: the &lt;A class="" href="http://www.codeplex.com/smarttools/Wiki/View.aspx?title=Enhanced%20Site%20Actions" mce_href="http://www.codeplex.com/smarttools/Wiki/View.aspx?title=Enhanced%20Site%20Actions"&gt;Enhanced Site Actions menu&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6169669" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jan/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Creating Custom Application Pages that look like OOB Application Pages</title><link>http://weblogs.asp.net/jan/archive/2008/05/08/creating-custom-application-pages-that-look-like-oob-application-pages.aspx</link><pubDate>Thu, 08 May 2008 05:13:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6168372</guid><dc:creator>Jan Tielens</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jan/rsscomments.aspx?PostID=6168372</wfw:commentRss><comments>http://weblogs.asp.net/jan/archive/2008/05/08/creating-custom-application-pages-that-look-like-oob-application-pages.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;&lt;EM&gt;Juist&amp;nbsp;a quick post so I won't forget this link: &lt;/EM&gt;&lt;A href="http://graegert.com/?p=505"&gt;&lt;EM&gt;http://graegert.com/?p=505&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A class="" href="http://graegert.com/" mce_href="http://graegert.com"&gt;Steve Graegert&lt;/A&gt; has written a &lt;A class="" href="http://graegert.com/?p=505" mce_href="http://graegert.com/?p=505"&gt;great post &lt;/A&gt;on how you can work with the SPPropertyBag to store configuration settings. Of course that's very interesting, but in this post he also describes how you can build a custom Application Page that looks like it's an OOB Application Page. The trick is to know the SharePoint user controls that are responsible for building the UI, like InputFormSection and InputFormControl. Once again, check Steve's post for the full details!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 676px; HEIGHT: 346px" height=346 src="http://graegert.com/wp-content/uploads/2008/01/moss_adminarea_page_structure1.png" width=676 mce_src="http://graegert.com/wp-content/uploads/2008/01/moss_adminarea_page_structure1.png"&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6168372" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jan/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>New Release of the SmartTools for SharePoint</title><link>http://weblogs.asp.net/jan/archive/2008/05/07/new-release-of-the-smarttools-for-sharepoint.aspx</link><pubDate>Wed, 07 May 2008 19:41:30 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6166433</guid><dc:creator>Jan Tielens</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jan/rsscomments.aspx?PostID=6166433</wfw:commentRss><comments>http://weblogs.asp.net/jan/archive/2008/05/07/new-release-of-the-smarttools-for-sharepoint.aspx#comments</comments><description>&lt;p&gt;I just uploaded a &lt;a href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=smarttools&amp;amp;ReleaseId=13197"&gt;new release&lt;/a&gt; of the &lt;a href="https://www.codeplex.com/smarttools"&gt;SmartTools for SharePoint&lt;/a&gt; to the CodePlex site. Currently the SmartTools project has two components:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.codeplex.com/smarttools/Wiki/View.aspx?title=What%27s%20New"&gt;What's New web part&lt;/a&gt;: show new or modified data on SharePoint sites&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeplex.com/smarttools/Wiki/View.aspx?title=Autocomplete%20Text%20Field"&gt;Autocomplete Text Field&lt;/a&gt;: AJAX autocomplete lookup field&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Changes in this release:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;What's New v1.1&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Fixed issue with Link items&lt;/li&gt;      &lt;li&gt;Added option to Excluded or Include a list of content types &lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Autocomplete Text Field v1.1&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Fixed an issue if the field was used as a Site Column&lt;/li&gt;      &lt;li&gt;Added configurable delimiter characters to allow multiple lookups &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:69c0b0c0-0662-4186-8ae7-6d1c4c4a300d" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/sharepoint" rel="tag"&gt;sharepoint&lt;/a&gt;,&lt;a href="http://technorati.com/tags/wss" rel="tag"&gt;wss&lt;/a&gt;,&lt;a href="http://technorati.com/tags/moss" rel="tag"&gt;moss&lt;/a&gt;,&lt;a href="http://technorati.com/tags/smarttools" rel="tag"&gt;smarttools&lt;/a&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6166433" width="1" height="1"&gt;</description></item><item><title>Adding Breadcrumb Navigation to SharePoint Application Pages, the Easy Way</title><link>http://weblogs.asp.net/jan/archive/2008/04/16/adding-breadcrumb-navigation-to-sharepoint-application-pages-the-easy-way.aspx</link><pubDate>Wed, 16 Apr 2008 16:01:47 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6103502</guid><dc:creator>Jan Tielens</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jan/rsscomments.aspx?PostID=6103502</wfw:commentRss><comments>http://weblogs.asp.net/jan/archive/2008/04/16/adding-breadcrumb-navigation-to-sharepoint-application-pages-the-easy-way.aspx#comments</comments><description>&lt;p&gt;A while ago &lt;a href="http://weblogs.asp.net/jan/archive/2007/09/10/adding-breadcrumb-navigation-for-sharepoint-application-pages.aspx"&gt;I posted an article&lt;/a&gt; about how you could build custom Application Pages for SharePoint that display the breadcrumb navigation, just like all the out-of-the-box Application Pages do. The trick was to add add a &lt;strong&gt;siteMapNode&lt;/strong&gt; element in the &lt;strong&gt;layouts.sitemap&lt;/strong&gt; located in the &lt;strong&gt;_app_bin&lt;/strong&gt; folder of the SharePoint site. It's no problem to do this manually; just open the file in Notepad/Visual Studio add the &lt;strong&gt;siteMapNode&lt;/strong&gt; in the desired parent node (e.g. Site Settings) and you're done. But in a production environment (especially with multiple front end web servers in the farm) you don't want to do this manually! Of course this can be done from a Feature handler; open the &lt;strong&gt;layouts.sitemap&lt;/strong&gt; XML file in an &lt;strong&gt;XMLDocument&lt;/strong&gt;, add the &lt;strong&gt;siteMapNode&lt;/strong&gt; element and save it again. It sounds easy, but it gets complex again when you have multiple front end web servers; the code to change the &lt;strong&gt;layouts.sitemap&lt;/strong&gt; should be updated on all those servers. A solution for this problem is to create a job definition that executes a job on all the servers. An example of this approach can be found &lt;a href="http://blog.thekid.me.uk/archive/2007/01/17/configuring-the-breadcrumb-for-pages-in-layouts.aspx"&gt;over here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The scenario described above is still quite complex; but a reader of my blog discovered that SharePoint actually has a built-in mechanism which is much easier to implement! First of all you need to create a file with a name formatted like &lt;strong&gt;layouts.sitemap.*.xml&lt;/strong&gt; (the * can be anything), e.g. &lt;strong&gt;layouts.sitemap.demoapppages.xml&lt;/strong&gt;. This file should be copied to the &lt;strong&gt;C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS&lt;/strong&gt; folder. In this file you can put &lt;strong&gt;siteMapNode &lt;/strong&gt;elements that should be added to the&lt;strong&gt; layouts.sitemap&lt;/strong&gt; file, for example:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;      &lt;br /&gt;&amp;lt;siteMap&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;siteMapNode url=&amp;quot;/_layouts/demopage.aspx&amp;quot;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; parentUrl=&amp;quot;/_layouts/settings.aspx&amp;quot; title=&amp;quot;Demo App Page&amp;quot;/&amp;gt;       &lt;br /&gt;&amp;lt;/siteMap&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The &lt;strong&gt;parentUrl &lt;/strong&gt;attribute determines where the &lt;strong&gt;siteMapNode&lt;/strong&gt; will be added in the hierarchy of the original &lt;strong&gt;layouts.sitemap&lt;/strong&gt; file (in this case beneath the Site Settings page). SharePoint will merge the contents of &lt;strong&gt;layouts.sitemap.demoapppages.xml&lt;/strong&gt; when a new Web Application is created (thus the &lt;strong&gt;layouts.sitemap&lt;/strong&gt; file is created in the &lt;strong&gt;_app_bin&lt;/strong&gt; folder). To force the &lt;strong&gt;layouts.sitemap&lt;/strong&gt; file to be recreated for the existing Web Applications as well, you can use the &lt;a href="http://technet.microsoft.com/en-us/library/cc261996.aspx"&gt;&lt;strong&gt;copyappbincontent&lt;/strong&gt;&lt;/a&gt; operation of the &lt;strong&gt;STSADM&lt;/strong&gt; tool:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;STSADM -o copyappbincontent&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Or you can use the &lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebservice.applyapplicationcontenttolocalserver.aspx"&gt;&lt;strong&gt;ApplyApplicationContentToLocalServer&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;method of the &lt;strong&gt;SPWebService&lt;/strong&gt; class (typically in a Feature Receiver):&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;public class FeatureHandler : SPFeatureReceiver     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public override void FeatureActivated(SPFeatureReceiverProperties properties)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt; SPFarm.Local.Services.GetValue&amp;lt;SPWebService&amp;gt;().       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ApplyApplicationContentToLocalServer();        &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;#160;&amp;#160;&amp;#160; public override void FeatureDeactivating(SPFeatureReceiverProperties properties) {} &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;#160;&amp;#160;&amp;#160; public override void FeatureInstalled(SPFeatureReceiverProperties properties) {} &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;#160;&amp;#160;&amp;#160; public override void FeatureUninstalling(SPFeatureReceiverProperties properties) {}     &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;I've created &lt;a href="http://code.msdn.microsoft.com/demospapppages"&gt;a small sample project on MSDN Code Gallery&lt;/a&gt; to show everything in action, that has the following components:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Custom Application Page (demopage.aspx), deployed to the _layouts folder&lt;/li&gt;    &lt;li&gt;Custom SiteMap (layouts.sitemap.demoapppages.xml)&lt;/li&gt;    &lt;li&gt;Feature, scoped to the web application level, that adds a link to the custom application page in the Site Settings page&lt;/li&gt;    &lt;li&gt;Feature event handler to trigger the merging of all the sitemap files&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So thanks &lt;a href="http://weblogs.asp.net/jan/archive/2007/09/10/adding-breadcrumb-navigation-for-sharepoint-application-pages.aspx#5480610"&gt;Brian Staton for sharing your tip&lt;/a&gt;!&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c4b35732-42e7-4702-b6b5-f73a32442fca" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/sharepoint" rel="tag"&gt;sharepoint&lt;/a&gt;,&lt;a href="http://technorati.com/tags/wss" rel="tag"&gt;wss&lt;/a&gt;,&lt;a href="http://technorati.com/tags/mss" rel="tag"&gt;mss&lt;/a&gt;,&lt;a href="http://technorati.com/tags/pages" rel="tag"&gt;pages&lt;/a&gt;,&lt;a href="http://technorati.com/tags/applicationpages" rel="tag"&gt;applicationpages&lt;/a&gt;,&lt;a href="http://technorati.com/tags/sitemap" rel="tag"&gt;sitemap&lt;/a&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6103502" width="1" height="1"&gt;</description></item><item><title>[OT] My Girl, One Year</title><link>http://weblogs.asp.net/jan/archive/2008/03/27/my-girl-one-year.aspx</link><pubDate>Thu, 27 Mar 2008 21:22:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6038468</guid><dc:creator>Jan Tielens</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jan/rsscomments.aspx?PostID=6038468</wfw:commentRss><comments>http://weblogs.asp.net/jan/archive/2008/03/27/my-girl-one-year.aspx#comments</comments><description>&lt;P&gt;&lt;A title="Mijn eerste verjaardag" href="http://www.flickr.com/photos/92583136@N00/2367412132/" mce_href="http://www.flickr.com/photos/92583136@N00/2367412132/"&gt;&lt;IMG alt="Mijn eerste verjaardag" src="http://static.flickr.com/3218/2367412132_dc4e86540f.jpg" border=0 mce_src="http://static.flickr.com/3218/2367412132_dc4e86540f.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Time flies when you're having fun; my little girl is already one year old. She's the reason why I don't have that much time to blog anymore as I used to have; and I love it. :-)&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6038468" width="1" height="1"&gt;</description></item><item><title>Introducing the Autocomplete Text Field for SharePoint 2007</title><link>http://weblogs.asp.net/jan/archive/2008/03/21/introducing-the-autocomplete-text-field-for-sharepoint-2007.aspx</link><pubDate>Fri, 21 Mar 2008 11:47:49 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6004836</guid><dc:creator>Jan Tielens</dc:creator><slash:comments>21</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jan/rsscomments.aspx?PostID=6004836</wfw:commentRss><comments>http://weblogs.asp.net/jan/archive/2008/03/21/introducing-the-autocomplete-text-field-for-sharepoint-2007.aspx#comments</comments><description>&lt;p&gt;Yesterday I finally had some time to finish a project I've been working on for some time: the Autocomplete Text Field for SharePoint 2007. &lt;a href="http://video.msn.com/video.aspx?vid=38effe44-4717-4ecc-8815-60a4be28a947"&gt;Click here for a small demo screencast on Soapbox&lt;/a&gt;, or download the high resolution video from the &lt;a href="http://www.codeplex.com/smarttools"&gt;CodePlex site&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=smarttools&amp;amp;DownloadId=29356" /&gt; &lt;/p&gt;  &lt;p&gt;The idea is pretty simple: you've got a SharePoint list (or document library) that contains some interesting lookup data, now you can make use of the Autocomplete Text Field to display a textbox to the user that will show a dropdown list of items that start with the text the user already entered. When the user types more (or less) text, the dropdown list will adapt to that and update the contents. All of this is made available as a new column type (aka custom field type) in SharePoint 2007. The beauty of this field is that it doesn't need to do a page postback to refresh the data, the ASP.NET AJAX extensions are used to fetch the data in the background.&lt;/p&gt;  &lt;p&gt;When the column is added to a SharePoint list or document library, the user can customize by defining various settings:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Column name: the name of the column &lt;/li&gt;    &lt;li&gt;Description: the description of the column &lt;/li&gt;    &lt;li&gt;Required: if the column should contain text or if it can stay empty &lt;/li&gt;    &lt;li&gt;Lookup list: the list in which the column should do the lookup, this list can be selected from a dropdown &lt;/li&gt;    &lt;li&gt;Autocomplete interval: the number of milliseconds after which the lookup list will appear &lt;/li&gt;    &lt;li&gt;Items to display: the maximum number of items to display in the lookup list &lt;/li&gt;    &lt;li&gt;Minimum prefix length: the minimum number of charactes which should be typed before the lookup list will appear &lt;/li&gt;    &lt;li&gt;Show animations: enable or disable the fading effects when the lookup list is shown or hidden &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=smarttools&amp;amp;DownloadId=29358" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;For more information, the download and the source code; visit the &lt;/strong&gt;&lt;a href="http://www.codeplex.com/smarttools"&gt;&lt;strong&gt;SmartTools for SharePoint Codeplex site&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; Be aware that if you want to make use of this column, the ASP.NET AJAX extensions must be installed and configured on your SharePoint sites!! (&lt;a href="http://sharepoint.microsoft.com/blogs/mike/Lists/Posts/Post.aspx?ID=3"&gt;more info here&lt;/a&gt;)&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:9e7432da-0a5b-4ba5-910e-5fcfc99a22cc" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/sharepoint" rel="tag"&gt;sharepoint&lt;/a&gt;,&lt;a href="http://technorati.com/tags/wss" rel="tag"&gt;wss&lt;/a&gt;,&lt;a href="http://technorati.com/tags/moss" rel="tag"&gt;moss&lt;/a&gt;,&lt;a href="http://technorati.com/tags/autocomplete" rel="tag"&gt;autocomplete&lt;/a&gt;,&lt;a href="http://technorati.com/tags/smarttools" rel="tag"&gt;smarttools&lt;/a&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6004836" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jan/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>The What's New Web Part for SharePoint 2007</title><link>http://weblogs.asp.net/jan/archive/2008/03/21/the-what-s-new-web-part-for-sharepoint-2007.aspx</link><pubDate>Fri, 21 Mar 2008 11:23:51 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6004738</guid><dc:creator>Jan Tielens</dc:creator><slash:comments>21</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jan/rsscomments.aspx?PostID=6004738</wfw:commentRss><comments>http://weblogs.asp.net/jan/archive/2008/03/21/the-what-s-new-web-part-for-sharepoint-2007.aspx#comments</comments><description>&lt;p&gt;A long, long time ago, back in the SharePoint 2003 days, I created some pretty popular web parts which filled in some gaps the out-of-the-box functionality left open. In SharePoint 2007 most of those web parts are obsolete; for example the Breadcrumbs web part is not necessary anymore since SharePoint 2007 has breadcrumbs by default. But a lot of people contacted me to ask for a SharePoint 2007 version of the What's New web part. This web part displayed a list of new and changed items on site. It's arguable that this functionality is not needed anymore because in SharePoint 2007 we have RSS feeds, the Content Query Web Part (MOSS only) etc. But apparently some people like the simplicity of the original What's New web part so much ... and just for those people I've create a new SharePoint 2007 What's New web part! :-)&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=smarttools&amp;amp;DownloadId=28128" /&gt; &lt;/p&gt;  &lt;p&gt;Of course the new version is better and improved! Internally it's making use of the SPSiteDataQuery class so it can also aggregate new and changed items from multiple sites (recursive from the current level, or the complete site collection). The web part has following configuration parameters:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Settings group      &lt;ul&gt;       &lt;li&gt;Number of items to show: determines the maximum number of items to show in the What's New web part. &lt;/li&gt;        &lt;li&gt;Scope of the Query: determines where the What's New web part will check for new or changed items, possible values:          &lt;ul&gt;           &lt;li&gt;Site: the current site only &lt;/li&gt;            &lt;li&gt;Recursive: the current site plus all the sub sites of the current site &lt;/li&gt;            &lt;li&gt;Site Collection: the entire site collection of which the current site is a member &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;Cache interval: the number of seconds the results shown in the What's New web part will be cached. This cache is per user. After a change to the properties of the What's New web part, the cache is cleared automatically to reflect the changes. &lt;/li&gt;        &lt;li&gt;Excluded Content Types: a list of content types which will be excluded from the results shown in the What's New web part. The list is separated with the ; character. For example &amp;quot;Folder;Task&amp;quot; will excluded all changes and additions of Folder and Task items. &lt;/li&gt;        &lt;li&gt;Show header row: enables or disables the header row of the results list. &lt;/li&gt;        &lt;li&gt;Group items on date: enables or disables grouping of the results based on their date &lt;/li&gt;        &lt;li&gt;Allow group collapse: enables or disables the ability to collapse the groups if the Group items on date setting is enabled. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Columns to show: you can choose which columns you want to show in the results list      &lt;ul&gt;       &lt;li&gt;Modified: the Modified timestamp, including the date and time &lt;/li&gt;        &lt;li&gt;Time: the modified time (excluding the date part) &lt;/li&gt;        &lt;li&gt;Date: the modified date (excluding the time part) &lt;/li&gt;        &lt;li&gt;List: a link to list or document library containing the item &lt;/li&gt;        &lt;li&gt;Site: a link to the site of the list or document library containing the item &lt;/li&gt;        &lt;li&gt;Modified By: the account who changed or added the item &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=smarttools&amp;amp;DownloadId=28186" /&gt; &lt;/p&gt;  &lt;p&gt;The installation is very easy (and &lt;a href="http://www.codeplex.com/smarttools/Wiki/View.aspx?title=What%27s%20New%20Installation&amp;amp;referringTitle=What%27s%20New"&gt;completely documented&lt;/a&gt;), there is a setup wizard that will guide you through the process (thank you &lt;a href="http://www.codeplex.com/wspbuilder"&gt;WSPBuilder&lt;/a&gt; and &lt;a href="http://www.codeplex.com/sharepointinstaller"&gt;SharePoint Solution Installer&lt;/a&gt;!). &lt;strong&gt;For more information, download and source code; visit the &lt;/strong&gt;&lt;a href="http://www.codeplex.com/smarttools"&gt;&lt;strong&gt;SmartTools for SharePoint&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; CodePlex site.&lt;/strong&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:41a3f545-05a4-450b-8137-3aba04cef465" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/sharepoint" rel="tag"&gt;sharepoint&lt;/a&gt;,&lt;a href="http://technorati.com/tags/wss" rel="tag"&gt;wss&lt;/a&gt;,&lt;a href="http://technorati.com/tags/moss" rel="tag"&gt;moss&lt;/a&gt;,&lt;a href="http://technorati.com/tags/whatsnew" rel="tag"&gt;whatsnew&lt;/a&gt;,&lt;a href="http://technorati.com/tags/smarttools" rel="tag"&gt;smarttools&lt;/a&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6004738" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jan/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Photowalking in Gent, Belgium, Next Saturday</title><link>http://weblogs.asp.net/jan/archive/2008/03/16/photowalking-in-gent-belgium-next-saturday.aspx</link><pubDate>Sun, 16 Mar 2008 11:04:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5981802</guid><dc:creator>Jan Tielens</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jan/rsscomments.aspx?PostID=5981802</wfw:commentRss><comments>http://weblogs.asp.net/jan/archive/2008/03/16/photowalking-in-gent-belgium-next-saturday.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;[&lt;A class="" href="http://jantielens.wordpress.com/2008/03/16/photowalking-in-gent-belgium-next-saturday/" mce_href="http://jantielens.wordpress.com/2008/03/16/photowalking-in-gent-belgium-next-saturday/"&gt;Cross posted&amp;nbsp;from my photo blog&lt;/A&gt;] My dear friend and esteemed colleague &lt;A class="" href="http://www.u2u.info/Blogs/Kevin/default.aspx" mce_href="http://www.u2u.info/Blogs/Kevin/default.aspx"&gt;Kevin DeRudder&lt;/A&gt; is hosting a &lt;A class="" href="http://en.wikipedia.org/wiki/Photowalking" mce_href="http://en.wikipedia.org/wiki/Photowalking"&gt;photowalk&lt;/A&gt; in his home town: Gent (Belgium), next Saturday (22th of March). And of course everyone is invited: geeks, non-geeks, hobbyists, amateurs, professionals ... Kevin has created a nice outline of the day that starts at 2pm, you can find more details in the &lt;A class="" href="http://www.flickr.com/groups/photowalkbelgium/" mce_href="http://www.flickr.com/groups/photowalkbelgium/"&gt;Photowalk Belgium group&lt;/A&gt; on &lt;A class="" href="http://www.flickr.com/" mce_href="http://www.flickr.com"&gt;Flickr&lt;/A&gt; (&lt;A class="" href="http://www.flickr.com/groups/photowalkbelgium/discuss/72157603913888558/" mce_href="http://www.flickr.com/groups/photowalkbelgium/discuss/72157603913888558/"&gt;discussion here&lt;/A&gt;). The agenda is still open so feel free to comment and contribute. When you want to join, just drop a line in the &lt;A class="" href="http://www.flickr.com/groups/photowalkbelgium/discuss/72157603913888558/" mce_href="http://www.flickr.com/groups/photowalkbelgium/discuss/72157603913888558/"&gt;Flickr group discussion&lt;/A&gt; (or on this blog if you don’t have a Flickr account). If you&amp;nbsp;miss the 2pm start time: I'll do my best to post&amp;nbsp;some updates on our location on my&amp;nbsp;&lt;A class="" href="http://twitter.com/jantielens" mce_href="http://twitter.com/jantielens"&gt;twitter account&lt;/A&gt;.&amp;nbsp;If you want to join but don't know any of us, we'll be the geeky looking group with a higher-than-average-number-of-camera's-per-person. I'll bet Kevin will be wearing his famous "I'm blogging this" t-shirt:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A title="I'm Blogging This by Nele en Jan, on Flickr" href="http://www.flickr.com/photos/neleenjan/412440100/"&gt;&lt;IMG height=375 alt="I'm Blogging This" src="http://farm1.static.flickr.com/153/412440100_20fb42e3a4.jpg" width=500 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;If you are wondering;&amp;nbsp;&lt;A class="" href="http://www.flickr.com/photos/neleenjan/412440504/" mce_href="http://www.flickr.com/photos/neleenjan/412440504/"&gt;Kevin does have a head&lt;/A&gt;. :-) I hope to see you all next Saturday in Gent!&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5981802" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jan/archive/tags/photography/default.aspx">photography</category></item><item><title>SPWebConfigModification Best Practices and Guidelines</title><link>http://weblogs.asp.net/jan/archive/2008/03/11/spwebconfigmodification-best-practices-and-guidelines.aspx</link><pubDate>Tue, 11 Mar 2008 05:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5948926</guid><dc:creator>Jan Tielens</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jan/rsscomments.aspx?PostID=5948926</wfw:commentRss><comments>http://weblogs.asp.net/jan/archive/2008/03/11/spwebconfigmodification-best-practices-and-guidelines.aspx#comments</comments><description>&lt;P&gt;The &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebconfigmodification.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebconfigmodification.aspx"&gt;SPWebConfigModification&lt;/A&gt;&amp;nbsp;class allows developers to write code that will make modifications to the web.config files of SharePoint sites. This is quite often necessary when you want to deply SharePoint customizations together with configuration settings. Using the SPWebModification class is not without any danger! :-) You can mess up your web.config files especially if you don't think about how you want to be able to undo your changes. &lt;A class="" href="http://www.crsw.com/mark" mce_href="http://www.crsw.com/mark"&gt;Mark Wagner&lt;/A&gt; wrote &lt;A class="" href="http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=32" mce_href="http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=32"&gt;an excellent article about the best practices related to the SPWebConfigModification class&lt;/A&gt;; required reading for every SharePoint developer. Mark explains some &lt;STRONG&gt;very &lt;/STRONG&gt;important things you should know to get started:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;To save the modifications, you must use of the following code:&lt;BR&gt;&lt;FONT face="courier new,courier"&gt;myWebApp.Farm.Services.GetValue&amp;lt;SPWebService&amp;gt;().ApplyWebConfigModifications(); &lt;BR&gt;myWebApp.Update();&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Only call this code once in your feature handler, otherwise you get the error "&lt;STRONG&gt;A web configuration modification operation is already running.&lt;/STRONG&gt;"&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Great info Mark, and please do create an complete example of&amp;nbsp;the best practices, packaged in a feature!&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5948926" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jan/archive/tags/SharePoint/default.aspx">SharePoint</category></item></channel></rss>