<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.dotnetmafia.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>Corey Roth [MVP] : SPC09</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx</link><description>Tags: SPC09</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Get to know the Refinement Web Part in SharePoint 2010 Enterprise Search</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/03/15/get-to-know-the-refinement-web-part-in-sharepoint-2010-enterprise-search.aspx</link><pubDate>Mon, 15 Mar 2010 19:22:57 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:2962</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>36</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=2962</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/03/15/get-to-know-the-refinement-web-part-in-sharepoint-2010-enterprise-search.aspx#comments</comments><description>&lt;p&gt;In MOSS 2007, people often extending the search results experience by using the &lt;a href="http://facetedsearch.codeplex.com/"&gt;Faceted Search Web Parts&lt;/a&gt;.&amp;#160; People really liked these so it looks like Microsoft decided to implement their own version called the RefinementWebPart (also known as the Refinement Panel).&amp;#160; If you are familiar with the Faceted Search Web Parts at all, you will notice there are a lot of similarities in the way things are implemented.&amp;#160; If you’re not familiar with what I’m talking about, it’s this web part that allows users to drill down into a set of search results based upon managed properties and other criteria.&amp;#160; Let’s take a look at a quick example.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/RefinementDefault_5427EFF4.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="RefinementDefault" border="0" alt="RefinementDefault" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/RefinementDefault_thumb_0B8E0123.png" width="491" height="408" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;On the left there, you will see a set of refinements that we get out of the box.&amp;#160; I didn’t have to do anything to configure these at all.&amp;#160; There are a number of refinements built in including file type, site, author, modified date, and taxonomy.&amp;#160; You can also easily create your own based on managed property which we will see here shortly.&amp;#160; &lt;/p&gt;  &lt;p&gt;Let’s take a look at some of the options on this web part.&amp;#160; If we edit the page and then edit the web part, we will be able to see the options.&amp;#160; If you’re on a small screen (or a small window in the case of a&amp;#160; VM), you will have to scroll right to see the web part properties.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/RefinementWebPartProperties1_58BDFAAE.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="RefinementWebPartProperties1" border="0" alt="RefinementWebPartProperties1" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/RefinementWebPartProperties1_thumb_3F55F774.png" width="168" height="313" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Since this is a search web part, you will see the familiar Cross-Web Part query ID.&amp;#160; This should be synced up to whatever else you are using on the page.&amp;#160; Usually it is set to &lt;em&gt;User query&lt;/em&gt;.&amp;#160; The next section is where we can configure the refinement.&amp;#160; Make note of the &lt;em&gt;Use Default Configuration&lt;/em&gt; checkbox.&amp;#160; If you don’t uncheck this, anything you customize will not be saved.&amp;#160; Each thing that you can filter on is called a category by the RefinementWebPart.&amp;#160; The Filter Category Definition property is an XML field where each category is specified.&amp;#160; We’ll also look at that later in the post.&amp;#160; Other properties to note here.&amp;#160; The Accuracy Index is the number of results it looks at to determine things to refine.&amp;#160; I assume this it mainly there to keep things performing well.&amp;#160; What this does mean is that if there is something unique to refine on but it doesn’t occur until result number 51, then it will not be included.&amp;#160; You can also configure how many categories to display. This is set to 6 by default.&amp;#160; The last thing I will point out is that you can configure how the web part displays its information using XSLT (not shown in the screenshot above).&lt;/p&gt;  &lt;p&gt;Now let’s look at how we can add our own managed property to the category list.&amp;#160; You should of course confirm the managed property works and that you can query on it first (do a full crawl if necessary).&amp;#160; We then, just need to take a look at the XML for the Filter Category Definition.&lt;/p&gt;  &lt;div style="font-family:consolas;background:black;color:white;font-size:13pt;font-weight:bold;"&gt;   &lt;p style="margin:0px;"&gt;&amp;lt;?&lt;span style="color:#cc7832;"&gt;xml&lt;/span&gt; &lt;span style="color:silver;"&gt;version&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;1.0&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;encoding&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;utf-8&lt;/span&gt;&amp;quot;?&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;lt;&lt;span style="color:#cc7832;"&gt;FilterCategories&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Category&lt;/span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Title&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Result Type&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Description&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;The file extension of the item&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Type&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Microsoft.Office.Server.Search.WebControls.ManagedPropertyFilterGenerator&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MetadataThreshold&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;5&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;NumberOfFiltersToDisplay&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;4&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MaxNumberOfFilters&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;0&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortBy&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Frequency&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortDirection&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Descending&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortByForMoreFilters&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Name&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortDirectionForMoreFilters&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Ascending&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;ShowMoreLink&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;True&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MappedProperty&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;FileExtension&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MoreLinkText&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;show more&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;LessLinkText&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;show fewer&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilters&lt;/span&gt; &lt;span style="color:silver;"&gt;MappingType&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;ValueMapping&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;DataType&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;String&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;ValueReference&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Absolute&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;ShowAllInMore&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;False&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Adobe PDF&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;pdf&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Email&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;eml&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;msg&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;exch&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Excel&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;odc&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;ods&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;xls&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;xlsb&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;xlsm&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;xlsx&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Image&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;tif&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;tiff&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Lotus Notes&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;nsf&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;One Note&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;one&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;PowerPoint&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;odp&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;ppt&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;pptm&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;pptx&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Publisher&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;pub&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Text&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;odt&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;txt&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;url&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;csv&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Visio&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;vdw&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;vdx&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;vsd&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;vss&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;vst&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;vsx&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;vtx&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Webpage&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;ascx&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;asp&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;aspx&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;htm&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;html&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;jhtml&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;js&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;mht&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;mhtml&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;mspx&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;php&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;XML&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;xml&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Word&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;doc&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;docm&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;docx&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;dot&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;nws&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Zip&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;zip&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilters&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;Category&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Category&lt;/span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Title&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Site&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Description&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Which site this document is from&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Type&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Microsoft.Office.Server.Search.WebControls.ManagedPropertyFilterGenerator&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MetadataThreshold&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;5&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;NumberOfFiltersToDisplay&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;4&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MaxNumberOfFilters&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;20&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortBy&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Frequency&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortByForMoreFilters&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Name&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortDirection&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Descending&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortDirectionForMoreFilters&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Ascending&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;ShowMoreLink&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;True&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MappedProperty&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;SiteName&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MoreLinkText&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;show more&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;LessLinkText&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;show fewer&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Category&lt;/span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Title&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Author&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Description&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Use this filter to restrict results authored by a specific author&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Type&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Microsoft.Office.Server.Search.WebControls.ManagedPropertyFilterGenerator&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MetadataThreshold&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;5&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;NumberOfFiltersToDisplay&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;4&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MaxNumberOfFilters&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;20&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortBy&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Frequency&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortByForMoreFilters&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Name&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortDirection&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Descending&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortDirectionForMoreFilters&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Ascending&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;ShowMoreLink&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;True&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MappedProperty&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Author&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MoreLinkText&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;show more&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;LessLinkText&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;show fewer&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Category&lt;/span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Title&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Modified Date&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Description&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;When the item was last updated&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Type&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Microsoft.Office.Server.Search.WebControls.ManagedPropertyFilterGenerator&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MetadataThreshold&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;5&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;NumberOfFiltersToDisplay&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;6&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MaxNumberOfFilters&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;0&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortBy&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Custom&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;ShowMoreLink&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;True&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MappedProperty&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Write&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MoreLinkText&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;show more&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;LessLinkText&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;show fewer&lt;/span&gt;&amp;quot; &amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilters&lt;/span&gt; &lt;span style="color:silver;"&gt;MappingType&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;RangeMapping&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;DataType&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Date&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;ValueReference&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Relative&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;ShowAllInMore&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;False&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Past 24 Hours&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;-1..&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Past Week&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;-7..&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Past Month&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;-30..&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Past Six Months&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;-183..&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Past Year&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;-365..&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt; &lt;span style="color:silver;"&gt;CustomValue&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Earlier&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;..-365&amp;lt;/&lt;span style="color:#cc7832;"&gt;OriginalValue&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilter&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;CustomFilters&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;Category&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Category&lt;/span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Title&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Managed Metadata Columns&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Description&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Managed metadata of the documents&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Type&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Microsoft.Office.Server.Search.WebControls.TaxonomyFilterGenerator&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MetadataThreshold&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;3&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;NumberOfFiltersToDisplay&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;3&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MaxNumberOfFilters&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;20&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;ShowMoreLink&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;True&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MappedProperty&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;ows_MetadataFacetInfo&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MoreLinkText&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;show more&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;LessLinkText&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;show fewer&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Category&lt;/span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Title&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Tags&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Description&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;All managed metadata of the documents and social tags&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Type&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Microsoft.Office.Server.Search.WebControls.TaxonomyFilterGenerator&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MetadataThreshold&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;3&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;NumberOfFiltersToDisplay&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;3&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MaxNumberOfFilters&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;20&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;ShowMoreLink&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;True&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MappedProperty&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;ows_MetadataFacetInfo,popularsocialtags&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MoreLinkText&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;show more&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;LessLinkText&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;show fewer&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;lt;/&lt;span style="color:#cc7832;"&gt;FilterCategories&lt;/span&gt;&amp;gt;&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I went ahead and posted the entire XML because it’s worth seeing.&amp;#160; For the most part the schema is pretty easy to follow.&amp;#160; The &lt;em&gt;Category&lt;/em&gt; element defines each thing to refine and then it has some basic configuration items such as the number of filters to display.&amp;#160; You specify the name of the managed property to use in the &lt;em&gt;MappedProperty&lt;/em&gt; attribute.&amp;#160; The &lt;em&gt;MetadataThreshold &lt;/em&gt;property is the number of results that have to be returned with that property in order to do refinement.&amp;#160; If you are familiar with the schema used by Faceted Search, you will see a similar concept with the &lt;em&gt;CustomFilter&lt;/em&gt; elements.&amp;#160; These allow you map a value into something more readable.&amp;#160; For example instead of display xlsx, it displays Excel.&amp;#160; &lt;/p&gt;  &lt;p&gt;One more thing I will point out is that the Category element has a &lt;em&gt;Type&lt;/em&gt; attribute.&amp;#160; So far I have seen &lt;em&gt;ManagedPropertyFilterGenerator&lt;/em&gt; and &lt;em&gt;TaxonomyFilterGenerator.&lt;/em&gt;&amp;#160; These both inherit from &lt;em&gt;RefinementFilterGenerator&lt;/em&gt;.&amp;#160; None of its sealed surprisingly which means you could actually write your own custom filter for the refinement web part.&amp;#160; That’s pretty cool.&amp;#160; I’m not sure why I would need to yet, but you never know what you might want to be able to customize.&lt;/p&gt;  &lt;p&gt;I want to add my own managed property, so I just add a category to the end like this.&lt;/p&gt;  &lt;div style="font-family:consolas;background:black;color:white;font-size:13pt;font-weight:bold;"&gt;   &lt;p style="margin:0px;"&gt;&amp;lt;&lt;span style="color:#cc7832;"&gt;Category&lt;/span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Title&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Color&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Description&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Use this filter to restrict results by color&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Type&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Microsoft.Office.Server.Search.WebControls.ManagedPropertyFilterGenerator&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MetadataThreshold&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;5&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;NumberOfFiltersToDisplay&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;4&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MaxNumberOfFilters&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;20&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortBy&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Frequency&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortByForMoreFilters&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Name&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortDirection&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Descending&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SortDirectionForMoreFilters&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Ascending&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;ShowMoreLink&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;True&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MappedProperty&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Color&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;MoreLinkText&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;show more&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;LessLinkText&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;show fewer&lt;/span&gt;&amp;quot;&amp;#160;&amp;#160;&amp;#160; /&amp;gt;&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;All I did was copy the category that was used for author and it works great.&amp;#160; You can tweak the individual settings if you like.&amp;#160; Here is what my custom managed property looks like.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/RefinementColor_49A71BD4.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="RefinementColor" border="0" alt="RefinementColor" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/RefinementColor_thumb_7E47780F.png" width="172" height="140" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;How does this all work though.&amp;#160; Well it’s pretty simple.&amp;#160; Just copy any link that the web part displays and we’ll see that it makes use of the new &lt;em&gt;r &lt;/em&gt;query string property.&amp;#160; It will be URL encoded but you can easily decode it and see the magic.&amp;#160; In this case if I want to view &lt;em&gt;Red&lt;/em&gt; products, the query string has a r parameter of the following.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;r=color=&amp;quot;Red&amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;If I wanted to view files modified in the last 24 hours, it uses the new &amp;gt;= operator.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;r=write&amp;gt;=&amp;quot;3/14/2010”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Don’t you just love that you can easily query against dates now using the keyword query syntax?&amp;#160; I think the &lt;em&gt;r&lt;/em&gt; keyword is very interesting and I think it opens the door for some very interesting customizations of the search results page in the future.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=2962" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Enterprise+Search/default.aspx">Enterprise Search</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category></item><item><title>Intro to SharePoint 2010 Development: How to Build and Deploy a Web Part</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/02/15/intro-to-sharepoint-2010-development-how-to-build-and-deploy-a-web-part.aspx</link><pubDate>Mon, 15 Feb 2010 20:17:41 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:2748</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>36</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=2748</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/02/15/intro-to-sharepoint-2010-development-how-to-build-and-deploy-a-web-part.aspx#comments</comments><description>&lt;p&gt;If you are already familiar with SharePoint 2010, you already know how easy it is to build and deploy a web part now.&amp;#160; However, this post is for those that don’t keep up with SharePoint as some of us do and may not realize how the development experience has improved so much.&amp;#160; My post &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/10/22/intro-to-sharepoint-development-how-to-build-and-deploy-a-web-part.aspx"&gt;How to Build and Deploy a Web Part&lt;/a&gt; is by far the most popular post on DotNetMafia.com.&amp;#160; I wanted to make today’s post just as a point to show you how much less work is involved in deploying a web part.&amp;#160; I am going to group this post into sections in a similar manner as I did the post for the WSS3 post.&lt;/p&gt;  &lt;h5&gt;&lt;/h5&gt;  &lt;h5&gt;Environment&lt;/h5&gt;  &lt;p&gt;There can be entire talks about what the best way to develop is now, but we’ll start with the simplest.&amp;#160; Although you can install SharePoint on Windows 7 and directly develop on it, most people are going to say stick with a virtual machine and run Windows Server 2008 R2.&amp;#160; It’s certainly simpler to get all of the prerequisites installed if you stick with Windows Server.&amp;#160; The benefits to developing directly on a machine with SharePoint on it are so great now that I would recommend against &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/03/05/how-to-remote-debugging-a-web-application.aspx"&gt;remote debugging&lt;/a&gt; (although you still can).&amp;#160; The SharePoint Root (or the 12 hive as you called it) is now the &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/20/sharepoint-2010-12-hive-2-14-hive.aspx"&gt;14 hive&lt;/a&gt; and is located at the predictable path below.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;C:\Program Files\Common Files\microsoft shared\Web Server Extensions\14&lt;/em&gt;&lt;/p&gt;  &lt;h5&gt;Coding the Web Part&lt;/h5&gt;  &lt;p&gt;Here is where things start to change.&amp;#160; Instead of creating a class library and adding references to the SharePoint DLLs, we simply use one of the new included SharePoint project templates as you can see here.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroEmptyProject_43970EE2.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroEmptyProject" border="0" alt="WebPartIntroEmptyProject" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroEmptyProject_thumb_138CBD61.png" width="519" height="369" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Start by using the Empty SharePoint Project template.&amp;#160; Also make sure you have it set to .NET Framework 3.5 as SharePoint does not run under .NET Framework 4.0 (don’t get me started).&amp;#160; You’ll notice you have many different project templates to choose from.&amp;#160; Most of these can also be used once you create an empty project.&amp;#160; On the next dialogue, pick farm solution.&amp;#160; I’ll go into the difference between sandboxed and farm solutions, but more than likely you are going to use farm solutions every time.&amp;#160; You also need to specify the URL to your server.&amp;#160; You can change that if you want but the default value will probably work for you in this case.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroSolutionType_19D393EF.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroSolutionType" border="0" alt="WebPartIntroSolutionType" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroSolutionType_thumb_4B5F0184.png" width="387" height="307" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This gives us a solution that looks like this.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroSolutionExplorer_06B26743.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroSolutionExplorer" border="0" alt="WebPartIntroSolutionExplorer" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroSolutionExplorer_thumb_2661410B.png" width="163" height="156" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now we are ready to build our new web part.&amp;#160; If you bring up the add new item context menu, you will see a number of choices for the types of new SharePoint Project Items (SPIs) that you can create.&amp;#160; We’re going to choose Web Part in this case.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroSPI_6A357562.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroSPI" border="0" alt="WebPartIntroSPI" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroSPI_thumb_28BAC309.png" width="532" height="378" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;What is the &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/20/introducing-the-visual-web-part-in-sharepoint-2010.aspx"&gt;Visual Web Part&lt;/a&gt; you ask?&amp;#160; That’s just a user control which relates directly to my second most popular post on &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/11/18/introduction-to-sharepoint-development-deploy-a-user-control-in-sharepoint.aspx"&gt;How to Deploy a User Control&lt;/a&gt;.&amp;#160; Now we’re finally ready to add some code.&amp;#160; We’re just going to take our code from the WSS3 post and use it here.&lt;/p&gt;  &lt;div style="font-family:consolas;background:black;color:white;font-size:13pt;font-weight:bold;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; System;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; System.ComponentModel;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; System.Runtime.InteropServices;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; System.Web.UI;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; System.Web.UI.WebControls;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; System.Web.UI.WebControls.WebParts;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; Microsoft.SharePoint;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; Microsoft.SharePoint.WebControls;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;namespace&lt;/span&gt; SharePointProject1.TestWebPart&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; [ToolboxItemAttribute(&lt;span style="color:#cc7832;"&gt;false&lt;/span&gt;)]&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#cc7832;"&gt;public&lt;/span&gt; &lt;span style="color:#cc7832;"&gt;class&lt;/span&gt; &lt;span style="color:#ffc66d;"&gt;TestWebPart&lt;/span&gt; : WebPart&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#cc7832;"&gt;public&lt;/span&gt; TestWebPart()&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#cc7832;"&gt;protected&lt;/span&gt; &lt;span style="color:#cc7832;"&gt;override&lt;/span&gt; &lt;span style="color:#cc7832;"&gt;void&lt;/span&gt; CreateChildControls()&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#cc7832;"&gt;base&lt;/span&gt;&lt;span style="font-weight:normal;"&gt;.CreateChildControls();&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Controls.Add(&lt;span style="color:#cc7832;"&gt;new&lt;/span&gt; Label() { Text = &lt;span style="color:#a5c25c;"&gt;&amp;quot;My Test SharePoint 2010 Web Part (Hello World)!&amp;quot;&lt;/span&gt; });&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#cc7832;"&gt;protected&lt;/span&gt; &lt;span style="color:#cc7832;"&gt;override&lt;/span&gt; &lt;span style="color:#cc7832;"&gt;void&lt;/span&gt; RenderContents(HtmlTextWriter writer)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#cc7832;"&gt;base&lt;/span&gt;&lt;span style="font-weight:normal;"&gt;.RenderContents(writer);&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;The only line of code I added here was the line to add the label and set its text.&amp;#160; Everything else came from the template.&lt;/p&gt;  &lt;h5&gt;Describing the Web Part&lt;/h5&gt;  &lt;p&gt;In my WSS3 post, this is where I talked about building a .webpart file.&amp;#160; Well, you don’t need to worry about that any more as Visual Studio creates it for you.&amp;#160; Here is what solution explorer looks like after you add your first web part.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroSolutionExplorer2_43F31C0A.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroSolutionExplorer2" border="0" alt="WebPartIntroSolutionExplorer2" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroSolutionExplorer2_thumb_7C9DC617.png" width="213" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As you can see the .webpart file is already there as well as an elements.xml file for a feature to deploy the web part.&amp;#160; The WSS3 post went on to talk about all of the things you need to know about building a feature.&amp;#160; This is still good stuff to know, but its already taken care of for you.&amp;#160; If you want to edit the basic feature information, just open it up in solution explorer and you get a nice new interface that looks like this.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroFeatureEditor_152D6368.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroFeatureEditor" border="0" alt="WebPartIntroFeatureEditor" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroFeatureEditor_thumb_14C13073.png" width="390" height="227" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I’m not going to waste space showing you the insides of the files it creates for you.&amp;#160; Just know it creates them for you and it saves you a ton of time.&lt;/p&gt;  &lt;h5&gt;Deploying via Solution Package&lt;/h5&gt;  &lt;p&gt;In my WSS3 post, I explained how to create a cab.ddf and manifest.xml file.&amp;#160; Well guest what?&amp;#160; That is taken care of for you now as well.&amp;#160; The Package.package file in the solution explorer provides another nice editor which allows you to choose with files go into the package.&amp;#160; You don’t have to keep track of a thing any more, it just builds the package and takes care of it for you.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroPackageEditor_42425036.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroPackageEditor" border="0" alt="WebPartIntroPackageEditor" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroPackageEditor_thumb_2CE49ACE.png" width="391" height="191" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;At this point, Visual Studio has created the .webpart file, the feature, and the solution package.&amp;#160; However, we still need to deploy it and if we could debug it that would be even cooler right?&amp;#160; Take a look at our new options in the Build menu.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroBuildMenu_4574381E.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroBuildMenu" border="0" alt="WebPartIntroBuildMenu" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroBuildMenu_thumb_59F9879C.png" width="244" height="192" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;p&gt;We can build and rebuild just like any other project, but notice the options for Deploy, Package, and Retract.&amp;#160; Those are all SharePoint functions.&amp;#160; In this case, I want to deploy my solution.&amp;#160; Choosing deploy, we see the following in the output window.&lt;/p&gt;    &lt;p&gt;------ Build started: Project: SharePointProject1, Configuration: Debug Any CPU ------     &lt;br /&gt;&amp;#160; SharePointProject1 -&amp;gt; C:\Code\SharePointProject1\bin\Debug\SharePointProject1.dll      &lt;br /&gt;&amp;#160; Successfully created package at: C:\Code\SharePointProject1\bin\Debug\SharePointProject1.wsp      &lt;br /&gt;------ Deploy started: Project: SharePointProject1, Configuration: Debug Any CPU ------      &lt;br /&gt;Active Deployment Configuration: Default      &lt;br /&gt;Run Pre-Deployment Command:      &lt;br /&gt;&amp;#160; Skipping deployment step because a pre-deployment command is not specified.      &lt;br /&gt;Recycle IIS Application Pool:      &lt;br /&gt;&amp;#160; Recycling IIS application pool &amp;#39;SharePoint - 80&amp;#39;...      &lt;br /&gt;Retract Solution:      &lt;br /&gt;&amp;#160; Skipping package retraction because no matching package on the server was found.      &lt;br /&gt;Add Solution:      &lt;br /&gt;&amp;#160; Adding solution &amp;#39;SharePointProject1.wsp&amp;#39;...      &lt;br /&gt;&amp;#160; Deploying solution &amp;#39;SharePointProject1.wsp&amp;#39;...      &lt;br /&gt;Activate Features:      &lt;br /&gt;&amp;#160; Activating feature &amp;#39;Feature1&amp;#39; ...      &lt;br /&gt;Run Post-Deployment Command:      &lt;br /&gt;&amp;#160; Skipping deployment step because a post-deployment command is not specified.      &lt;br /&gt;========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========      &lt;br /&gt;========== Deploy: 1 succeeded, 0 failed, 0 skipped ==========      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;From inspecting the text of the log, you can see that Visual Studio compiled, created a package, reset my Application Pool, Added the Solution, Deployed the Solution, and activated the feature.&amp;#160; Let’s check SharePoint and see if it’s really there.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroGallery_728924EC.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroGallery" border="0" alt="WebPartIntroGallery" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroGallery_thumb_2B33CEFA.png" width="514" height="23" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Checking the web part gallery, we see our .webpart file.&amp;#160; Let’s add it to a page and see how it looks.&amp;#160; Edit any page and use add a web part and you will see the new interface for choosing a web part.&amp;#160; It puts it in the Custom group by default.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroAddWebPart_5FD42B35.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroAddWebPart" border="0" alt="WebPartIntroAddWebPart" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroAddWebPart_thumb_0A405C53.png" width="553" height="306" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;One you hit and add finish editing, we see the web part working correctly.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroWorking_30A23F9E.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroWorking" border="0" alt="WebPartIntroWorking" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroWorking_thumb_173A3C64.png" width="555" height="211" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;You have to admit this is quite a bit easier than deploying a web part in SharePoint 3.&amp;#160; What if you want to debug though?&amp;#160; No problem.&amp;#160; Just set a breakpoint and choose debug from the build menu like you would any other type of project.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroBreakPointHit_5DB72C6C.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroBreakPointHit" border="0" alt="WebPartIntroBreakPointHit" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroBreakPointHit_thumb_48597704.png" width="563" height="76" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As I mentioned earlier, if you are familiar with SharePoint 2010, this is nothing new to you.&amp;#160; However, my point today is for those who shied away from SharePoint in the past because the development experience was far from optimal.&amp;#160; Try it for yourself and you will see how easy it is to get up and running with your code.&amp;#160; Even with pictures this post is half the size of the WSS3 post.&amp;#160; That’s because it really is just that easy.&amp;#160; I really think Visual Studio 2010 will open the way for a new round of SharePoint developers.&amp;#160; Try it out today.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=2748" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Feature/default.aspx">Feature</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/WebPart/default.aspx">WebPart</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Solution/default.aspx">Solution</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>Enterprise Search Web Parts are still Sealed!  Unseal them! (SP2010)</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/12/09/enterprise-search-web-parts-are-still-sealed-unseal-them-sp2010.aspx</link><pubDate>Wed, 09 Dec 2009 21:44:54 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:1158</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=1158</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/12/09/enterprise-search-web-parts-are-still-sealed-unseal-them-sp2010.aspx#comments</comments><description>&lt;p&gt;I am pretty passionate about Enterprise Search and with MOSS 2007 I saw customers really struggle because wildcard search was not offered out of the box and most of the web parts in Microsoft.Office.Server.Search.WebParts are sealed.&amp;#160; Luckily, the most important one &lt;a href="http://wildcardsearch.codeplex.com/"&gt;CoreResultsWebPart&lt;/a&gt; was in fact not sealed and I was able to hack together a wildcard search solution by inheriting it and using some hacky reflection.&amp;#160; Since SPC09, we’ve been hearing “the search web parts are no longer sealed”, this unfortunately is not true at all.&amp;#160; What they mean to say is that they have added a couple of override to CoreResultsWebPart that allow you to affect the query going in and the results going out.&amp;#160; This is a nice win, but there is still more desired.&lt;/p&gt;  &lt;p&gt;It took me asking a lot of people at SPC09 to finally get a straight answer.&amp;#160; It was in the session, Customizing Search in SharePoint: Building Great Sites with Search, where I asked Harneet Sidhana at the microphone to get the story on why most web parts are still sealed.&amp;#160; The answer? The remaining web parts are currently still sealed by design.&amp;#160; The audience “booed”.&amp;#160; Seriously, they did.&amp;#160; I then asked to have the web parts unsealed and the audience applauded.&lt;/p&gt;  &lt;p&gt;Let’s take a look at the web parts between MOSS 2007 and SP2010 Beta 2 and see what is sealed.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Web Part&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;         &lt;p style="margin-right:0px;" dir="ltr"&gt;&lt;strong&gt;MOSS 2007&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;&lt;strong&gt;SP2010 Beta 2&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;AdvancedSearchBox&lt;/td&gt;        &lt;td&gt;Sealed&lt;/td&gt;        &lt;td&gt;Sealed&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;CoreResultsWebPart&lt;/td&gt;        &lt;td&gt;Unsealed&lt;/td&gt;        &lt;td&gt;Unsealed&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FederatedResultsWebPart&lt;/td&gt;        &lt;td&gt;Unsealed&lt;/td&gt;        &lt;td&gt;Unsealed&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;HighConfidenceWebPart&lt;/td&gt;        &lt;td&gt;Sealed&lt;/td&gt;        &lt;td&gt;Sealed&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;PeopleCoreResultsWebPart&lt;/td&gt;        &lt;td&gt;Sealed&lt;/td&gt;        &lt;td&gt;Sealed&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;PeopleRefinementWebPart&lt;/td&gt;        &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;Unsealed&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;QuerySuggestionsWebPart&lt;/td&gt;        &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;Unsealed&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;RefinementWebPart&lt;/td&gt;        &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;Unsealed&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SearchPagingWebPart&lt;/td&gt;        &lt;td&gt;Sealed&lt;/td&gt;        &lt;td&gt;Sealed&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SearchStatsWebPart&lt;/td&gt;        &lt;td&gt;Sealed&lt;/td&gt;        &lt;td&gt;Sealed&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SearchSummaryWebPart&lt;/td&gt;        &lt;td&gt;Sealed&lt;/td&gt;        &lt;td&gt;         &lt;p&gt;Sealed&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;TopFederatedResultsWebPart&lt;/td&gt;        &lt;td&gt;Unsealed&lt;/td&gt;        &lt;td&gt;Unsealed&lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;Looking at this list, I don’t really see anything that has changed from sealed to unsealed. Do you?&amp;#160; I will point out that CoreResultsWebPart has always been unsealed, but this is because PeopleCoreResultsWebPart inherits from it.&amp;#160; Did you notice that anything built since the Infrastructure Update of MOSS 2007 has been unsealed?&lt;/p&gt;  &lt;p&gt;Now I admit, the main reason we wanted to inherit from these controls was to do wildcard search.&amp;#160; The Enterprise Search did a great job with the new &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/27/keyword-syntax-additions-in-sp2010-enterprise-search-yes-even-wildcards.aspx"&gt;keyword query&lt;/a&gt; improvements and this will be a non-issue now.&amp;#160; However, can they really say we will &lt;em&gt;never&lt;/em&gt; want to extend their web parts?&amp;#160; Are they going to say that they have thought of every possible thing that the web part might possibly do and no one will ever extend it?&amp;#160; As a programmer, I don’t think I would ever have the guts to make a claim like that.&amp;#160; I know these web parts will require customization in the future.&amp;#160; Give us the ability to do it.&lt;/p&gt;  &lt;p&gt;I know you might be thinking, “We just wanted to inherit from these web parts because we wanted wildcard search.&amp;#160; We have that now.”&amp;#160; This is true and I am very thankful.&amp;#160; This eliminates the need a lot, but more than likely we might need to make a change to something else though.&amp;#160; Want to customize people search?&amp;#160; What about best bets or the advanced search box?&amp;#160; Most web parts in SharePoint are unsealed, so why are the search web parts sealed?&lt;/p&gt;  &lt;p&gt;The PeopleCoreResultsWebPart still being sealed is a huge deal.&amp;#160; For one, it doesn’t appear to support the new QueryManager class which means you can’t customize how it does queries or builds the results.&amp;#160; I need to confirm this though.&amp;#160; Take a look at the forums.&amp;#160; They speak for themselves.&amp;#160; Fifty results for the term &lt;a href="http://social.MSDN.microsoft.com/Search/en-US?query=wildcard&amp;amp;rn=SharePoint%20-%20Search%20Forum&amp;amp;rq=meta:Search.MSForums.ForumID(18fa92a1-5b8f-4979-b2d9-edb3f9ee3dbf)%20site:microsoft.com&amp;amp;ac=8"&gt;wildcard&lt;/a&gt; in the Search forum.&amp;#160; I am passionate about this topic because I have seen the needs of my customers.&amp;#160; The fact that I might be stuck with another set of sealed web parts for another 3+ years is absolutely scary to me.&lt;/p&gt;  &lt;p&gt;So what can we do?&amp;#160; Please post a reply in the forum or leave a comment on the blog.&amp;#160; We need to let them know our concerns while there is still time to make a change.&amp;#160; Please, unseal the web parts.&amp;#160; This post is cross posted to the SharePoint 2010 &lt;a href="http://social.msdn.microsoft.com:80/Forums/en-US/sharepoint2010general/thread/a4473d25-d1af-4839-85d6-f744bff9c4c2"&gt;forums&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=1158" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Enterprise+Search/default.aspx">Enterprise Search</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>Getting by with bare minimum hardware in a SharePoint 2010 development environment (sp2010)</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/12/07/getting-by-with-bare-minimum-hardware-in-a-sharepoint-2010-development-environment-sp2010.aspx</link><pubDate>Mon, 07 Dec 2009 15:22:36 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:1154</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=1154</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/12/07/getting-by-with-bare-minimum-hardware-in-a-sharepoint-2010-development-environment-sp2010.aspx#comments</comments><description>&lt;p&gt;Let’s face it.&amp;#160; A lot of companies would rather you be unproductive and waste hours a day rather than spend a couple of hundred bucks on some more memory.&amp;#160; I don’t get it, but that’s the world so many of us are forced to live in.&amp;#160; You have to beg and plead, write justification, get approval from a handful of VPs only to get some guy at the help desk to tell you that you don’t need any additional hardware.&amp;#160; If that’s your case, I sympathize with you as I have been there plenty of times.&amp;#160; When people starting seeing the hardware recommendations for SharePoint 2010, many were in shock.&amp;#160; Most people were recommending 4 GB to 8 GB of memory just for the virtual machine itself.&amp;#160; They are significantly higher than what you could get away with in MOSS 2007.&amp;#160; After all with MOSS, I could &lt;em&gt;get by&lt;/em&gt; with only 1 GB of memory allocated to a virtual machine.&amp;#160; It wasn’t ideal, but it did work ok.&amp;#160; If I had 2 GB of memory, things usually ran pretty smoothly.&amp;#160; Maybe you will disagree, but that was the case for me at least.&amp;#160; Keep in mind that we’re not talking about production here.&amp;#160; We’re talking about a development virtual machine.&lt;/p&gt;  &lt;p&gt;Today, I will focus primarily on memory since this is where the bottleneck is going to be.&amp;#160; When it comes to developing, I have found that any modern CPU seems to do fine when it comes to performance.&amp;#160; A faster hard disk is always nice, but really, it’s always lack of memory that causes issues.&amp;#160; To date, I have set up three virtual machines on Beta 2: one with SharePoint Foundation, one with SharePoint Server 2010, and one with SharePoint Server 2010 with FAST Search installed.&amp;#160; The memory requirements I have seen on these has varied vastly (as you would expect).&amp;#160; For today’s post, I am considering a complete self-contained SharePoint 2010 environment on a virtual machine that includes Windows Server 2008 R2, Active Directory, and SQL Server 2008.&amp;#160; Let’s start by looking at a summary of my findings.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Configuration&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;&lt;strong&gt;SharePoint Foundation&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;&lt;strong&gt;SharePoint Server 2010&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;&lt;strong&gt;SharePoint Server 2010 with FAST&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Bare Minimum&lt;/td&gt;        &lt;td&gt;2000 MB&lt;/td&gt;        &lt;td&gt;3000 MB&lt;/td&gt;        &lt;td&gt;4100 MB*&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Visual Studio Running&lt;/td&gt;        &lt;td&gt;2300 MB&lt;/td&gt;        &lt;td&gt;3300 MB&lt;/td&gt;        &lt;td&gt;4400 MB&lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;Now, I’ll say these numbers are completely unofficial.&amp;#160; You may have different results.&amp;#160; If you have results you would like to share, please leave a comment.&amp;#160; I quoted numbers for Visual Studio separately because you may not have Visual Studio running or you might be an admin or something.&amp;#160; Obviously, the memory requirements of Visual Studio vary vastly at times depending on what you are doing, but this is just a guideline.&amp;#160; These numbers will also vary depending on what services you have running in SharePoint.&amp;#160; In this case, I have every service I can see to start running.&lt;/p&gt;  &lt;p&gt;As you can see installing FAST adds considerable demand to your memory requirements.&amp;#160; The reason I add the asterisk here is that I think it will probably consume more memory if I make it available.&lt;/p&gt;  &lt;p&gt;So what you can take from this is if you just want a quick development environment and you don’t need the full SharePoint Server, you can use SharePoint Foundation to do some development work with relatively “low” memory requirements.&amp;#160; You can further use even less memory by using an external SQL Server.&amp;#160; On most of my installations, I have found SQL Server using 500 MB – 600 MB of memory.&amp;#160; By moving that off to another server, you can really trim down your memory requirements.&amp;#160; If you don’t need a domain controller on your server, you can shave a bit more off too (but don’t expect to gain a lot here).&lt;/p&gt;  &lt;p&gt;Now, the last thing I will point out is this is what you can &lt;em&gt;get by&lt;/em&gt; with.&amp;#160; It’s not necessarily ideal.&amp;#160; You may find that your hard drive is churning a lot as it is probably doing a lot of swapping.&amp;#160; You may find yourself waiting a lot just for the SharePoint site to spin up or to compile and deploy something.&amp;#160; It’s better than nothing though.&amp;#160; Again, these are just some of the numbers I was seeing on my installations.&amp;#160; If you have any numbers you would like to share, please leave a comment.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=1154" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Virtual+Machine/default.aspx">Virtual Machine</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category></item><item><title>Turning on the Developer Dashboard in SharePoint 2010</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/30/turning-on-the-developer-dashboard-in-sharepoint-2010.aspx</link><pubDate>Fri, 30 Oct 2009 18:42:01 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:1043</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=1043</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/30/turning-on-the-developer-dashboard-in-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;The developer dashboard is a great new feature that developers can use to aid them in tuning performance on a page.&amp;#160; This new functionality adds information to the bottom of any page in SharePoint that displays performance information and what SQL queries were executed to display the page.&amp;#160; To my knowledge, there is currently no way in the UI to turn this on, so you can do this with a quick x64 console application.&amp;#160; This is soon to become a quite popular code snippet I am sure.&lt;/p&gt;  &lt;div style="font-family:consolas;background:black;color:white;font-size:13pt;font-weight:bold;"&gt;   &lt;p style="margin:0px;"&gt;SPPerformanceMonitor performanceMonitor = SPFarm.Local.PerformanceMonitor;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;performanceMonitor.DeveloperDashboardLevel = SPPerformanceMonitoringLevel.On;&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;All you need is those two lines of code.&amp;#160; When you are done with it, simply set the monitoring level to Off.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=1043" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>Will Virtualization die in SharePoint 2010 development?</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/30/will-virtualization-die-in-sharepoint-2010-development.aspx</link><pubDate>Fri, 30 Oct 2009 17:45:00 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:1042</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>13</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=1042</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/30/will-virtualization-die-in-sharepoint-2010-development.aspx#comments</comments><description>&lt;p&gt;This is already starting to be an interesting topic, so I wanted to post about it.&amp;#160; We’ll start with the facts.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;SharePoint 2010 only runs on 64 bit operating systems &lt;/li&gt;    &lt;li&gt;In the past, SharePoint developers have pretty much always had to develop in a virtual environment &lt;/li&gt;    &lt;li&gt;Windows Virtual PC does not support 64 bit guests but other non-Microsoft virtualization technologies do &lt;/li&gt;    &lt;li&gt;SharePoint 2010 can run on Windows 7 / Vista x64 &lt;/li&gt;    &lt;li&gt;Most developers do not want to run a server OS on their development machine &lt;/li&gt;    &lt;li&gt;Some developers may still be running 32 bit operating systems (ack!) &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;So what does this mean?&amp;#160; For some reason, Microsoft has not given us desktop virtualization software that can run 64 bit guests (even though Hyper-V can).&amp;#160; So I think this left Microsoft a choice.&amp;#160; Get 64 bit guests added to Windows Virtual PC, recommend developers use a non-Microsoft virtualization technology, or get SharePoint working on Windows 7 and Vista.&amp;#160; Now, adding 64 bit support I am sure is quite an undertaking and they definitely don’t want to recommend a competitor’s product.&amp;#160; This means that making SharePoint work directly on the developer’s machine the obvious choice.&amp;#160; After all it runs on top of IIS and IIS is pretty similar between Windows Server 2008, Windows 7, and Windows Vista (yes, I do know there are differences).&lt;/p&gt;  &lt;p&gt;Now, I think it will be interesting to see what path developers choose here.&amp;#160; Many developers I am sure probably already were using another virtualization software such as VMWare.&amp;#160; For them, they are pretty much unaffected and will probably continue to developer in their VM.&amp;#160; By now, I think most SharePoint developers have it engrained in them that they must develop on a VM, but maybe they will change their mind.&amp;#160; People are so accustomed to thinking that development must be done in a VM, I hear them asking not when the beta 2 install will be available, but when will the VM be available?&amp;#160; My answer is always well even if you have a VM, you aren’t going to be able to run it unless you are running Hyper-V or it was made with VMware.&lt;/p&gt;  &lt;p&gt;Personally, I think I like the idea of running SharePoint on my laptop.&amp;#160; I lose some flexibility that the VM gives me but I also gain some convenience of not having to maintain multiple versions of Visual Studio and what not.&amp;#160; Will it affect performance of my laptop?&amp;#160; Absolutely, but that just gives me a chance to ask for better hardware. :)&amp;#160; Of course, if you are in a company where you have little control of your hardware, getting upgraded to Windows 7 x64 could be an issue.&lt;/p&gt;  &lt;p&gt;UPDATE: &lt;a href="http://twitter.com/spmcdonough"&gt;@spmcdonough&lt;/a&gt; reminded me in a comment about booting a VHD natively with Windows 7.&amp;#160; This option was actually brought up in the Patterns &amp;amp; Practices talk at SPC.&amp;#160; They of course did not mention any competing virtualization solutions. :)&amp;#160; It certainly is a way to get some good VHD performance by running the operating system natively.&amp;#160; This may be a good option for some people but probably not for me.&amp;#160; I don’t want to have to leave everything behind in my Client OS while I am doing my development.&amp;#160; Sure you could install all the various things that you use from your client environment onto that VHD but then aren’t you just replacing your client OS with a server OS?&amp;#160; It is an interesting option though.&amp;#160; It may not work for me, but it might for some.&amp;#160; Although I have to say I might consider it if I had a second machine available.&lt;/p&gt;  &lt;p&gt;UPDATE (01/04/2010): So Beta 2 has been out for a while and I have actually tried a number of options.&amp;#160; I started out trying VMWare Server running on my Windows 7 laptop.&amp;#160; I was still looking for a free option.&amp;#160; This worked ok, but not great.&amp;#160; Since VMWare Server is designed for servers, it has no issues about taking every available resource on your machine for your VMs whether it needs it or not.&amp;#160; This made going back to the host machine just to check Outlook or visit a web site somewhat painful.&amp;#160; Adding more memory helped, but it still wasn’t ideal.&amp;#160; So I decided to try Sun VirtualBox.&amp;#160; The first thing I liked about it was the fact that I was able to take my VMWare hard disk file and boot it directly with VirtualBox without going through any type of conversion process.&amp;#160; It just worked.&amp;#160; I tried it with several VMs and it really does work great.&amp;#160; The performance of the VM also feels a bit better and my host machine still has plenty of resources left to do whatever I need it to.&amp;#160; If you are looking for a free option and don’t feel like dual booting, I definitely recommend giving VirtualBox a try.&lt;/p&gt;  &lt;p&gt;So what do you think you are going to do?&amp;#160;&amp;#160; Are you going to install it locally on your Windows 7 machine?&amp;#160; Go with VMware?&amp;#160; Install Windows Server 2008 on your laptop maybe?&amp;#160; Quit SharePoint development? :)&amp;#160; There are pros and cons to each approach.&amp;#160; I’d love to hear your plan.&amp;#160; Leave a comment and tell us your plan.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=1042" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Virtual+Machine/default.aspx">Virtual Machine</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>What’s new in Services on Server in SP2010</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/22/what-s-new-in-services-on-server-in-sp2010.aspx</link><pubDate>Thu, 22 Oct 2009 20:00:00 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:1021</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=1021</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/22/what-s-new-in-services-on-server-in-sp2010.aspx#comments</comments><description>&lt;p&gt;Curious to know what the Services on Server page looks like now?&amp;#160; Well, then this is the post for you.&amp;#160; Instead of just having the 6 or so services that you had in MOSS 2007, there are many more services listed on the Services on Server page.&amp;#160; Here is what your list might look like (pending changes of course).&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Access Database Service &lt;/li&gt;    &lt;li&gt;Application Registry Service &lt;/li&gt;    &lt;li&gt;Business Data Connectivity &lt;/li&gt;    &lt;li&gt;Central Administration &lt;/li&gt;    &lt;li&gt;Document Conversion Launcher Service &lt;/li&gt;    &lt;li&gt;Document Conversion Load Balancing Service &lt;/li&gt;    &lt;li&gt;Excel Calculation Services &lt;/li&gt;    &lt;li&gt;Lotus Notes Connector &lt;/li&gt;    &lt;li&gt;Managed Metadata Web Service &lt;/li&gt;    &lt;li&gt;Microsoft SharePoint Foundation Incoming E-mail &lt;/li&gt;    &lt;li&gt;Microsoft SharePoint Foundation Subscription Settings Service &lt;/li&gt;    &lt;li&gt;Microsoft SharePoint Foundation Web Application &lt;/li&gt;    &lt;li&gt;Microsoft SharePoint Foundation User Code Service &lt;/li&gt;    &lt;li&gt;PerformancePoint Service &lt;/li&gt;    &lt;li&gt;PowerPoint Service &lt;/li&gt;    &lt;li&gt;Search Query and Site Settings Service &lt;/li&gt;    &lt;li&gt;Secure Store Service &lt;/li&gt;    &lt;li&gt;SharePoint Foundation Search &lt;/li&gt;    &lt;li&gt;SharePoint Server Search &lt;/li&gt;    &lt;li&gt;User Profile Service &lt;/li&gt;    &lt;li&gt;User Profile Synchronization Service &lt;/li&gt;    &lt;li&gt;Visio Graphics Service &lt;/li&gt;    &lt;li&gt;Web Analytics Data Processing Service &lt;/li&gt;    &lt;li&gt;Web Analytics Web Service &lt;/li&gt;    &lt;li&gt;Word Automation Services &lt;/li&gt;    &lt;li&gt;Word Viewing Service &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;As you get more familiar with the concept of Service Applications, you will notice that many of the items on this list are service applications.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=1021" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>New Events in SharePoint 2010</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/22/new-events-in-sharepoint-2010.aspx</link><pubDate>Thu, 22 Oct 2009 15:52:56 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:1020</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=1020</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/22/new-events-in-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;Microsoft really answered the call of developers by adding several new events that developers had been wanting in MOSS 2007.&amp;#160; Event better, Visual Studio 2010 really makes it easy by using the new Add Event Receiver wizard.&amp;#160; It provides an interface with all of the possible things you might want to implement and then creates them in a class for you.&amp;#160; When it comes to feature receivers, I’ll point out that SPFeatureReceiver no longer requires you to implement every method.&amp;#160; You can now just create Event Handling methods for the events you care about.&lt;/p&gt;  &lt;p&gt;Here is a list of the new events.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;FeatureUpgrading &lt;/li&gt;    &lt;li&gt;WebAdding &lt;/li&gt;    &lt;li&gt;WebProvisioned &lt;/li&gt;    &lt;li&gt;ListAdding &lt;/li&gt;    &lt;li&gt;ListAdded &lt;/li&gt;    &lt;li&gt;ListDeleting &lt;/li&gt;    &lt;li&gt;ListDeleted &lt;/li&gt;    &lt;li&gt;WorkflowStarting &lt;/li&gt;    &lt;li&gt;WorkflowStarted &lt;/li&gt;    &lt;li&gt;WorkflowPostponed &lt;/li&gt;    &lt;li&gt;WorkflowCompleted &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Hopefully, what the events do is obvious from their names.&amp;#160; Of course, the name of these events might change at some point in the future.&amp;#160; I would like to see the WebProvisioned event be renamed WebAdded personally.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=1020" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>Lots of Databases in SharePoint 2010</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/21/lots-of-databases-in-sharepoint-2010.aspx</link><pubDate>Wed, 21 Oct 2009 20:08:58 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:1014</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=1014</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/21/lots-of-databases-in-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;If you are like me when you get a new product, you look at every possible little thing you can find to see what’s new or different.&amp;#160; That’s why I post this today because I figured you might be interested in what the databases might looks like in the next version.&amp;#160; Of course, as usual this is subject to change in the future.&amp;#160; In a typical installation, MOSS 2007 had a good number of databases.&amp;#160; It looks like SharePoint 2010 more than doubles the number.&amp;#160; My particular installation had 22 databases.&amp;#160; I think this number can even grow even more as you activate more Service Applications.&amp;#160; Most of the names are obvious, but I have commented on a few of them.&amp;#160; Some of the databases have spaces in their names.&amp;#160; The names are determined based upon how the service application was named.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Application_Registry_Service_&amp;lt;guid&amp;gt; – not sure if this is for the old Business Data Catalog or not. &lt;/li&gt;    &lt;li&gt;Bdc_Service_db_&amp;lt;guid&amp;gt; &lt;/li&gt;    &lt;li&gt;Managed_Metadata_Service_&amp;lt;guid&amp;gt; – likely for the new metadata term store &lt;/li&gt;    &lt;li&gt;People_ProfileDb_&amp;lt;guid&amp;gt; &lt;/li&gt;    &lt;li&gt;People_SocialDb_&amp;lt;guid&amp;gt; – new social tagging feature &lt;/li&gt;    &lt;li&gt;People_SyncDb_&amp;lt;guid&amp;gt; &lt;/li&gt;    &lt;li&gt;People_SyncDb_&amp;lt;guid&amp;gt;_Service &lt;/li&gt;    &lt;li&gt;People_SyncDb_&amp;lt;guid&amp;gt;_Sync &lt;/li&gt;    &lt;li&gt;PerformancePoint Monitoring Service_&amp;lt;guid&amp;gt; &lt;/li&gt;    &lt;li&gt;Search_Service_Application_CrawlStoreDb_&amp;lt;guid&amp;gt; – labeled as admin in search dashboard &lt;/li&gt;    &lt;li&gt;Search_Service_Application_Db_&amp;lt;guid&amp;gt; – labeled as index in search dashboard &lt;/li&gt;    &lt;li&gt;Search_Service_Application_PropertyStoreDb_&amp;lt;guid&amp;gt; – labeled as query in search dashboard &lt;/li&gt;    &lt;li&gt;Secure_Store_Service_Db_&amp;lt;guid&amp;gt; &lt;/li&gt;    &lt;li&gt;SharePoint_AdminContent_&amp;lt;guid&amp;gt; – CA database &lt;/li&gt;    &lt;li&gt;SharePoint_Config &lt;/li&gt;    &lt;li&gt;SSO &lt;/li&gt;    &lt;li&gt;StateService_&amp;lt;guid&amp;gt; &lt;/li&gt;    &lt;li&gt;Web AnalyticsServiceApplication_Reporting_Db_&amp;lt;guid&amp;gt; &lt;/li&gt;    &lt;li&gt;Web AnalyticsServiceApplication_Staging_Db_&amp;lt;guid&amp;gt; &lt;/li&gt;    &lt;li&gt;Word Automatiation Services_&amp;lt;guid&amp;gt; &lt;/li&gt;    &lt;li&gt;WSS_Content – content database &lt;/li&gt;    &lt;li&gt;WSS_Logging – likely for analytics &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;As you can see you have more databases to backup now.&amp;#160; &lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=1014" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>Use those version numbers in SharePoint 2010</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/21/use-those-version-numbers-in-sharepoint-2010.aspx</link><pubDate>Wed, 21 Oct 2009 17:59:45 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:1013</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=1013</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/21/use-those-version-numbers-in-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;With MOSS, it seemed like most web part developers tended to avoid changing the version of their DLL, because it lead to numerous headaches as you had to update the .webpart file.&amp;#160; You also had to update any page that you might have the web part on as well so that it would load the new version.&amp;#160; What’s nice about SharePoint 2010 is that your manifest file in your solution package can now deploy binding redirects to your web.config.&amp;#160; For example, this means you can have any reference to version 1.0.0.0 redirect to use version 2.0.0.0.&amp;#160; Binding redirects are nothing new to .NET, it’s just that SharePoint is now taking advantage of this feature.&amp;#160; In fact, SharePoint uses this feature itself to redirect any calls to its DLLs from version 12.0.0.0 to 14.0.0.0.&amp;#160; Here is an example of what that might look like.&lt;/p&gt;  &lt;div style="font-family:consolas;background:black;color:white;font-size:13pt;font-weight:bold;"&gt;   &lt;p style="margin:0px;"&gt;&amp;lt;&lt;span style="color:#cc7832;"&gt;Assemblies&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Assembly&lt;/span&gt; &lt;span style="color:silver;"&gt;DeploymentTarget&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;GlobalAssemblyCache&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Location&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;MyWebParts.dll&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;BindingRedirects&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;BindingRedirect&lt;/span&gt; &lt;span style="color:silver;"&gt;OldVersion&lt;/span&gt; =&amp;quot;&lt;span style="color:#a5c25c;"&gt;1.0.0.0&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;BindingRedirects&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;SafeControls&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;SafeControl&lt;/span&gt; &lt;span style="color:silver;"&gt;Assembly&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;MyWebParts, Version=2.0.0.0, Culture=neutral&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Namespace&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;MyWebParts&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;TypeName&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;*&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Safe&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;True&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;SafeControls&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;Assembly&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;lt;/&lt;span style="color:#cc7832;"&gt;Assemblies&lt;/span&gt;&amp;gt;&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;I really like this new feature and I think it will make it much easier for developers to version their assemblies.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=1013" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Solution/default.aspx">Solution</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>Checking to see if a list item exists in SharePoint 2010</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/21/checking-to-see-if-a-list-item-exists-in-sharepoint-2010.aspx</link><pubDate>Wed, 21 Oct 2009 16:02:00 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:1012</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=1012</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/21/checking-to-see-if-a-list-item-exists-in-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;This is another topic that is quite dear to most SharePoint developers.&amp;#160; We’ve all been there.&amp;#160; We want to know if a list item exists and the indexer is useless.&amp;#160; It throws an exception should we attempt to access an item that does not exist.&amp;#160; Well as we discovered this week there is a new &lt;em&gt;TryGetList &lt;/em&gt;method that works great to determine if a list exists but there really isn’t anything new with a SPBaseCollection.&amp;#160; We can do this a number of ways include spmetal.exe to generate strongly typed classes, but I was looking for a solution that didn’t require me to generate any classes.&amp;#160; We can now use .OfType&amp;lt;T&amp;gt; to get an IEnumerable&amp;lt;T&amp;gt; that we can use.&amp;#160; Once we have IEnumerable&amp;lt;T&amp;gt; it is quite easy to determine if a list item exists using the .Any() method.&amp;#160; Look at the example below.&lt;/p&gt;  &lt;div style="font-family:consolas;background:black;color:white;font-size:13pt;font-weight:bold;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; (&lt;span style="color:#ffc66d;"&gt;SPSite&lt;/span&gt; siteCollection = &lt;span style="color:#cc7832;"&gt;new&lt;/span&gt; &lt;span style="color:#ffc66d;"&gt;SPSite&lt;/span&gt;(&lt;span style="color:#a5c25c;"&gt;&amp;quot;http://moss-server&amp;quot;&lt;/span&gt;))&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#ffc66d;"&gt;SPList&lt;/span&gt; myCustomList = siteCollection.RootWeb.Lists.TryGetList(&lt;span style="color:#a5c25c;"&gt;&amp;quot;MyCustomList&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// doesn&amp;#39;t throw exception!&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#cc7832;"&gt;if&lt;/span&gt; (myCustomList != &lt;span style="color:#cc7832;"&gt;null&lt;/span&gt;)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#cc7832;"&gt;var&lt;/span&gt; listEnumeration = myCustomList.Items.OfType&amp;lt;&lt;span style="color:#ffc66d;"&gt;SPListItem&lt;/span&gt;&lt;span style="font-weight:normal;"&gt;&amp;gt;();&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#cc7832;"&gt;return&lt;/span&gt; listEnumeration.Any(p =&amp;gt; p.Name == &lt;span style="color:#a5c25c;"&gt;&amp;quot;List Item 1&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;As you can see using the lambda expression p =&amp;gt; p.Name we can do a comparison to see if a list item with that name exists.&amp;#160; This will return us a boolean if the item does in fact exist.&amp;#160; As you can see this isn&amp;#39;t quite as good as a native method that checks for an item that exists, but it does work.&amp;#160; If you want to get creative you can also check on other fields such as Title, Id, or whatever.&amp;#160; Take a look at this sample.&lt;/p&gt;  &lt;div style="font-family:consolas;background:black;color:white;font-size:13pt;font-weight:bold;"&gt;   &lt;p style="margin:0px;"&gt;listEnumeration.Any(p =&amp;gt; p[&lt;span style="color:#a5c25c;"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;] == &lt;span style="color:#a5c25c;"&gt;&amp;quot;List Item 1&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;listEnumeration.Any(p =&amp;gt; p.UniqueId == someGuid);&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;As you can see, LINQ makes it quite easy to determine if an item exists.&amp;#160; This may not be the most efficient way to do it as it is rather brute force.&amp;#160; It may only be arguably better than using a try / catch block, but it certainly looks cleaner.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=1012" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>Introducing the Visual Web Part in SharePoint 2010</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/20/introducing-the-visual-web-part-in-sharepoint-2010.aspx</link><pubDate>Tue, 20 Oct 2009 21:38:19 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:1011</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=1011</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/20/introducing-the-visual-web-part-in-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;You might have seen that there is a new designer for working with web parts in Visual Studio 2010.&amp;#160; This is actually, not quite the case, so I thought I would share with you how it actually works.&amp;#160; When you use the Visual Web Part SPI (SharePoint Project Item), it will create a number of files for you: a .cs file, a .webpart file, an elements.xml file, and a .ascx file.&amp;#160; That’s right, it creates an ASP.NET user control.&amp;#160; Now, the Visual Studio interface does a nice job of grouping all of the files together.&amp;#160; When you open the designer on the web part, you in fact just open the designer for the user control.&amp;#160; &lt;/p&gt;  &lt;p&gt;So now you might be thinking, how does this work?&amp;#160; Well no SharePoint can’t host user controls directly still. In fact all it does is create a simple web part with a Page.LoadControl() method pointing at our user control.&amp;#160; This in fact is the same method we’ve been using for years to get user controls into SharePoint.&amp;#160; I don’t really see this as an issue though, since Visual Studio does a great job making it painless to deploy these now and use them inside SharePoint.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=1011" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/WebPart/default.aspx">WebPart</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>Checking to see if a list exists in SharePoint 2010</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/20/checking-to-see-if-a-list-exists-in-sharepoint-2010.aspx</link><pubDate>Tue, 20 Oct 2009 20:17:17 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:1008</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=1008</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/20/checking-to-see-if-a-list-exists-in-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;This is a bitter subject with most MOSS 2007 developers because the most common way to do this is by using a try/catch block when you try to use the indexer on SPListCollection.&amp;#160; Well, I am pleased to tell you about a new method I discovered on SPListCollection that really made my day.&amp;#160; The new &lt;em&gt;TryGetList &lt;/em&gt;method takes the name of a list and will get this, return a null if the list doesn’t exist.&amp;#160; Take a look at this code.&lt;/p&gt;  &lt;div style="font-family:consolas;background:black;color:white;font-size:13pt;font-weight:bold;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; (&lt;span style="color:#ffc66d;"&gt;SPSite&lt;/span&gt; siteCollection = &lt;span style="color:#cc7832;"&gt;new&lt;/span&gt; &lt;span style="color:#ffc66d;"&gt;SPSite&lt;/span&gt;(&lt;span style="color:#a5c25c;"&gt;&amp;quot;http://moss-server&amp;quot;&lt;/span&gt;))&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#ffc66d;"&gt;SPList&lt;/span&gt; myCustomList = siteCollection.RootWeb.Lists.TryGetList(&lt;span style="color:#a5c25c;"&gt;&amp;quot;MyCustomList&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// doesn&amp;#39;t throw exception!&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#cc7832;"&gt;if&lt;/span&gt; (myCustomList != &lt;span style="color:#cc7832;"&gt;null&lt;/span&gt;)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// do something&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;That’s right!&amp;#160; You heard me, instead of throwing an exception, you actually get null back when the list doesn’t exist.&amp;#160; No more try/catch blocks.&amp;#160; No more extension methods to hide those try/catch blocks.&amp;#160; Unfortunately, there is nothing on SPBaseCollection to check if an item exists, but I do have a solution, so be looking for that post.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=1008" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>SharePoint 2010: 12 Hive + 2 = 14 Hive</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/20/sharepoint-2010-12-hive-2-14-hive.aspx</link><pubDate>Tue, 20 Oct 2009 20:15:16 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:1007</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=1007</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/20/sharepoint-2010-12-hive-2-14-hive.aspx#comments</comments><description>&lt;p&gt;If you’re a SharePoint person, you of course have the following path burned into your memory forever.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;C:\Program Files\Common Files\Microsoft Shared\Web Server Extension\12&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Well pretty soon, you can replace that with:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Apparently, Microsoft thought the number thirteen was unlucky.&amp;#160; Now, I know they are trying to rebrand this as the SharePoint root (or something like that), but we all know that is never going to sick, so I’ll just call it the 14 hive.&amp;#160; Anyhow, this is the new place you’ll be doing a lot of your work.&amp;#160; Although with the new Visual Studio 2010 tools, you’ll find that you won’t need to come to this folder nearly as much.&amp;#160; In this post, I thought I would take a brief moment to point out what I noticed in the 14 hive and make any comments as necessary.&amp;#160; None of the underlying folders really have changed but a few things have been added.&lt;/p&gt;  &lt;p&gt;In the root of the 14 Hive, I noticed three new folders&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;UserCode – files used to support sandboxed solutions &lt;/li&gt;    &lt;li&gt;WebClients – used for the client OM I believe &lt;/li&gt;    &lt;li&gt;WebServices – many new .svc files &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you are interested in what assemblies are present in the ISAPI folder, here is a quick list.&amp;#160; It sounds like some classes have moved to different DLLs, but I haven&amp;#39;t encountered any yet.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft.BusinessData.dll&lt;/li&gt;    &lt;li&gt;Microsoft.Office.DocumentManagment.dll &lt;/li&gt;    &lt;li&gt;Microsoft.Office.Excel.Server.Udf.dll &lt;/li&gt;    &lt;li&gt;Microsoft.Office.Excel.Server.WebServices.dll &lt;/li&gt;    &lt;li&gt;Microsoft.Office.Policy.dll &lt;/li&gt;    &lt;li&gt;Microsoft.Office.SecureStoreService.Security.dll&lt;/li&gt;    &lt;li&gt;Microsoft.Office.Server.dll &lt;/li&gt;    &lt;li&gt;Microsoft.Office.Server.Search.dll &lt;/li&gt;    &lt;li&gt;Microsoft.Office.SharePoint.ClientExtensions.dll&lt;/li&gt;    &lt;li&gt;Microsoft.Office.UserProfiles.dll &lt;/li&gt;    &lt;li&gt;Microsoft.Office.Word.Server.dll&lt;/li&gt;    &lt;li&gt;Microsoft.Office.Workflow.Actions.dll &lt;/li&gt;    &lt;li&gt;Microsoft.Office.Workflow.Tasks.dll &lt;/li&gt;    &lt;li&gt;Microsoft.SharePoint.Client.dll &lt;/li&gt;    &lt;li&gt;Microsoft.SharePoint.Runtime.dll &lt;/li&gt;    &lt;li&gt;Microsoft.SharePoint.dll &lt;/li&gt;    &lt;li&gt;Microsoft.SharePoint.Linq.dll &lt;/li&gt;    &lt;li&gt;Microsoft.SharePoint.Portal.dll &lt;/li&gt;    &lt;li&gt;Microsoft.SharePoint.Publishing.dll &lt;/li&gt;    &lt;li&gt;Microsoft.SharePoint.Search.dll &lt;/li&gt;    &lt;li&gt;Microsoft.SharePoint.Search.Extended.Administration.Common.dll &lt;/li&gt;    &lt;li&gt;Microsoft.SharePoint.Search.Extended.Administration.dll &lt;/li&gt;    &lt;li&gt;Microsoft.SharePoint.Search.Extended.Administration.ResourceStorage.dll &lt;/li&gt;    &lt;li&gt;Microsoft.SharePoint.Search.Extended.Administration.Query.dll &lt;/li&gt;    &lt;li&gt;Microsoft.SharePoint.Security.dll &lt;/li&gt;    &lt;li&gt;Microsoft.SharePoint.Taxonomy.dll &lt;/li&gt;    &lt;li&gt;Microsoft.SharePoint.Taxonomy.Intl.dll &lt;/li&gt;    &lt;li&gt;Microsoft.SharePoint.Workflow.Actions.dll &lt;/li&gt;    &lt;li&gt;Microsoft.Web.CommandUI.dll&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I believe all of these are registered as version 14.0.0.0.&amp;#160; There is a lot of new things in the hive including features, site templates, etc, but not that many structural changes from what I can tell.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=1007" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>Writing to the Property Bag using CAML in SP2010</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/20/writing-to-the-property-bag-using-caml-in-sp2010.aspx</link><pubDate>Tue, 20 Oct 2009 15:51:32 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:1005</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=1005</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/20/writing-to-the-property-bag-using-caml-in-sp2010.aspx#comments</comments><description>&lt;p&gt;There are a number of feature improvements in SharePoint 2010.&amp;#160; They have made many changes which allow you to do more with features when they are activated or upgraded.&amp;#160; One of the new features it the ability to write to the property bag.&amp;#160; To do this we just make use of the new &lt;em&gt;PropertyBag &lt;/em&gt;element in your elements.xml file.&amp;#160; Here is what a file might look like that writes to the property bag.&amp;#160; As usual, I’ll point out that features or syntax could change.&lt;/p&gt;  &lt;div style="font-family:consolas;background:black;color:white;font-size:13pt;font-weight:bold;"&gt;   &lt;p style="margin:0px;"&gt;&amp;lt;&lt;span style="color:#cc7832;"&gt;Elements&lt;/span&gt; &lt;span style="color:silver;"&gt;xmnlns&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;PropertyBag&lt;/span&gt; &lt;span style="color:silver;"&gt;ParentType&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Web&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;MyCustomProperty1&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;some value&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;MyCustomProperty2&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;4&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;PropertyBag&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;lt;/&lt;span style="color:#cc7832;"&gt;Elements&lt;/span&gt;&amp;gt;&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;I will point out that whatever type you initialize the property with, it will become semi-permanent.&amp;#160; Currently, this applies for integers and date/time.&amp;#160; If you try to save another type in an existing property later, you will end up with a null value being stored. This will save me some time in the future as I have had to write code to do this in the past.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=1005" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Feature/default.aspx">Feature</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item></channel></rss>