<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/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>Code, Articles, Discussion on Microsoft Technologies</title><link>http://blogs.msdn.com/mahuja/default.aspx</link><description>The learnings on technologies I work upon ...</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>System.MissingMethodException: Method Not Found when running unit Tests</title><link>http://blogs.msdn.com/mahuja/archive/2009/01/04/system-missingmethodexception-method-not-found-when-running-unit-tests.aspx</link><pubDate>Sun, 04 Jan 2009 10:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9271048</guid><dc:creator>Madhur</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/mahuja/comments/9271048.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mahuja/commentrss.aspx?PostID=9271048</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mahuja/rsscomments.aspx?PostID=9271048</wfw:comment><description>Lately, I have been doing Test Driven development in my development projects. I have noticed a strange issue which occurs especially when the code coverage is enabled for the assemblies. The result is , unit tests works normally in Debug mode and do not...(&lt;a href="http://blogs.msdn.com/mahuja/archive/2009/01/04/system-missingmethodexception-method-not-found-when-running-unit-tests.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9271048" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mahuja/archive/tags/VSTS/default.aspx">VSTS</category></item><item><title>Adding Client script to TreeNode Click Event</title><link>http://blogs.msdn.com/mahuja/archive/2008/11/29/adding-client-script-to-treenode-click-event.aspx</link><pubDate>Sat, 29 Nov 2008 19:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9156068</guid><dc:creator>Madhur</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mahuja/comments/9156068.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mahuja/commentrss.aspx?PostID=9156068</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mahuja/rsscomments.aspx?PostID=9156068</wfw:comment><description>Most of the ASP.NET 2.0 controls provide way to add client events to them. For example, TextBoxes, checkbox are simply rendered as &amp;lt;input&amp;gt; elements and can be easily hooked to JavaScript functions either programmatically or declaratively. However,...(&lt;a href="http://blogs.msdn.com/mahuja/archive/2008/11/29/adding-client-script-to-treenode-click-event.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9156068" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mahuja/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/mahuja/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Resolving Common issues while Applying Site Templates (.stp) on MOSS 2007</title><link>http://blogs.msdn.com/mahuja/archive/2008/10/14/resolving-common-issues-while-applying-site-templates-stp-on-moss-2007.aspx</link><pubDate>Tue, 14 Oct 2008 15:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8999415</guid><dc:creator>Madhur</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mahuja/comments/8999415.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mahuja/commentrss.aspx?PostID=8999415</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mahuja/rsscomments.aspx?PostID=8999415</wfw:comment><description>Lately, I have been working a lot with site templates in MOSS 2007. I have seen common issues which keep occurring now and then. I am posting the resolution of those since you might also run across them frequently. &amp;#160; File Cannot be found This one...(&lt;a href="http://blogs.msdn.com/mahuja/archive/2008/10/14/resolving-common-issues-while-applying-site-templates-stp-on-moss-2007.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8999415" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mahuja/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>Use right tools for x64 machines</title><link>http://blogs.msdn.com/mahuja/archive/2008/10/14/use-right-tools-for-x64-machines.aspx</link><pubDate>Tue, 14 Oct 2008 14:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8999371</guid><dc:creator>Madhur</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mahuja/comments/8999371.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mahuja/commentrss.aspx?PostID=8999371</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mahuja/rsscomments.aspx?PostID=8999371</wfw:comment><description>If you are setting up a x64 server for MOSS, there are some things to be taken care of. I ran into couple of issues while setting up my development machine and had a hard time debugging it. While registering ASP.NET 2.0 framework with IIS, make sure to...(&lt;a href="http://blogs.msdn.com/mahuja/archive/2008/10/14/use-right-tools-for-x64-machines.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8999371" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mahuja/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://blogs.msdn.com/mahuja/archive/tags/VSTS/default.aspx">VSTS</category><category domain="http://blogs.msdn.com/mahuja/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Managed Debugging and inspecting Jitted code With WinDbg</title><link>http://blogs.msdn.com/mahuja/archive/2008/07/16/managed-debugging-and-inspecting-jitted-code-with-windbg.aspx</link><pubDate>Wed, 16 Jul 2008 18:34:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8739117</guid><dc:creator>Madhur</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mahuja/comments/8739117.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mahuja/commentrss.aspx?PostID=8739117</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mahuja/rsscomments.aspx?PostID=8739117</wfw:comment><description>WinDbg is a powerful tool to debug applications. Lately, its use has been extended to managed debugging as well through an extension called sos.dll (Son of Strike). Sos.dll is shipped with both .NET Framework 2.0 and .NET 1.1 Framework and is a WinDbg...(&lt;a href="http://blogs.msdn.com/mahuja/archive/2008/07/16/managed-debugging-and-inspecting-jitted-code-with-windbg.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8739117" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mahuja/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.msdn.com/mahuja/archive/tags/WinDbg/default.aspx">WinDbg</category><category domain="http://blogs.msdn.com/mahuja/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Resolving Very Slow Symbol Loading with VS 2008 during debugging</title><link>http://blogs.msdn.com/mahuja/archive/2008/07/08/resolving-very-slow-symbol-loading-with-vs-2008-during-debugging.aspx</link><pubDate>Tue, 08 Jul 2008 11:47:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8707493</guid><dc:creator>Madhur</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/mahuja/comments/8707493.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mahuja/commentrss.aspx?PostID=8707493</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mahuja/rsscomments.aspx?PostID=8707493</wfw:comment><description>Recently, I was encountering insanely slow project loading times during debugging in Visual Studio 2008. Interestingly, this only happened while loading the project only in debug mode. Also, during the slow symbol loading time, the status bar at Visual...(&lt;a href="http://blogs.msdn.com/mahuja/archive/2008/07/08/resolving-very-slow-symbol-loading-with-vs-2008-during-debugging.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8707493" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mahuja/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.msdn.com/mahuja/archive/tags/VSTS/default.aspx">VSTS</category></item><item><title>Showing Exchange Inbox in MOSS 2007</title><link>http://blogs.msdn.com/mahuja/archive/2008/07/01/showing-exchange-inbox-in-moss-2007.aspx</link><pubDate>Tue, 01 Jul 2008 19:05:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8677794</guid><dc:creator>Madhur</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mahuja/comments/8677794.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mahuja/commentrss.aspx?PostID=8677794</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mahuja/rsscomments.aspx?PostID=8677794</wfw:comment><description>&lt;p&gt;Recently, I have seen a lot of &lt;a href="http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=2978413&amp;amp;SiteID=17" target="_blank"&gt;discussions&lt;/a&gt; on forums about showing user's mailbox on a portal homepage. This is very similar to the case in My Site, but in this case the portal is not My Site and the requirement is to let each user view his/her mailbox using the My Inbox Web Part.&lt;/p&gt;  &lt;p&gt;Interestingly, I have seen developers writing custom Web Part for this requirement. In-fact, this is available totally out of the box.&lt;/p&gt;  &lt;p&gt;If you are using Exchange 2007, you can just fill in the Exchange Server field in your Outlook Web Parts for MOSS 2007 and the Web Part will pickup the current user's mailbox automatically. &lt;/p&gt;  &lt;p&gt;If you have a Exchange 2003 and SharePoint in your organization, this is one of the strong reason alone for going into Exchange 2007 upgrade, along with other benefits which Exchange 2007 provides. &lt;/p&gt;  &lt;p&gt;However, If you are using Exchange 2003 and want to achieve this functionality, its easy to write the custom Web Part which automatically assigns the current user and exchange server to Web Part programmatically. But there are limitations of this approach which I will outline at the end of this post. This is simple code for the Web Part which can be used to assign the username and server name.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;using System;    &lt;br /&gt;using System.Configuration;     &lt;br /&gt;using System.Web;     &lt;br /&gt;using System.Web.Security;     &lt;br /&gt;using System.Web.UI;     &lt;br /&gt;using System.Web.UI.WebControls;     &lt;br /&gt;using System.Web.UI.WebControls.WebParts;     &lt;br /&gt;using System.Web.UI.HtmlControls;     &lt;br /&gt;using Microsoft.SharePoint.WebPartPages;     &lt;br /&gt;using Microsoft.SharePoint.Portal.WebControls;&lt;/p&gt;  &lt;p&gt;namespace SharePoint.Webparts    &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public class MyInboxEx : System.Web.UI.WebControls.WebParts.WebPart     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; protected override void CreateChildControls()     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;  &lt;p&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;&amp;#160; //Create the instance of My Inbox Web Part    &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; OWAInboxPart inbox = new OWAInboxPart();&lt;/p&gt;  &lt;p&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; //Get and Assign the server name from web.config    &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; inbox.OWAServerAddressRoot = ConfigurationSettings.AppSettings[&amp;quot;SERVER_NAME&amp;quot;];     &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; string userName = Page.Request.ServerVariables[&amp;quot;LOGON_USER&amp;quot;];     &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; string mailboxName = userName;     &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; int pos = userName.IndexOf(&amp;quot;\\&amp;quot;);     &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; if (pos &amp;gt; -1)     &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; {     &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;&amp;#160;&amp;#160;&amp;#160;&amp;#160; mailboxName = userName.Substring(pos + 1);     &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; }     &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; &lt;/p&gt;  &lt;p&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; //Assign the mailbox name &lt;/p&gt;  &lt;p&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; inbox.MailboxName = mailboxName;    &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; Controls.Add(inbox);&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In the above code, we can retrieve the server name of exchange server from any configuration store, I am using web.config &amp;lt;AppSettings&amp;gt; section here. Before using this code in any environment, its important to realize its limitations:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The Web Part makes the assumption that the name of the mailbox is same as the username. Although, this is true for most of Exchange deployments, this is not true for all. I have seen deployments, where FirstName.LastName is used as name of the mailbox while username is entirely different.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;In large Exchange deployments, there are multiple servers being used, and user's mailbox is located to geographically closest server. The Web Part does not take into account of this as we are using single hard coded server name for all the users. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Due to the reasons cited above, the usage of this approach is very limited to small deployments. I&amp;#160; have seen this approach being used in one of the deployment at a University :)&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;Madhur&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8677794" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mahuja/archive/tags/Web+Part/default.aspx">Web Part</category><category domain="http://blogs.msdn.com/mahuja/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://blogs.msdn.com/mahuja/archive/tags/My+Site/default.aspx">My Site</category></item><item><title>Switch the sharepoint webpart page Display Mode into Edit Mode and Vice Versa</title><link>http://blogs.msdn.com/mahuja/archive/2008/04/01/switch-the-sharepoint-webpart-page-display-mode-into-edit-mode-and-vice-versa.aspx</link><pubDate>Tue, 01 Apr 2008 07:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8347333</guid><dc:creator>Madhur</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/mahuja/comments/8347333.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mahuja/commentrss.aspx?PostID=8347333</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mahuja/rsscomments.aspx?PostID=8347333</wfw:comment><description>Recently one of my clients had a requirement to go into Edit mode of a
sharepoint page using a manual link displayed in quick launch. He was
lazy of going to Site Actions -&amp;gt; Edit Page and then again going
somewhere else for Exit Edit Mode :)&lt;br&gt;&lt;br&gt;&lt;p&gt; To give some background for beginners, whenever we click Edit Page on Site Actions menu,&lt;br&gt;the pages switches into a different display mode called Design Mode. Its not a feature of&lt;br&gt;Sharepoint, but ASP.NET 2.0 Webparts Framework.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h2&gt;Background&lt;/h2&gt;&lt;br&gt;According to the framework, the page can have 4 different modes:&lt;br&gt;&lt;ul&gt;&lt;br&gt;&lt;li&gt;BrowseDisplayMode  : Represents the default display mode.&lt;br&gt;&lt;/li&gt;&lt;li&gt;CatalogDisplayMode : Used for adding controls from a catalog of controls to a Web page&lt;br&gt;&lt;/li&gt;&lt;li&gt;ConnectDisplayMode : Displays a special UI for users to manage connections between Web Part controls.&lt;br&gt;&lt;/li&gt;&lt;li&gt;DesignDisplayMode  : Used for changing the layout of Web pages containing Web Part controls.&lt;br&gt;&lt;/li&gt;&lt;li&gt;EditDisplayMode    : Displays a UI from which end users can edit and modify server controls&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;The &lt;code&gt;WebPartManager&lt;/code&gt;
control provides a programmatic interface, making it possible to switch
the Web Part Page between browse, design, and edit display modes.&lt;br&gt;&lt;p&gt;For
example, to programmatically switch the current page into design mode,
you can simply add a link control with an event handler that sets the &lt;code&gt;DisplayMode&lt;/code&gt; property to &lt;code&gt;DesignDisplayMode&lt;/code&gt;.&lt;br&gt;&lt;/p&gt;&lt;pre&gt;&lt;br&gt;WebPartManager1.DisplayMode = WebPartManager.DesignDisplayMode;&lt;br&gt;&lt;/pre&gt;Although
this would work technically, but it would not give up the visible
changes to page, like visibilty of Page Editing toolbar, webpart zones
etc.&lt;br&gt;&lt;p&gt;This visual magic is done by lot of Javascript which is executed when we click Edit Page on Site Actions menu.&lt;br&gt;&lt;br&gt;To build this link control, we need to figure out the javascript code which causes this behaviour.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;This would be present in default.master. If we open Site Actions menu and do the View Source on IE.&lt;br&gt;Here is the code of our interest :&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;pre&gt;&amp;lt;td class="ms-siteactionsmenu" id="siteactiontd"&amp;gt;&lt;br&gt;&amp;lt;span&amp;gt;&amp;lt;a href="javascript:MSOLayout_ToggleLayoutMode();"&amp;gt;Edit Page&amp;lt;/a&amp;gt;&amp;lt;;/span&amp;gt;&lt;br&gt;&lt;/pre&gt;&lt;p&gt;As you must have figured out, its the &lt;code&gt;MSOLayout_ToggleLayoutMode()&lt;/code&gt;
function which does all the magic of turning the current page into Edit
page. This javascript also calls the server side code which executes
this statement&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;code&gt;WebPartManager1.DisplayMode = WebPartManager.DesignDisplayMode;&lt;/code&gt;&lt;br&gt;//(This can also be demonstrated, but its beyond scope)&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h2&gt;Building the Webcontrol&lt;/h2&gt;&lt;p&gt;Armed with this knowledge, we can build a simple webcontrol which we will switch the page into Edit mode and vice versa.&lt;br&gt;Below is the code for the same. Its the simplest webcontrol you will see ever.&lt;br&gt;&lt;/p&gt;&lt;pre&gt;&lt;br&gt;using System;&lt;br&gt;using System.Web.UI.WebControls.WebParts;&lt;br&gt;using System.Web.UI.HtmlControls;&lt;br&gt;using System.Web.UI;&lt;br&gt;namespace SPUtil&lt;br&gt;{&lt;br&gt;public class SPEditMode:System.Web.UI.WebControls.WebControl&lt;br&gt;{&lt;br&gt;  HtmlAnchor btnLink;&lt;br&gt;&lt;br&gt;  protected override void CreateChildControls()&lt;br&gt;  {&lt;br&gt;      WebPartManager wp = WebPartManager.GetCurrentWebPartManager(Page);&lt;br&gt;&lt;br&gt;      const string url="javascript:MSOLayout_ToggleLayoutMode();";&lt;br&gt;&lt;br&gt;      btnLink = new HtmlAnchor();&lt;br&gt;&lt;br&gt;      if (wp.DisplayMode == WebPartManager.BrowseDisplayMode)&lt;br&gt;&lt;br&gt;          btnLink.InnerText = "Edit Page";&lt;br&gt;      else if (wp.DisplayMode == WebPartManager.DesignDisplayMode)&lt;br&gt;          btnLink.InnerText = "Exit Edit Mode";&lt;br&gt;      else&lt;br&gt;          btnLink.Visible = false;&lt;br&gt;&lt;br&gt;      btnLink.HRef = url;&lt;br&gt;&lt;br&gt;      Controls.Add(btnLink);&lt;br&gt;      base.CreateChildControls();&lt;br&gt;  }&lt;br&gt;&lt;br&gt;}&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;/pre&gt;I have used &lt;code&gt;HtmlAnchor&lt;/code&gt; rather than &lt;code&gt;LinkButton&lt;/code&gt; or &lt;code&gt;SPLinkButton&lt;/code&gt; since its lightweight on the server and We are not performing any special processing which is present in server controls.&lt;br&gt;&lt;br&gt;One
point to be worth noting: This link would be visible to all including
visitors. For used in practical scenarious, the control should be
hidden for other than members and Administrators.&lt;br&gt;&lt;br&gt;I was using this link in user's MySite and hence I did not have that case :)&lt;br&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8347333" width="1" height="1"&gt;</description></item><item><title>Passing multiple filter values to EWA pivot table filter cell</title><link>http://blogs.msdn.com/mahuja/archive/2008/04/01/passing-multiple-filter-values-to-ewa-pivot-table-filter-cell.aspx</link><pubDate>Tue, 01 Apr 2008 07:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8347330</guid><dc:creator>Madhur</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mahuja/comments/8347330.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mahuja/commentrss.aspx?PostID=8347330</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mahuja/rsscomments.aspx?PostID=8347330</wfw:comment><description>&lt;p&gt; Filter webparts in WSS are a great way to provide &lt;font id="intelliTXT"&gt;filtering in many different webparts like List View, Business Data Catalog, Excel Web Access etc.  &lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;They
are also great way to provide data view personalization when used with
Excel services coupled with Analysis Services of SQL server.&lt;br&gt;&lt;br&gt;This is described in detail on Excel Team blog &lt;a href="http://blogs.msdn.com/excel/archive/2008/01/16/personalized-data-in-excel-services.aspx"&gt;here&lt;/a&gt;&lt;br&gt;&lt;p&gt;In this post, we will see how to create a simple filter webart which provides values to pivot table filter cell.&lt;br&gt;&lt;/p&gt;&lt;p&gt;I
am mentioning pivot table filter cell exclusively because the filter
webpart examples on MSDN has to be slightly modified to provide values&lt;br&gt;to filter cell.&lt;br&gt;&lt;/p&gt;&lt;p&gt;Basically, we are building a filter provider which&lt;br&gt;&lt;/p&gt;&lt;ul&gt;&lt;br&gt;&lt;li&gt;Implements the &lt;code&gt;ITransformableFilterValues&lt;/code&gt; interface.&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;The interface required few properties to be overridden, the most important of them is &lt;code&gt;public virtual ReadOnlyCollection&amp;amp;lt;string&amp;amp;gt; ParameterValues&lt;/code&gt;.&lt;br&gt;This parameter contains read only collection of strings which are passed to the consumer webpart.&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;The webpart returns the instance of itself through a public method &lt;code&gt;SetConnectionInterface()&lt;/code&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;&lt;br&gt;using System;&lt;br&gt;using System.Collections.Generic;&lt;br&gt;using System.Web.UI;&lt;br&gt;using System.Web.UI.WebControls;&lt;br&gt;using aspnetwebparts = System.Web.UI.WebControls.WebParts;&lt;br&gt;using wsswebparts = Microsoft.SharePoint.WebPartPages;&lt;br&gt;using System.Collections.ObjectModel;&lt;br&gt;&lt;br&gt;namespace ExcelFilters&lt;br&gt;{&lt;br&gt;public class ExcelFilters : aspnetwebparts.WebPart, wsswebparts.ITransformableFilterValues&lt;br&gt;{&lt;br&gt;CheckBoxList cblRegionList;&lt;br&gt;ListItem cbitemRegion;&lt;br&gt;string[] countries = new string[]&lt;br&gt;{ "Canada", "Central America", "Mexico", "South America", "United States",&lt;br&gt; "Albania", "Andora", "Austria", "Aizerbejan", "Belarus", "belgium",&lt;br&gt;  "Bosnia and Hersegovina", "Bulgaria" };&lt;br&gt;&lt;br&gt;public virtual bool AllowMultipleValues&lt;br&gt;{&lt;br&gt;   get&lt;br&gt;   {&lt;br&gt;       return false;&lt;br&gt;   }&lt;br&gt;}&lt;br&gt;public virtual bool AllowAllValue&lt;br&gt;{&lt;br&gt;   get&lt;br&gt;   {&lt;br&gt;       return true;&lt;br&gt;   }&lt;br&gt;}&lt;br&gt;&lt;br&gt;public virtual bool AllowEmptyValue&lt;br&gt;{&lt;br&gt;   get&lt;br&gt;   {&lt;br&gt;       return false;&lt;br&gt;   }&lt;br&gt;}&lt;br&gt;public virtual string ParameterName&lt;br&gt;{&lt;br&gt;   get&lt;br&gt;   {&lt;br&gt;       return "Geography";&lt;br&gt;   }&lt;br&gt;}&lt;br&gt;&lt;br&gt;public virtual ReadOnlyCollection&lt;string&gt; ParameterValues&lt;br&gt;{&lt;br&gt;   get&lt;br&gt;   {&lt;br&gt;       string[] values = this.GetCurrentlySelectedGeographies();      &lt;br&gt;       List&lt;string&gt; param=new List&lt;string&gt;();&lt;br&gt;&lt;br&gt;       foreach (string str in values)&lt;br&gt;       {&lt;br&gt;           if(!string.IsNullOrEmpty(str))&lt;br&gt;               param.Add(str);&lt;br&gt;       }&lt;br&gt;       return values == null ?null :new ReadOnlyCollection&lt;string&gt;(param);&lt;br&gt;   }&lt;br&gt;}&lt;br&gt;&lt;br&gt;protected override void CreateChildControls()&lt;br&gt;{&lt;br&gt;   cblRegionList = new CheckBoxList();&lt;br&gt;   cblRegionList.AutoPostBack = true;&lt;br&gt;   Controls.Add(cblRegionList);&lt;br&gt;&lt;br&gt;   foreach (string region in countries)&lt;br&gt;   {&lt;br&gt;       cbitemRegion = new ListItem();&lt;br&gt;       cbitemRegion.Text = region;&lt;br&gt;       cblRegionList.Items.Add(cbitemRegion);&lt;br&gt;       cbitemRegion = null;&lt;br&gt;   }&lt;br&gt;&lt;br&gt;   base.CreateChildControls();&lt;br&gt;}&lt;br&gt;&lt;br&gt;[aspnetwebparts.ConnectionProvider("Region Filter", "ITransformableFilterValues", AllowsMultipleConnections = true)]&lt;br&gt;public wsswebparts.ITransformableFilterValues SetConnectionInterface()&lt;br&gt;{&lt;br&gt;   return this;&lt;br&gt;}&lt;br&gt;&lt;br&gt;public string[] GetCurrentlySelectedGeographies()&lt;br&gt;{&lt;br&gt;   String[] choices = new String[countries.Length];&lt;br&gt;   bool anythingSelected = false;&lt;br&gt;&lt;br&gt;   for (int i = 0; i &amp;lt; cblRegionList.Items.Count; i++)            {                if (cblRegionList.Items[i].Selected)                {                    anythingSelected = true;                    choices[i] = cblRegionList.Items[i].Text;                }             }            if (!anythingSelected)                choices = null;             return choices;        }         protected override void RenderContents(HtmlTextWriter output)        {            this.EnsureChildControls();            RenderChildren(output);         }    } }&lt;/string&gt;&lt;/string&gt;&lt;/string&gt;&lt;/string&gt;&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Now,
rather than explaining the simple webpart, which is already explained
by Microsoft, I will point out key points which differentiates it from
the examples at many places.&lt;br&gt;&lt;br&gt;If we notice &lt;code&gt;GetCurrentlySelectedGeographies()&lt;/code&gt;
method, it returns the string array of selected geographies. However,
the length of this string array is constant and is equal to number of
selectable items, which causes the other items in string array to
become &lt;code&gt;null&lt;/code&gt;.&lt;br&gt;&lt;br&gt;In the MSDN example &lt;a href="http://msdn2.microsoft.com/en-us/library/bb457205.aspx"&gt;here&lt;/a&gt; the string array is directly passed by converting it to &lt;code&gt;ReadOnlyCollection&lt;/code&gt; of strings. This will not work since it includes the null items&lt;br&gt;in the array as well.&lt;br&gt;&lt;/p&gt;&lt;pre&gt;string[] values = this.GetCurrentlySelectedGeographies();&lt;br&gt;return values == null ?null :new ReadOnlyCollection&lt;string&gt;(values);&lt;br&gt;&lt;/string&gt;&lt;/pre&gt;&lt;p&gt;Pivot
table Report filter cell, expects a Collection of values only which are
selected. Thus we need to modify the code as follows&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;pre&gt;string[] values = this.GetCurrentlySelectedGeographies();      &lt;br&gt;List&lt;string&gt; param=new List&lt;string&gt;();&lt;br&gt;foreach (string str in values)&lt;br&gt;{&lt;br&gt; if(!string.IsNullOrEmpty(str))&lt;br&gt; param.Add(str);&lt;br&gt;}&lt;br&gt;return values == null ? null :new ReadOnlyCollection&lt;string&gt;(param);&lt;br&gt;&lt;/string&gt;&lt;/string&gt;&lt;/string&gt;&lt;/pre&gt;&lt;p&gt;This
code snippets, creates a new List which includes all the string objects
except the null items from the original string array which is returned
by &lt;code&gt;GetCurrentlySelectedGeographies()&lt;/code&gt;&lt;br&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8347330" width="1" height="1"&gt;</description></item><item><title>RSS Reader webpart with tab support and asynchronous periodic data refresh using AJAX</title><link>http://blogs.msdn.com/mahuja/archive/2008/04/01/rss-reader-webpart-with-tab-support-and-asynchronous-periodic-data-refresh-using-ajax.aspx</link><pubDate>Tue, 01 Apr 2008 07:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8347326</guid><dc:creator>Madhur</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mahuja/comments/8347326.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mahuja/commentrss.aspx?PostID=8347326</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mahuja/rsscomments.aspx?PostID=8347326</wfw:comment><description>&lt;font style="color: rgb(0, 0, 0);" face="verdana" size="3"&gt;&lt;font style="color: rgb(0, 0, 102);"&gt;I have recently written my first article on Codeproject.&lt;br&gt;&lt;br&gt;The article describes the development of AJAX enabled webpart on MOSS 2007 SP1.&lt;br&gt;&lt;br&gt;The
cool thing about it is the that it also utilizes the AJAX Control
Toolkit including programmatically adding and styling TabContainer and
TabPanel controls which can be quite tricky for a beginner. The article
can be found here:&lt;br&gt;&lt;a href="http://www.codeproject.com/KB/sharepoint/RssReaderAjax.aspx"&gt;http://www.codeproject.com/KB/sharepoint/RssReaderAjax.aspx&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8347326" width="1" height="1"&gt;</description></item><item><title>Implementation of Logging and Instrumentation Application Block in MOSS 2007</title><link>http://blogs.msdn.com/mahuja/archive/2008/04/01/implementation-of-logging-and-instrumentation-application-block-in-moss-2007.aspx</link><pubDate>Tue, 01 Apr 2008 07:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8347329</guid><dc:creator>Madhur</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mahuja/comments/8347329.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mahuja/commentrss.aspx?PostID=8347329</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mahuja/rsscomments.aspx?PostID=8347329</wfw:comment><description>&lt;font style="color: rgb(0, 0, 102);" size="3"&gt;&lt;font face="verdana"&gt;Continuing the series of articles on Enterprise Library, I have written the first article&lt;/font&gt;&lt;br&gt;&lt;font face="verdana"&gt;on the implementation of Logging Application Block in MOSS 2007. Due to inclusion of formatted&lt;/font&gt;&lt;font face="verdana"&gt; code and images, I have directly uploaded this on Codeproject.&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font face="verdana"&gt;The article can be viewed &lt;a href="http://www.codeproject.com/KB/sharepoint/SPLogging.aspx"&gt;here&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8347329" width="1" height="1"&gt;</description></item><item><title>Get RSS Url for a list or Document Library Programmatically</title><link>http://blogs.msdn.com/mahuja/archive/2008/04/01/get-rss-url-for-a-list-or-document-library-programmatically.aspx</link><pubDate>Tue, 01 Apr 2008 07:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8347324</guid><dc:creator>Madhur</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/mahuja/comments/8347324.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mahuja/commentrss.aspx?PostID=8347324</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mahuja/rsscomments.aspx?PostID=8347324</wfw:comment><description>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face  {font-family:"Cambria Math";  panose-1:2 4 5 3 5 4 6 3 2 4;  mso-font-charset:0;  mso-generic-font-family:roman;  mso-font-pitch:variable;  mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face  {font-family:Calibri;  panose-1:2 15 5 2 2 2 4 3 2 4;  mso-font-charset:0;  mso-generic-font-family:swiss;  mso-font-pitch:variable;  mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face  {font-family:Verdana;  panose-1:2 11 6 4 3 5 4 4 2 4;  mso-font-charset:0;  mso-generic-font-family:swiss;  mso-font-pitch:variable;  mso-font-signature:536871559 0 0 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-unhide:no;  mso-style-qformat:yes;  mso-style-parent:"";  margin:0in;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:Calibri;  mso-fareast-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} a:link, span.MsoHyperlink  {mso-style-noshow:yes;  mso-style-priority:99;  color:blue;  mso-themecolor:hyperlink;  text-decoration:underline;  text-underline:single;} a:visited, span.MsoHyperlinkFollowed  {mso-style-noshow:yes;  mso-style-priority:99;  color:purple;  mso-themecolor:followedhyperlink;  text-decoration:underline;  text-underline:single;} .MsoChpDefault  {mso-style-type:export-only;  mso-default-props:yes;  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:Calibri;  mso-fareast-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} .MsoPapDefault  {mso-style-type:export-only;  margin-bottom:10.0pt;  line-height:115%;} @page Section1  {size:8.5in 11.0in;  margin:1.0in 1.0in 1.0in 1.0in;  mso-header-margin:.5in;  mso-footer-margin:.5in;  mso-paper-source:0;} div.Section1  {page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0in 5.4pt 0in 5.4pt;  mso-para-margin-top:0in;  mso-para-margin-right:0in;  mso-para-margin-bottom:10.0pt;  mso-para-margin-left:0in;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p style="color: rgb(0, 0, 0);" face="verdana" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font style="color: rgb(23, 54, 93);"&gt;Recently
I developed an RSS Reader webpart which would take the RSS URL of list
to render its feeds. Very much same like the out of the box webpart
with the exception that it was AJAX enabled. I would post the details
of that part on the blog when I am finished.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);" face="verdana" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;br&gt;&lt;font style="color: rgb(23, 54, 93);"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" face="verdana" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font style="color: rgb(23, 54, 93);"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" face="verdana" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font style="color: rgb(23, 54, 93);"&gt;An
idea came to me that wouldn’t it be nice to also enable users to just
give the list URL rather than RSS URL since would reduce the few steps
on the user’s side.&lt;font style=""&gt;  &lt;/font&gt;I thought it would be just a matter of accessing the &lt;i style=""&gt;RssUrl&lt;/i&gt; property of &lt;i style=""&gt;SPList&lt;/i&gt;
object, but to my surprise it was not to be. There is no property such
property in the API, so I decided to write my own function for it.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);" face="verdana" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;br&gt;&lt;font style="color: rgb(23, 54, 93);"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" face="verdana" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font style="color: rgb(23, 54, 93);"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" face="verdana" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font style="color: rgb(23, 54, 93);"&gt;Let’s analyze the RSS URL of a list or a library.&lt;font style=""&gt;  &lt;/font&gt;Whenever the user clicks on View RSS feed on a library, here is how SharePoint constructs the URL:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;br&gt;
&lt;/font&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;a href="http://%3cserver%3e/%3csite%3e/_layouts/listfeed.aspx?List=%7B14206B18%2DF68F%2D479B%2DBC84%2D15EE48D19D7D%7D"&gt;http://&amp;lt;server&amp;gt;/&amp;lt;site&amp;gt;/_layouts/listfeed.aspx?List=%7B14206B18%2DF68F%2D479B%2DBC84%2D15EE48D19D7D%7D&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;a href="http://%3cserver%3e/%3csite%3e/_layouts/listfeed.aspx?List=%7B14206B18%2DF68F%2D479B%2DBC84%2D15EE48D19D7D%7D"&gt;&lt;br&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;Listfeed.aspx is the inbuilt RSS viewer of sharepoint which accepts a parameter which is the GUID of the list. &lt;font style=""&gt; &lt;/font&gt;%2D tokens refer to ‘-‘characters which exist inside the GUID. &lt;font style=""&gt; &lt;/font&gt;Considering all this, it’s easy to write a function which will return the RSS URL. Here is the code for the same:&lt;/font&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;br&gt;
&lt;/font&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;private&lt;/font&gt;&lt;font style="" face="&amp;quot;" size="3"&gt; string MakeRssUrl(string rawurl)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;        &lt;/font&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                &lt;/font&gt;Uri url = new Uri(rawurl, UriKind.Absolute);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                &lt;/font&gt;if (url.GetLeftPart(UriPartial.Path).Contains(“_layouts/listfeed.aspx”))&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                &lt;/font&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                    &lt;/font&gt;return rawurl;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                &lt;/font&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                &lt;/font&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                &lt;/font&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                    &lt;/font&gt;string rssurl;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                 &lt;/font&gt;&lt;font style=""&gt;   &lt;/font&gt;using (SPWeb web = new SPSite(rawurl).OpenWeb())&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                    &lt;/font&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                        &lt;/font&gt;SPList list = web.GetListFromUrl(rawurl);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                        &lt;/font&gt;rssurl = web.Url + "/_layouts/listfeed.aspx?list=" + list.ID;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                        &lt;/font&gt;return rssurl;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                    &lt;/font&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                &lt;/font&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;catch (UriFormatException e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                &lt;/font&gt;return string.Empty;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;        &lt;/font&gt;}&lt;/font&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;br&gt;
&lt;/font&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;The
code is pretty self explanatory. The argument to function is list URL
or RSS url. We first check if the URL is RSS URL itself, and if it is
we just return. Otherwise, if it’s a list URL, we create a SPList
instance, grap the GUID and contatenate it with the site URL and
listfeed.aspx.&lt;br&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;br&gt;
&lt;/font&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;Note
that the function does not validate if the given URL was actually a
valid list URL or not. The exception handling for that case should be
left to the caller of the function.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8347324" width="1" height="1"&gt;</description></item><item><title>Reveal Unknown Error on Sharepoint 2007 pages</title><link>http://blogs.msdn.com/mahuja/archive/2008/04/01/reveal-unknown-error-on-sharepoint-2007-pages.aspx</link><pubDate>Tue, 01 Apr 2008 07:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8347322</guid><dc:creator>Madhur</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mahuja/comments/8347322.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mahuja/commentrss.aspx?PostID=8347322</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mahuja/rsscomments.aspx?PostID=8347322</wfw:comment><description>&lt;div style="color: rgb(0, 0, 0);"&gt;&lt;font style="color: rgb(0, 0, 128);" face="Verdana" size="2"&gt;&lt;font class="775020215-14012008"&gt;How
often you have encountered the infamous Unknown Error on Sharepoint
2007 pages. If you are a Sharepoint developer, chances are that
innumerable times :)&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt; &lt;/div&gt;  &lt;div style="color: rgb(0, 0, 0);"&gt;&lt;font style="color: rgb(0, 0, 128);" face="Verdana" size="2"&gt;&lt;font class="775020215-14012008"&gt;However,
if you are also seasoned ASP.NET developer as well, you also know the
trick behind it to reveal them., which I am going to give it here.&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt; &lt;/div&gt;   &lt;div style="color: rgb(0, 0, 0);"&gt;&lt;font style="color: rgb(0, 0, 128);" face="Verdana" size="2"&gt;&lt;font class="775020215-14012008"&gt;The
trick is that ASP.NET Framework wants to show the real error message,
but its the sharepoint which abstracts the message from the user. This
is good for production systems since those cryptic error message may
not be user friendly. Or revealing those full stack trace could cause
potential security concerns.&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt; &lt;/div&gt;  &lt;div style="color: rgb(0, 0, 0);"&gt;&lt;font style="color: rgb(0, 0, 128);" face="Verdana" size="2"&gt;&lt;font class="775020215-14012008"&gt;But
for an experienced developer, this is almost must to turn them off.
This is achieved by turning off custom errors in web.config&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt; &lt;/div&gt;  &lt;div style="color: rgb(0, 0, 0);"&gt;&lt;font style="color: rgb(0, 0, 128);" face="Verdana" size="2"&gt;&lt;font class="775020215-14012008"&gt;Find  the web.config for the site you normally use as your development  site. Locate this tag&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt; &lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt;&lt;font style="color: rgb(0, 0, 128);" face="Courier New" size="2"&gt;&lt;font class="775020215-14012008"&gt;&amp;lt;SafeMode ... CallStack="false" ...&amp;gt; and change  it to CallStack="true"&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt; &lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt;&lt;font style="color: rgb(0, 0, 128);" face="Courier New" size="2"&gt;&lt;font class="775020215-14012008"&gt;Set &amp;lt;customErrors mode="On" /&amp;gt; to  mode="Off"&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt; &lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt;&lt;font style="color: rgb(0, 0, 128);" face="Courier New" size="2"&gt;&lt;font class="775020215-14012008"&gt;Set &amp;lt;compilation batch="false" debug="false"&amp;gt; to &amp;lt;compilation batch="true" debug="true"&amp;gt;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt; &lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="Tahoma" size="2"&gt;&lt;font class="775020215-14012008"&gt;&lt;font style="color: rgb(0, 0, 128);" face="Verdana"&gt;Now you will get the full stack trace as soon as the error is  raised.&lt;/font&gt; &lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8347322" width="1" height="1"&gt;</description></item><item><title>Unknown Error on Manage Form Templates Page (Manageformtemplates.aspx)</title><link>http://blogs.msdn.com/mahuja/archive/2008/04/01/unknown-error-on-manage-form-templates-page-manageformtemplates-aspx.aspx</link><pubDate>Tue, 01 Apr 2008 07:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8347321</guid><dc:creator>Madhur</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mahuja/comments/8347321.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mahuja/commentrss.aspx?PostID=8347321</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mahuja/rsscomments.aspx?PostID=8347321</wfw:comment><description>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face  {font-family:Verdana;  panose-1:2 11 6 4 3 5 4 4 2 4;  mso-font-charset:0;  mso-generic-font-family:swiss;  mso-font-pitch:variable;  mso-font-signature:536871559 0 0 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-parent:"";  margin:0in;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:"Times New Roman";} a:link, span.MsoHyperlink  {color:blue;  text-decoration:underline;  text-underline:single;} a:visited, span.MsoHyperlinkFollowed  {color:purple;  text-decoration:underline;  text-underline:single;} @page Section1  {size:8.5in 11.0in;  margin:1.0in 1.25in 1.0in 1.25in;  mso-header-margin:.5in;  mso-footer-margin:.5in;  mso-paper-source:0;} div.Section1  {page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-parent:"";  mso-padding-alt:0in 5.4pt 0in 5.4pt;  mso-para-margin:0in;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";  mso-ansi-language:#0400;  mso-fareast-language:#0400;  mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;Getting Unknown Error on this page?. &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;No helpful clue in Sharepoint log or Event Viewer?&lt;/font&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;br&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;This can happen if database record in the list of published InfoPath forms had a null where it shouldn't be.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;o:p&gt;&lt;br&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;Thanks to this blog, there is small code snippet given here which will delete the culprit entry.&lt;/font&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;br&gt;
&lt;/font&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;a href="http://geekswithblogs.net/HammerTips/archive/2007/12/07/unable-to-manage-form-templates.aspx"&gt;http://geekswithblogs.net/HammerTips/archive/2007/12/07/unable-to-manage-form-templates.aspx&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;font style="color: rgb(0, 0, 0);" size="3"&gt;&lt;br&gt;
&lt;/font&gt;&lt;p face="verdana" style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;br&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="color: rgb(0, 0, 102);" face="verdana" size="3"&gt;But
make sure that you run this script under the debugger and only execute
the delete operation for the offending form, otherwise it will delete
all the published forms in your farm.&lt;/font&gt;&lt;font size="3"&gt;&lt;br&gt;
&lt;/font&gt;&lt;font style="color: rgb(51, 51, 153);" face="Verdana" size="3"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8347321" width="1" height="1"&gt;</description></item><item><title>Performing Operations on Infopath 2007 Contact Selector Control using Managed Code</title><link>http://blogs.msdn.com/mahuja/archive/2008/04/01/performing-operations-on-infopath-2007-contact-selector-control-using-managed-code.aspx</link><pubDate>Tue, 01 Apr 2008 07:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8347319</guid><dc:creator>Madhur</dc:creator><slash:comments>12</slash:comments><comments>http://blogs.msdn.com/mahuja/comments/8347319.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mahuja/commentrss.aspx?PostID=8347319</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mahuja/rsscomments.aspx?PostID=8347319</wfw:comment><description>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face  {font-family:Verdana;  panose-1:2 11 6 4 3 5 4 4 2 4;  mso-font-charset:0;  mso-generic-font-family:swiss;  mso-font-pitch:variable;  mso-font-signature:536871559 0 0 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-parent:"";  margin:0in;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:"Times New Roman";} a:link, span.MsoHyperlink  {color:blue;  text-decoration:underline;  text-underline:single;} a:visited, span.MsoHyperlinkFollowed  {color:purple;  text-decoration:underline;  text-underline:single;} pre  {margin:0in;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Courier New";  mso-fareast-font-family:"Times New Roman";} @page Section1  {size:8.5in 11.0in;  margin:1.0in 1.25in 1.0in 1.25in;  mso-header-margin:.5in;  mso-footer-margin:.5in;  mso-paper-source:0;} div.Section1  {page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-parent:"";  mso-padding-alt:0in 5.4pt 0in 5.4pt;  mso-para-margin:0in;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";  mso-ansi-language:#0400;  mso-fareast-language:#0400;  mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;Infopath 2007 provides an out of the box contact selector control to select the user and validate&lt;/font&gt; &lt;font style="" face="Verdana" size="3"&gt;against the Active Directory.&lt;br&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;br&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt; &lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;In this blog, We will see, how to get more out of this control. Performing some advanced functions&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font style="" face="Verdana" size="3"&gt;using managed code.&lt;/font&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;br&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;For basic usage of this control, see this blog entry on infopath blog:&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt; &lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;a href="http://blogs.msdn.com/infopath/archive/2007/02/28/using-the-contact-selector-control.aspx"&gt;http://blogs.msdn.com/infopath/archive/2007/02/28/using-the-contact-selector-control.aspx&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;a href="http://blogs.msdn.com/infopath/archive/2007/02/28/using-the-contact-selector-control.aspx"&gt;&lt;br&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt; &lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt; &lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="Verdana" size="3"&gt;To start with basics, this control has predefined schema, since it simultaneously stores the display name,&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font style="" face="Verdana" size="3"&gt;account id and account type. &lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font size="3"&gt;&lt;person&gt;&lt;/person&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" size="3"&gt;  &lt;/font&gt;&lt;font size="3"&gt;&lt;displayname&gt;&lt;i&gt;user display name&lt;/i&gt;&lt;/displayname&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" size="3"&gt;  &lt;/font&gt;&lt;font size="3"&gt;&lt;accountid&gt;&lt;i&gt;DOMAIN/user account&lt;/i&gt;&lt;/accountid&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" size="3"&gt;  &lt;/font&gt;&lt;font size="3"&gt;&lt;accounttype&gt;&lt;i&gt;user or group type&lt;/i&gt;&lt;/accounttype&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="Verdana" size="3"&gt;It is interesting to note that this control behaves like a repeating control, in a sense,&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="Verdana" size="3"&gt;the user can select multiple users from the same control. Internally, the XML schema&lt;br&gt;shown above is repeated for multiple users.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font size="3"&gt;&lt;b style=""&gt;&lt;font style="" face="Verdana"&gt;2. Get the Display Names and Login Names for all users in contact Selector Control&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/b&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font size="3"&gt;&lt;b style=""&gt;&lt;font style="" face="Verdana"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/b&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="Verdana" size="3"&gt;To get the display names and login names, we just need to parse the generated XML&lt;br&gt;schema. We will store the names and login names as comma separated values.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="Verdana" size="3"&gt;Assuming that our control name is &lt;/font&gt;&lt;font size="3"&gt;gpContactSelector, &lt;/font&gt;&lt;font style="" face="Verdana" size="3"&gt;the code below extracts the&lt;br&gt;display names and login names.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;XPathNavigator&lt;/font&gt;&lt;font style="" face="&amp;quot;" size="3"&gt; xNavMain = this.XmlFormView2.XmlForm.MainDataSource.CreateNavigator();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;XmlNamespaceManager&lt;/font&gt;&lt;font style="" face="&amp;quot;" size="3"&gt; xNameSpace = new XmlNamespaceManager(new NameTable());&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;xNameSpace.AddNamespace("my", "http://schemas.microsoft.com/office/infopath/2003/myXSD/2007-11-20T20:01:12");&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;XPathNodeIterator&lt;/font&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;[] nodes = new XPathNodeIterator[4];&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;nodes[0] =&lt;font style=""&gt;  &lt;/font&gt;xNavMain.Select("/my:myFields/my:gpContactSelector/my:Person/my:DisplayName", xNameSpace);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;nodes[1] = xNavMain.Select("/my:myFields/my:gpContactSelector/my:Person/my:AccountId", xNameSpace);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;nodes[2] = xNavMain.Select("/my:myFields/my:gpContactSelector/my:Person/my:AccountType", xNameSpace);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;        &lt;/font&gt;string names=string.Empty;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;        &lt;/font&gt;string accid=string.Empty;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;        &lt;/font&gt;for (int j = 0; j &amp;lt;&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;        &lt;/font&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;for (int i = 0; i &amp;lt;&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                &lt;/font&gt;nodes[i].MoveNext();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;if (nodes[2].Current.ToString() == "User")&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                &lt;/font&gt;names = names + nodes[0].Current.ToString()+";";&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                &lt;/font&gt;accid = accid + nodes[1].Current.ToString()+";";&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" size="3"&gt;&lt;font style=""&gt;        &lt;/font&gt;}&lt;/font&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="Verdana" size="3"&gt;The code above is pretty self explanatory. It parses the generated XML Schema&lt;br&gt;and stores the &lt;i style=""&gt;Names&lt;/i&gt; and &lt;i style=""&gt;login ids&lt;/i&gt; in two variables, &lt;i style=""&gt;names&lt;/i&gt; and &lt;i style=""&gt;accid&lt;/i&gt; as semicolon&lt;br&gt;separated values. Further operations can be then performed on these.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font size="3"&gt;&lt;b style=""&gt;&lt;font style="" face="Verdana"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/b&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font size="3"&gt;&lt;b style=""&gt;&lt;font style="" face="Verdana"&gt;2. Sending Emails to All users selected in Contact Selector&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/b&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="Verdana" size="3"&gt;To send emails, we obviously need email addresses of the contacts selected.&lt;br&gt;However, contact selector does not automatically grabs out the email addresses&lt;br&gt;of the contacts. To get the email addresses, we will first extract the login names&lt;br&gt;from the XML schema and then use the &lt;b style=""&gt;Microsoft.SharePoint.Utilities.SPUtility.GetFullNameandEmailfromLogin&lt;/b&gt;&lt;br&gt;class to get the email addresses.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="Verdana" size="3"&gt;The code below accepts the login names as semicolon separated values and builds&lt;br&gt;a string containing email addresses as semicolon separated values.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;private&lt;/font&gt;&lt;font style="" face="&amp;quot;" size="3"&gt; string GetEmails(string final)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;        &lt;/font&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;char[] a = { ';' };&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;string[] loginIds = final.Split(a, StringSplitOptions.RemoveEmptyEntries);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;string[] emailids = new string[loginIds.Length];&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;for (int i = 0; i &amp;lt;&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;    &lt;/font&gt;&lt;font style=""&gt;        &lt;/font&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                    &lt;/font&gt;Microsoft.SharePoint.Administration.SPGlobalAdmin ga = new Microsoft.SharePoint.Administration.SPGlobalAdmin();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                    &lt;/font&gt;string dispname, email;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                    &lt;/font&gt;Microsoft.SharePoint.Utilities.SPUtility.GetFullNameandEmailfromLogin(ga, loginIds[i], out dispname, out email);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                    &lt;/font&gt;emailids[i] = email;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;string finalstring = string.Empty;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;for (int i = 0; i &amp;lt;&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                &lt;/font&gt;finalstring = finalstring + emailids[i] + ";";&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;return finalstring;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;        &lt;/font&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="Verdana" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;/pre&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="Verdana" size="3"&gt;Now, we can use using &lt;b style=""&gt;System.Net.Mail&lt;/b&gt; namespace to send mails. This namespace&lt;br&gt;overrides the &lt;b style=""&gt;System.Web.Mail&lt;/b&gt; used in .NET 1.1. For those who are new to this&lt;br&gt;namespace, below is the sample code given to send mail.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/pre&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;private&lt;/font&gt;&lt;font style="" face="&amp;quot;" size="3"&gt; void SendMail()&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;        &lt;/font&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;MailMessage mail = new MailMessage();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;mail.From = new MailAddress("Admin@domain.com", "Administrator");&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;          &lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                 &lt;/font&gt;char[] a = { ';' };&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                 &lt;/font&gt;string[] emailIds = to.Split(a, StringSplitOptions.RemoveEmptyEntries);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                 &lt;/font&gt;for (int i = 0; i &amp;lt; style=""&amp;gt;                   &lt;/font&gt;&lt;font size="3"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;                     &lt;/font&gt;mail.To.Add(new MailAddress(emailIds[i]));&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;mail.Subject = "New Meeting Request";&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;mail.Priority = MailPriority.Normal;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;      &lt;/font&gt;&lt;font style=""&gt;      &lt;/font&gt;mail.IsBodyHtml = true;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;          &lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;mail.Body = GetBody();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;            &lt;/font&gt;new SmtpClient("smtpserver").Send(mail);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="color: rgb(0, 0, 0);"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;font style="" face="&amp;quot;" size="3"&gt;&lt;font style=""&gt;      &lt;/font&gt;}&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8347319" width="1" height="1"&gt;</description></item></channel></rss>