<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Trivial talk</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/suresh/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/suresh/feed.xml</link>
    <description>Talking about Sharepoint, SQL Server, .Net Technologies and Business Intelligence domain</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:27:31 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>How to disable the email "Getting the most out of SharePoint"</title>
      <link>https://docs.microsoft.com/archive/blogs/suresh/how-to-disable-the-email-getting-the-most-out-of-sharepoint</link>
      <pubDate>Thu, 21 Apr 2016 18:05:19 GMT</pubDate>
      <dc:creator><![CDATA[Suresh Meenakshisundaram]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/suresh/?p=308</guid>
      <description><![CDATA[[Disclaimer: https://blogs.msdn.microsoft.com/suresh/disclaimer/]

Few customers want to disable...]]></description>
      <content:encoded><![CDATA[<strong><em>[Disclaimer: <a title="https://blogs.msdn.microsoft.com/suresh/disclaimer/" href="https://blogs.msdn.microsoft.com/suresh/disclaimer/" target="_blank">https://blogs.msdn.microsoft.com/suresh/disclaimer/</a>]</em></strong>

Few customers want to disable the email message "Getting the most out of SharePoint", which will be sent out when new MySite gets provisioned, Since the email format will not adhere to their process or multi language.

There is a property called  “SendWelcomeEmail” property on UserProfileApplication. It has been used only for welcome mail which will be sending after my site provisioning. It will not stop other mails. The below script will help to disable. Test it out in your dev environment.

<em>Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue</em>

<em>$upaApp = Get-SPServiceApplication | Where {$_.DisplayName -eq 'UPA'}</em>

<em>$upaApp.SendWelcomeEmail = $false</em>

<em>$upaApp.Update()</em>]]></content:encoded>
    </item>
    <item>
      <title>Troubleshooting SharePoint Remote Event Receiver</title>
      <link>https://docs.microsoft.com/archive/blogs/suresh/troubleshooting-sharepoint-remote-event-receiver</link>
      <pubDate>Thu, 03 Mar 2016 16:25:00 GMT</pubDate>
      <dc:creator><![CDATA[Suresh Meenakshisundaram]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/suresh/2016/03/03/troubleshooting-sharepoint-remote-event-receiver/</guid>
      <description><![CDATA[Recently I have worked with customer on SharePoint Remote Event Reciever (RER) issue. The app is...]]></description>
      <content:encoded><![CDATA[<p>Recently I have worked with customer on SharePoint Remote Event Reciever (RER) issue. The app is keep trying to install and throwing error in few seconds. Customer has hooked the App Installed event. The provider hosted app has been configured in different server (it does not matter).</p>
<p>Though Customer has already added custom logging mechanism in &ldquo;publicSPRemoteEventResult ProcessEvent(SPRemoteEventProperties properties)&rdquo; nothing has been generated, Which gave me the clue that it is failing well before.</p>
<p style="padding-left: 30px;">1. Analyzed the ULS log and make sure the call to RER service has been triggered</p>
<p style="padding-left: 30px;">2. Analyzed the IIS log file on RER server and found that IIS&nbsp;&nbsp; is getting a hit from SharePoint and calls to <a href="https://providerapp01.collabproviderdev.spapps/GSOAssetSetup/Services/AppEventReceiver.svc">Services/AppEventReceiver.svc</a>&nbsp;is recorded</p>
<p style="padding-left: 30px;">&nbsp;3.&nbsp;Then to get more info, enabled the FREB log to trace the WCF calls for status code 100-600. (Seehow to enable FREB <a href="https://www.iis.net/learn/troubleshoot/using-failed-request-tracing/troubleshooting-failed-requests-using-tracing-in-iis">here</a>).<br />&nbsp;</p>
<p style="padding-left: 30px;">4. Going thru FREB log, As expected it has failed in IIS pipe line</p>
<p style="padding-left: 30px;">5. Navigated to &ldquo;Compact View&rdquo; in FREB xml file and Looked at GENERAL_REQUEST_ENTITY &amp; &ldquo;GENERAL_RESPONSE_ENTITY_BUFFER&rdquo; event which recorded the Request SOAP from SharePoint and Response SOAP from RER</p>
<p style="padding-left: 30px;">6. Since &ldquo;includeExceptionDetailInFaults&rdquo; has not been enabled on RER side, it is showing &ldquo;The server was unable to process the request due to an internal error.&nbsp; For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the &amp;lt;serviceDebug&amp;gt; configuration behavior) on the server in order<br />to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework SDK documentation and inspect the server trace logs"</p>
<p style="padding-left: 30px;">7. Injected the below highlighted xml block to web.config of RER and tried to install the app again.</p>
<p><span style="font-family: Consolas;"><span style="font-family: Consolas;"><span style="font-size: medium;"><span style="font-size: small;">&lt;system.serviceModel&gt;<br />&nbsp;&nbsp;&nbsp; &lt;bindings&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;basicHttpBinding&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--Used by app for SharePoint--&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;binding name="secureBinding"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;security mode="Transport" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/binding&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/basicHttpBinding&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/bindings&gt;<br />&nbsp;&nbsp;&nbsp; &lt;protocolMapping&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;add binding="basicHttpBinding" scheme="https" bindingConfiguration="secureBinding"/&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/protocolMapping&gt;<br />&nbsp;&nbsp;&nbsp;<span style="background-color: #888888;"> &lt;behaviors&gt;</span><br /><span style="background-color: #888888;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;serviceBehaviors&gt;</span><br /><span style="background-color: #888888;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;behavior&gt;</span><br /><span style="background-color: #888888;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;serviceDebug includeExceptionDetailInFaults="true" /&gt;</span><br /><span style="background-color: #888888;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/behavior&gt;</span><br /><span style="background-color: #888888;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/serviceBehaviors&gt;</span><br /><span style="background-color: #888888;">&nbsp;&nbsp;&nbsp; &lt;/behaviors&gt;</span><br />&lt;/system.serviceModel&gt;</span></span></span></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="padding-left: 30px;">8. It has now included the exception stack trace with where it is failing</p>
<p style="padding-left: 30px;">9. Fixed the issue.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Getting "Operation is not valid due to the current state of the object" error</title>
      <link>https://docs.microsoft.com/archive/blogs/suresh/getting-operation-is-not-valid-due-to-the-current-state-of-the-object-error</link>
      <pubDate>Mon, 25 Aug 2014 11:49:46 GMT</pubDate>
      <dc:creator><![CDATA[Suresh Meenakshisundaram]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/suresh/2014/08/25/getting-operation-is-not-valid-due-to-the-current-state-of-the-object-error/</guid>
      <description><![CDATA[Problem:
When SharePoint is configured with Trusted Identity provider, you might get a error...]]></description>
      <content:encoded><![CDATA[<p><span style="text-decoration: underline;"><strong>Problem:</strong></span></p>
<p>When SharePoint is configured with Trusted Identity provider, you might get a error "Operation is not valid due to the current state of the object" while accessing the page after a successful authentication.</p>
<p>Error is :</p>
<p>Microsoft.SharePoint.IdentityModel.SPFederationAuthenticationModule.GetReturnUrlFromResponse Operation is not valid due to the current state of the object</p>
<p><span style="text-decoration: underline;"><strong>Root cause</strong></span></p>
<p>One of the root cause is the <strong>Identifier Claim</strong> coming from AD FS is <span style="background-color: #ff0000;">empty</span>. If you have configured with AD, then go to AD and give the proper value in AD Attribute.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint ECM - Internals of Metadata Management - I</title>
      <link>https://docs.microsoft.com/archive/blogs/suresh/sharepoint-ecm-internals-of-metadata-management-i</link>
      <pubDate>Sat, 14 Jan 2012 22:55:00 GMT</pubDate>
      <dc:creator><![CDATA[Suresh Meenakshisundaram]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/suresh/2012/01/14/sharepoint-ecm-internals-of-metadata-management-i/</guid>
      <description><![CDATA[SharePoint 2010 has introduced many new functionalities which has changed and improved ECM...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: medium;">SharePoint 2010 has </span><span style="font-size: medium;">introduced many new functionalities which has changed and improved ECM dramatically. This different components that fall under the ECM label like&nbsp; WCM(Web content management), document management, records management and functionalities like&nbsp; eDiscovery&nbsp;&nbsp;(finding content), auditing, and setting up holds for content involved in litigation, Meta data (Taxonomy and folksonomy) to categorize the document. This blog talks about the metadata management. Taxonomies are hierarchical sets</span><br /><span style="font-size: medium;">of terms, or tags, usually centrally defined. Folksonomies are similar to taxonomies in that they are a collection of terms, but they have no organization or hierarchical structure. Metadata is used in many more places throughout SharePoint, such as refining search results, filtering and navigating content within SharePoint lists and document libraries using the new Metadata Navigation Settings list, and enabling users to tag pages in social solutions. Recently I have worked on engagement and have gotten chance to work on Metadata API programming where I want to share. Before&nbsp; we dive in to internals of Metadata management, we need to know the following terms.</span></p>
<p>&nbsp;</p>
<ul>
<li><span style="font-size: medium;">Terms - A term is the central</span><span style="font-size: medium;"> object in the taxonomy system.</span></li>
<li><span style="font-size: medium;">Termset - A collection of</span><span style="font-size: medium;">&nbsp; related terms in a hierarchy is a termset.</span></li>
<li><span style="font-size: medium;">Labels - Terms have to be</span><span style="font-size: medium;">&nbsp; known by a bunch of different names.</span></li>
<li><span style="font-size: medium;">Groups - Groups in the</span><span style="font-size: medium;">&nbsp; taxonomy system are simply collections of termsets that share a common</span><span style="font-size: medium;"> security assignment.</span></li>
<li><span style="font-size: medium;">Keywords - Free hand strings(</span><span style="font-size: medium;">folksonomy) is a simply flat list of strings.</span></li>
<li><span style="font-size: medium;">Open Termsets - Open termset</span><span style="font-size: medium;"> allow content editors to add new terms to a hierarchy at content authoring</span><span style="font-size: medium;"> time.</span></li>
<li><span style="font-size: medium;">Closed Termsets - Open</span><span style="font-size: medium;"> termsets does not allow content editors to add new terms to a hierarchy at</span><span style="font-size: medium;"> content authoring time.</span></li>
<li><span style="font-size: medium;">Default Label - The label</span><span style="font-size: medium;"> used for the term set when it is selected and displayed in the user</span><span style="font-size: medium;">&nbsp; interface.</span></li>
<li><span style="font-size: medium;">Description - A brief</span><span style="font-size: medium;"> description of what the term is used for.</span></li>
<li><span style="font-size: medium;">Available for Tagging - A</span><span style="font-size: medium;"> flag indicating if the term can be used to tag content.</span></li>
<li><span style="font-size: medium;"></span><span style="font-size: medium;">Language - Each term can be</span><span style="font-size: medium;">&nbsp; translated to multiple languages (depending on the language packs</span><span style="font-size: medium;">&nbsp; installed in the SharePoint farm).</span></li>
<li><span style="font-size: medium;">Synonyms&nbsp; Some terms may be different depending on</span><span style="font-size: medium;">&nbsp; the users and the context.</span></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-size: medium;"><span style="color: #888888;"><strong>Programming</strong></span>:</span></p>
<p><span style="font-size: medium;">&nbsp;SPS2010 includes a robust application programming interface (API) that developers can use to create and manage taxonomies. The API is found in the Microsoft.SharePoint.Taxonomy.dll assembly.&nbsp;You will find this reference in C:\\Program Files\\Common</span><br /><span style="font-size: medium;">Files\\Microsoft Shared\\Web ServerExtensions\\14\\ISAPI\\Microsoft.SharePoint.Taxonomy.dll. This has the following namespaces which we have to know while programming</span></p>
<p>&nbsp;</p>
<ul>
<li><span style="font-size: medium;">Microsoft.SharePoint.Taxonomy.TaxonomySession</span><br />&nbsp;&nbsp;&nbsp;&nbsp;</li>
<li><span style="font-size: medium;">Microsoft.SharePoint.Taxonomy.TermStore</span>&nbsp;&nbsp;&nbsp;&nbsp;</li>
</ul>
<ul>
<li><span style="font-size: medium;">Microsoft.SharePoint.Taxonomy.Group</span>&nbsp;&nbsp;&nbsp;&nbsp;</li>
</ul>
<ul>
<li><span style="font-size: medium;">Microsoft.SharePoint.Taxonomy.TermSet</span><br />&nbsp;&nbsp;&nbsp;&nbsp;</li>
<li><span style="font-size: medium;">Microsoft.SharePoint.Taxonomy.Term</span><br />&nbsp;&nbsp;&nbsp;&nbsp;</li>
</ul>
<p>&nbsp;</p>
<p><span style="font-size: medium;">Inorder to program "Term", we have to fetch the Session, refer the TermStore, get the Group &amp; TermSet and code on Term object which is in the above order.&nbsp;</span></p>
<p><span style="font-size: medium;">&nbsp;TaxonomySession session = new TaxonomySession(SPContext.Current.Site);</span></p>
<p><span style="font-size: medium;">TermStores termStore = null;</span></p>
<p><span style="font-size: medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (this.session.TermStores.Count!= 0)</span></p>
<p><span style="font-size: medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>
<p><span style="font-size: medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.termStore = this.session.TermStores["Test"];</span></p>
<p><span style="font-size: medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.group = this.termStore.Groups.GetByName("TestGroup");</span></p>
<p><span style="font-size: medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TermSet termSet = this.group.TermSets[termSet];</span></p>
<p><span style="font-size: medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Term term = termSet.Terms[&lt;&lt;Guid&gt;&gt;];</span></p>
<p><span style="font-size: medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p>&nbsp;</p>
<p><span style="font-size: medium;">We will see more in the following post. Thanks.</span></p>
<p>&nbsp;</p>
<p><span style="font-size: medium;">Happy coding...</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Extending CQWP with Toolpart- Adding functionality like PageFilter, Pagination - Part 2</title>
      <link>https://docs.microsoft.com/archive/blogs/suresh/extending-cqwp-with-toolpart-adding-functionality-like-pagefilter-pagination-part-2</link>
      <pubDate>Sat, 16 Apr 2011 07:34:00 GMT</pubDate>
      <dc:creator><![CDATA[Suresh Meenakshisundaram]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/suresh/2011/04/16/extending-cqwp-with-toolpart-adding-functionality-like-pagefilter-pagination-part-2/</guid>
      <description><![CDATA[This is continuation of earlier post.
﻿CQWP does not have the PageFilter and Pagination...]]></description>
      <content:encoded><![CDATA[<p><span>This is continuation of earlier <a href="https://blogs.msdn.com/controlpanel/blogs/posteditor.aspx/post">post</a>.</span></p>
<p><span>﻿CQWP does not have the PageFilter and Pagination functionatilies. By extendign the CQWP, It can be achieved through the XSLT. Pagination is very often used feature for the content&nbsp;displaying webpart. </span></p>
<p><span style="text-decoration: underline;"><strong>Pagination</strong></span></p>
<p>We saw how can we use "﻿ProcessDataDelegate" in the earlier one. By using the same functiontionality we have to achieve the pagination and it should be compatible with XSLT.&nbsp; ﻿﻿ProcessDataDelegate pass resultset of CQWP as the DataTable. </p>
<p>1) Add a column "No" in to DataTable and assign the number for earch row.</p>
<p>2) By using the RowFilter we can filter the row from the starting number to end number what we want. Below is the logic to achieve this.</p>
<p>&nbsp;int currentPage = 1;<br />&nbsp;this.pagesCount = (int)Math.Ceiling((double)dt.Rows.Count / this.ItemsPerPage);</p>
<p>&nbsp;int startItemNumber = (currentPage - 1) * this.ItemsPerPage;</p>
<p>&nbsp;int endItemNumber = startItemNumber + (this.ItemsPerPage - 1);<br />&nbsp;dt.Columns.Add("Number", typeof(int));</p>
<p>&nbsp;for (int i = 0; i &lt; dt.Rows.Count; i++)<br />{</p>
<p>dt.Rows[i]["Number"] = i;</p>
<p>}</p>
<p>dt.DefaultView.RowFilter = String.Format(CultureInfo.CurrentCulture, "Number &gt;= {0} AND Number &lt;= {1}", startItemNumber, endItemNumber);</p>
<p>&nbsp;dt = dt.DefaultView.ToTable();</p>
<p>&nbsp;return dt;</p>
<p>&nbsp;Above logic will return the filtered DataTable</p>
<p>3) How to display in XSLTBy using ModifyXsltArgumentList method we have to add one more parameter <br />&nbsp;"argList.AddParameter("PaginationString", string.Empty, pagingHTML)"<br />﻿4) we have declear a string varibale pagingHTML and coin the HTML to display the pages&nbsp; <br />&nbsp;i.e By using&nbsp; "builderHtml.Append("&lt;a href=\"#\"&gt;" + paginationPrevious + "&lt;/a&gt;");"<br />5) After it should be passed to xslt parameter as mentioned above. </p>
<p><span style="text-decoration: underline;"><strong>PageFilter</strong></span></p>
<p>PageFilter functionality will be used when you are provisioning a page with particular field and based on the field value CQWP should filter the data. Again by extending the ProcessDataDelegate, we can achieve this.</p>
<p>1) Add to dropdown into Editor webpart</p>
<p>2)&nbsp;&nbsp;Display&nbsp;&nbsp;the current page content type field in&nbsp;first dropdown display, and current site fields in next dropdown</p>
<p>3) Bring the values in to DataProcessing delegate</p>
<p>4) Fetch the value like below</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPField sourceField = SPContext.Current.Item.Fields.GetFieldByInternalName(this.PageFilterField);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPField targetField = SPContext.Current.Site.RootWeb.Fields.GetFieldByInternalName(this.TargetFilterField);</p>
<p>5) Compage the value&nbsp; and filter it from DataTable.</p>
<p>Happy coding..</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Extending CQWP with Toolpart- Adding functionality like PageFilter, Pagination - Part 1</title>
      <link>https://docs.microsoft.com/archive/blogs/suresh/extending-cqwp-with-toolpart-adding-functionality-like-pagefilter-pagination-part-1</link>
      <pubDate>Tue, 08 Feb 2011 00:11:00 GMT</pubDate>
      <dc:creator><![CDATA[Suresh Meenakshisundaram]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/suresh/2011/02/08/extending-cqwp-with-toolpart-adding-functionality-like-pagefilter-pagination-part-1/</guid>
      <description><![CDATA[Content Query Web Part (CQWP) is one of the most usable OOTB web parts in SharePoint. It has been...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong>Content Query Web Part</strong> (<strong>CQWP</strong>) is one of the most usable OOTB web parts in <strong>SharePoint</strong>. It has been hugely used in publishing sites for aggregating data and presenting through XSLT. As everyone knows that CQWP is most powerful webpart for aggreating data in SharePoint, still we need extra functionality like pagination, page filter which is not in OOTB. This post share little information about how can we achieve through extending the CQWP.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small; text-decoration: underline;"><strong>Extending CQWP</strong></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">These are more important steps while extending user friendly CQWP.</span></p>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Creating Tool Part for CQWP</span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Processing data</span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Passing data to XSLT</span></li>
<span style="text-decoration: underline;">﻿</span> 
</ul>
<p><span style="text-decoration: underline;"><strong><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Creating Tool Part for CQWP</span></strong></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">When&nbsp;extending new functionality to CQWP,&nbsp;new functionality&nbsp;should be easily configurable thourgh toolpart for Content Authors.&nbsp;&nbsp;<b><a href="https://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Microsoft.SharePoint.Publishing:14.0.0.0:71e9bce111e9429c/Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart" class="bold">ContentByQueryWebPart</a>&nbsp;</b>is public class which can be extended , but <b><a href="https://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Microsoft.SharePoint.Publishing:14.0.0.0:71e9bce111e9429c/Microsoft.SharePoint.Publishing.WebControls.ContentByQueryToolPart" class="bold">ContentByQueryToolPart</a>&nbsp;</b> is a sealed class which could not be extended. But it can be&nbsp;achived by adding our ToolPart class to <strong>GetToolParts() </strong>override method and returning the ToolPart[] arrary with our toolpart class. </span></p>
<ol>
<li><span style="font-size: medium;">Extend CQWP and make MyCQWP : </span><span style="font-size: medium;"><span style="color: #2b91af;"><span style="color: #2b91af;"><span style="color: #2b91af;">ContentByQueryWebPart</span></span></span></span></li>
<li><span style="font-size: medium;">Create new MyToolPart class inherting from &nbsp;Microsoft.SharePoint.WebPartPages.<span style="color: #2b91af;"><span style="color: #2b91af;"><span style="color: #2b91af;">ToolPart. </span></span></span><span style="color: #000000;"><strong>(See this how to create tool part in <a target="_blank" href="https://msdn.microsoft.com/en-us/library/dd584178(office.11).aspx" title="MSDN">MSDN</a>)</strong></span></span></li>
<li><span style="color: #000000; font-size: medium;">Add your controls in tool part class(Example </span>Adding "More Link" text and "More Link" Url, or Filtering based on some field....)</li>
<li><span style="color: #000000; font-size: medium;">Add this Tool part into MyCQWP by adding into tool part array.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li>
</ol>
<p><code class="cplusplus">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public override Microsoft.SharePoint.WebPartPages.ToolPart[] GetToolParts()<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List&lt;ToolPart&gt; parts = new List&lt;ToolPart&gt;();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parts.AddRange(base.GetToolParts());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MyToolPart myToolPart = new MyToolPart ();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parts.Add(myToolPart);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return parts.ToArray();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</code></p>
<p><span style="text-decoration: underline;"><strong>&nbsp;<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Processing data</span></strong></span></p>
<p><span style="text-decoration: underline;"><strong><span style="font-family: arial,helvetica,sans-serif; font-size: small;"></span></strong></span>Next step is processing the data in CQWP with additionaly fuctionality which we provided in Tool part. CQWP give a delegate where it gives the resultset as a DataTable, where we need use for our custom functionality. We should register our delegate in OnInit method<br />&nbsp;</p>
<div><span style="color: #000000; font-size: medium;">
<pre class="scroll"><code class="csharp">protected override void OnInit(EventArgs e</code></pre>
<pre class="scroll"><code class="csharp">{<br />base.OnInit(e);<br />this.ProcessDataDelegate += this.ProcessDataItems;<br />}</code></pre>
</span></div>
<p><span style="color: #000000; font-size: medium;">&nbsp;</span></p>
<p>
<div><span style="color: #000000; font-size: medium;">
<p>After registering the delegate our custom logic&nbsp;should go to this method</p>
</span></div>
</p>
<p><span style="color: #000000; font-size: medium;">
<p><span style="color: #000000; font-size: medium;">&nbsp;</span>&nbsp;<code class="cplusplus">public DataTable ProcessDataItems(DataTable data) {<br />////Process the DataTable....<br />try<br />{<br />//// put your custom functionality for processing DataTable like filtering, massaging data itmes<br />}<br />catch<br />{<br />}<br /><br />return data;<br />}</code></p>
<p>
<p>Now CQWP will display the massaged data in page.</p>
<p><span style="text-decoration: underline;"><strong><span style="color: #000000; font-size: medium;">﻿<span style="font-family: arial,helvetica,sans-serif; font-size: small;">Passing data to XSLT</span></span></strong></span></p>
</p>
</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;We have achieved the CQWP to display our own data. Now next question comes, how to display our own text inside CQWP like "More Link" and "More&nbsp; Link Url", which we have configured ToolPart. For that we shoudl touch the "</p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: medium;">protected override void ModifyXsltArgumentList(ArgumentClassWrapper argList) function, where we have to add our params into it.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: medium;">
<pre class="scroll"><code class="cplusplus">protected override void ModifyXsltArgumentList(ArgumentClassWrapper argList) {<br />base.ModifyXsltArgumentList(argList);<br />if (argList != null) <br />{<br />argList.AddParameter("MoreUrl", string.Empty, this.MoreUrl);<br />argList.AddParameter("MoreText", string.Empty, this.MoreText);<br />}<br />}</code></pre>
</span></p>
<p>&nbsp;</p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">&nbsp;After adding this, we have to handle it in XSLT file, Open the "ContentQueryMain.xsl" in and add your params</span></p>
<div><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;">
<p>&nbsp;<span style="font-size: small;">&lt;xsl:param name="MoreUrl" /&gt;</span><br /><span style="font-size: small;">&lt;xsl:param name="MoreText" /&gt;</span></p>
<p>&nbsp;</p>
<p><span style="font-family: arial,helvetica,sans-serif; color: #003300; font-size: small;">After this you can use this variable as like other variable in CQWP. I will explain how can we achieve Pagination in CQWP in the next post..</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; color: #003300; font-size: small;">Happy coding...</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; color: #003300; font-size: small;">&nbsp;</span><span style="font-family: arial,helvetica,sans-serif; color: #003300; font-size: small;">Thanks</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; color: #003300; font-size: small;">&nbsp;</span></p>
<p>&nbsp;</p>
</span></span></span></span></span></span></span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>]]></content:encoded>
    </item>
    <item>
      <title>.Net - const Vs readonly</title>
      <link>https://docs.microsoft.com/archive/blogs/suresh/net-const-vs-readonly</link>
      <pubDate>Sat, 01 Jan 2011 10:04:00 GMT</pubDate>
      <dc:creator><![CDATA[Suresh Meenakshisundaram]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/suresh/2011/01/01/net-const-vs-readonly/</guid>
      <description><![CDATA[In programming, &nbsp;some time we used "const", some time "readonly" constants. &nbsp;Why? Always...]]></description>
      <content:encoded><![CDATA[<p><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif">In programming, &nbsp;some time we used "const", some time "readonly" constants. &nbsp;Why? Always we should be very cautious when using "const". why?</span><br /><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif"><br /></span><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif">Here we are, while programming we should always trade off between performance vs flexibility. "const" is faster than "readonly". But "readonly" has more flexibility than "const". There are two types of constants</span></p>
<p><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif">&nbsp; 1) Compile time constants</span><br /><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif">&nbsp; 2) Run time constants</span><br /><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif"><br /></span><br /><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif"><strong><span style="text-decoration: underline;">Compile time constants</span></strong></span></p>
<p><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif">Compile time constants are replaced with exact value when it compiled. what is it mean? Well. When we declare a variable&nbsp;</span><br /><br /><br /><span style="COLOR: blue">&nbsp;public const</span>&nbsp;<span style="COLOR: blue">int</span>&nbsp;iUserCount&nbsp;=&nbsp;500;</p>
<pre style="FONT-FAMILY: consolas"></pre>
<pre style="FONT-FAMILY: consolas">and when we do some operation like</pre>
<pre style="FONT-FAMILY: consolas"><pre style="FONT-FAMILY: consolas"><span style="COLOR: blue">for</span>&nbsp;(<span style="COLOR: blue">int</span>&nbsp;iCount&nbsp;=&nbsp;0;&nbsp;iCount&nbsp;&lt;&nbsp;iUserCount;&nbsp;iCount++)</pre>
<pre style="FONT-FAMILY: consolas"></pre>
</pre>
<p><br /><br /><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif">Then x will actually get replaced in the compile time and if you see in the IL using assembler&nbsp;</span><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif">it will be&nbsp;</span><br /><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif"></span><span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre"><span style="COLOR: blue">for</span>&nbsp;(<span style="COLOR: blue">int</span>&nbsp;iCount&nbsp;=&nbsp;0;&nbsp;iCount&nbsp;&lt;&nbsp;500 ;&nbsp;iCount++)</span></p>
<pre style="FONT-FAMILY: consolas"></pre>
<p><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif"><strong><span style="text-decoration: underline;">Run Time constants</span></strong></span></p>
<p><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif">When we use "readonly", it will not put the actual value instead of reference. Thats why it is slower than Compile time constants. But there is an advantage.</span><br /><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif"><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif"><span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre"><span style="COLOR: blue">public readonly </span><span style="COLOR: blue">int</span>&nbsp;iUserCount&nbsp;</span></span><br /></span><br /><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif">1) With Const we can only declare primitive types and string. But with readonly we can declare all the types.</span><br /><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif">2) Runtime will be resolved at the runtime</span><br /><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif"><br /></span><br /><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif">Why we need very cautious about "const".</span><br /><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif"><br /></span><br /><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif">We should be very cautious about "const" when&nbsp;maintenance&nbsp;come into picture. The reason is, assume you have an assembly "A" where you have declared the</span><br /><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif"><span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre"><span style="COLOR: blue">public const</span>&nbsp;<span style="COLOR: blue">int</span>&nbsp;iUserCount&nbsp;=&nbsp;500;</span>&nbsp;</span><br /><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif"><br /></span><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif">And in the Assembly "B" you are using the iUserCount in&nbsp;</span></p>
<div style="TEXT-ALIGN: left"><span class="Apple-style-span" style="FONT-FAMILY: Verdana, sans-serif"></span>&nbsp;<span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre"><span style="COLOR: blue">for</span>&nbsp;(<span style="COLOR: blue">int</span>&nbsp;iCount&nbsp;=&nbsp;0;&nbsp;iCount&nbsp;&lt;&nbsp;iUserCount;&nbsp;iCount++).&nbsp;</span></div>
<div style="TEXT-ALIGN: left"><span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre"></span>&nbsp;</div>
<div style="TEXT-ALIGN: left"><span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre">When compiling both, Assembly "B" will have the statement as&nbsp;</span></div>
<div style="TEXT-ALIGN: left"><span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre"></span>&nbsp;</div>
<div style="TEXT-ALIGN: left"><span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre"></span><span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre"><span style="COLOR: blue">for</span>&nbsp;(<span style="COLOR: blue">int</span>&nbsp;iCount&nbsp;=&nbsp;0;&nbsp;iCount&nbsp;&lt;&nbsp;500;&nbsp;iCount++)</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre">Later when you modify the iCount value as 1500 in assembly "A",&nbsp;</span><br /><span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre">then you have to recompile the assembly "B" also.&nbsp;</span><br /><span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre">until unless it will have the same&nbsp;</span></p>
<p>&nbsp;<span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre"><span style="COLOR: blue">for</span>&nbsp;(<span style="COLOR: blue">int</span>&nbsp;iCount&nbsp;=&nbsp;0;&nbsp;iCount&nbsp;&lt;&nbsp;500 ;&nbsp;iCount++)&nbsp;</span></p>
<p><span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre"></span><span style="font-family: Consolas;"></span></p>
<p><span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre">and produce wrong result. So maintenance become nightmare.&nbsp;</span><br /><span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre">So prefer readonly then const.</span><br /><span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre"><br /></span><span class="Apple-style-span" style="FONT-FAMILY: consolas; WHITE-SPACE: pre"><strong>Happy Coding</strong></span></p>]]></content:encoded>
    </item>
    <item>
      <title>Recycle IIS Application Pool': 0x80070005 Access denied - Deploying sharepoint solution - IIS Restart issue</title>
      <link>https://docs.microsoft.com/archive/blogs/suresh/recycle-iis-application-pool-0x80070005-access-denied-deploying-sharepoint-solution-iis-restart-issue</link>
      <pubDate>Sat, 01 Jan 2011 09:52:18 GMT</pubDate>
      <dc:creator><![CDATA[Suresh Meenakshisundaram]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/suresh/2011/01/01/recycle-iis-application-pool-0x80070005-access-denied-deploying-sharepoint-solution-iis-restart-issue/</guid>
      <description><![CDATA[IIS Restart Issue "Access denied"Quite often the developer will face a below issue while...]]></description>
      <content:encoded><![CDATA[<div class="post-header">
<div class="post-header-line-1"></div>
</div>
<div class="post-body entry-content"><span class="Apple-style-span" style="font-family: Verdana, sans-serif;">IIS Restart Issue "<span class="Apple-style-span" style="font-family: 'Times New Roman';"><b><span class="Apple-style-span" style="font-family: Verdana, sans-serif;">Access denied"</span></b></span></span><br /><br /><span class="Apple-style-span" style="font-family: Verdana, sans-serif;">Quite often the developer will face a below issue while deploying the (WSP) solution in VS2010 running on Windows 2008. Especially if you have not logged in as administrator.</span><br /><span class="Apple-style-span" style="font-family: Verdana, sans-serif;"><br /></span><br /><span style="background-color: #ffff00;"><b><span class="Apple-style-span" style="font-family: Verdana, sans-serif;">'Recycle IIS Application Pool': <nativehr />0x80070005 <nativehr /><nativestack></nativestack><nativestack></nativestack>Access denied</span></b><br /></span><b><br /></b><br />The root cause of the issue is<br /></div>
<div class="post-body entry-content"><ol>
<li>You don't have IIS restart privilege on windows OS</li>
<li>Even if you have it, you have not added your login account in to SharePoint sitecollection administrator. </li>
</ol>
<div><b>To solve the issue</b></div>
<div>To see whether you have privilege or not, you can open a command prompt and type "IISReset".&nbsp;</div>
<div>If you able to restart, then it will restart successfully otherwise it will deny it. &nbsp;The reason is,&nbsp;Though you are in administrators group, windows 2008 will not run on the administrator privilege. Every time when you do an operation like IIS restart or Installation, it will prompt for UAC (User Account Control). You should accept the&nbsp;dialog&nbsp;box and elevate the privilege to run the operation.&nbsp;</div>
<br />Or you can right click the application whatever you want to run and click the menu option "Run as Administrator" which will solve the issue.<br />If you want to avoid UAC and directly run through you admin account then, go to Control panel -&gt; Manage account -&gt; Hide UAC<br /><b><br /></b><br />Second if you have all the privilege and still you are getting error in VS2010 as<b> "'Recycle IIS Application Pool': <nativehr />0x80070005<nativehr /><nativestack></nativestack><nativestack></nativestack>Access denied, </b>then you have to add your account in to site collection admin.<br />1) You can do this by going to sharepoint administration page.<br />2) Navigate to the site collection administration option<br />3) Add your name into site collection administrator as a second owner. SharePoint will allow a second owner for site colleciton<br /><br />After adding it , now you can deploy the solution through VS 2010.<br /><b><br /></b><br /><b>Happy coding.</b><br /></div>]]></content:encoded>
    </item>
    <item>
      <title>Could not access the Search administration database COMException (0xC0041236)</title>
      <link>https://docs.microsoft.com/archive/blogs/suresh/could-not-access-the-search-administration-database-comexception-0xc0041236</link>
      <pubDate>Fri, 24 Dec 2010 04:16:00 GMT</pubDate>
      <dc:creator><![CDATA[Suresh Meenakshisundaram]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/suresh/2010/12/24/could-not-access-the-search-administration-database-comexception-0xc0041236/</guid>
      <description><![CDATA[Could not access the Search administration database. A generic error occurred while trying to access...]]></description>
      <content:encoded><![CDATA[<h3 class="post-title entry-title">Could not access the Search administration database. A generic error occurred while trying to access the database to obtain the schema version info. </h3>
<div class="post-header">
<div class="post-header-line-1"></div>
</div>
<div class="post-body entry-content">
<div><span class="Apple-style-span" style="font-family: Verdana, sans-serif;">While installing SP2010 on Windows7 for development, you might face this error "Could not access the Search administration database"</span><br /><br /><span class="Apple-style-span" style="font-family: Verdana, sans-serif;"><span style="background-color: #ffff00;">Exception: System.Runtime.InteropServices.COMException (0xC0041236): Could not access the Search administration database. A generic error occurred while trying to access the database to obtain the schema version info.</span>&nbsp;&nbsp;</span><br /></div>
<div><span style="font-size: medium;"><span class="Apple-style-span" style="font-family: Verdana, sans-serif;"><span class="Apple-style-span">Resolution:</span></span><br /></span><span class="Apple-style-span" style="font-family: Verdana, sans-serif;"><br /></span><span class="Apple-style-span" style="font-family: Verdana, sans-serif;">Check your SQL Server Client10.0 configuration settings, by going to&nbsp;Start Menu -&gt; SQL Server 2008 R2 -&gt; Configuration Tools -&gt; SQL Server Configuration Manager.</span><br /><br /><span class="Apple-style-span" style="font-family: Verdana, sans-serif;">And check whether Share Memory option is enabled under "Client Protocols". It should be enabled.</span></div>
<div><span class="Apple-style-span" style="font-family: Verdana, sans-serif;"></span><br /><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/20/8053.SQLServerClient.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-42-20/8053.SQLServerClient.jpg" border="0" /></div>
<div></div>
<div><span class="Apple-style-span" style="font-family: Verdana, sans-serif;">Run again the </span><b><span class="Apple-style-span" style="font-family: Verdana, sans-serif;">SharePoint 2010 Products Configuration Wizard</span></b></div>
<b><span class="Apple-style-span" style="font-family: Verdana, sans-serif;"></span></b></div>
<p><b><span class="Apple-style-span" style="font-family: Verdana, sans-serif;">Happy Coding</span></b></p>
<p><b><span class="Apple-style-span" style="font-family: Verdana, sans-serif;"></span></b></p>
<div class="post-body entry-content"><br /></div>
<div class="post-body entry-content"></div>]]></content:encoded>
    </item>
  </channel>
</rss>