<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>yuriburger.net</title>
	<atom:link href="http://yuriburger.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://yuriburger.net</link>
	<description>All Things SharePoint!</description>
	<lastBuildDate>Thu, 23 May 2013 08:15:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='yuriburger.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/fa79594c06991457feed629e5d35aaa3?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>yuriburger.net</title>
		<link>http://yuriburger.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://yuriburger.net/osd.xml" title="yuriburger.net" />
	<atom:link rel='hub' href='http://yuriburger.net/?pushpress=hub'/>
		<item>
		<title>SharePoint and the tools of the trade</title>
		<link>http://yuriburger.net/2013/05/16/sharepoint-and-the-tools-of-the-trade/</link>
		<comments>http://yuriburger.net/2013/05/16/sharepoint-and-the-tools-of-the-trade/#comments</comments>
		<pubDate>Thu, 16 May 2013 12:08:12 +0000</pubDate>
		<dc:creator>yuriburger</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SharePoint 2013]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://yuriburger.net/?p=420</guid>
		<description><![CDATA[I thought I&#8217;d list some of the tools I use on my SharePoint projects. They include tools for diagnosing errors and performance issues, development tools and more. Most of these are made by individuals or small teams, dedicating their valuable time creating the tools we all love and use. Hats off to you all!  That [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=420&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p lang="nl">I thought I&#8217;d list some of the tools I use on my SharePoint projects. They include tools for diagnosing errors and performance issues, development tools and more. Most of these are made by individuals or small teams, dedicating their valuable time creating the tools we all love and use. Hats off to you all!</p>
<p lang="nl"> That said, here is my disclaimer to go with this post:</p>
<p lang="nl"> These tools are not created or maintained by me. I use / have used all of these personally, but always with caution. I am in no event responsible or liable for any damages whatsoever arising out of or related to the tools listed here.</p>
<ul>
<li>
<div lang="nl"> Read the documentation often included in the tools package or listed on the authors site.</div>
</li>
<li>
<div lang="nl">Test the tools on your own, controlled environment.</div>
</li>
<li>
<div lang="nl">In case of questions, check with the author&#8217;s site. They usually have sections dedicated to questions and comments and are your best option for getting answers.</div>
</li>
</ul>
<p lang="nl"> I labelled them according to the following categories:</p>
<table>
<tbody>
<tr>
<td>Maintain</td>
<td>Keeping your environment up and running</td>
</tr>
<tr>
<td>Develop</td>
<td>Building custom SharePoint components</td>
</tr>
<tr>
<td>Diagnose</td>
<td>Diagnosing errors or performance issues</td>
</tr>
<tr>
<td>Design</td>
<td>Designing your SharePoint environment and architecture</td>
</tr>
<tr>
<td>Deploy</td>
<td>Deploying your SharePoint bits and configuration</td>
</tr>
</tbody>
</table>
<p>The tools, in no particular order:</p>
<table>
<tbody>
<tr>
<td>ULS Viewer</td>
<td>Diagnose, Maintain</td>
<td><a href="http://archive.msdn.microsoft.com/ULSViewer" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/ulsviewer.png"><img class="alignleft size-thumbnail wp-image-425" alt="ULSViewer" src="http://allthingssharepoint.files.wordpress.com/2013/05/ulsviewer.png?w=150&#038;h=89" width="150" height="89" /></a></td>
<td colspan="2">ULSViewer allows users to open a ULS log file and display its contents in a user friendly format. Users can then perform advanced functions such as filtering, sorting, highlighting, loading logs, appending logs, etc in order to single out the data that is important to the user. This information can be used to diagnose problems with machines running ULS services, or to monitor machines and the events they create in realtime.</td>
</tr>
<tr>
<td>Fiddler</td>
<td>Diagnose</td>
<td><a href="http://fiddler2.com" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/fiddler.png"><img class="alignleft size-thumbnail wp-image-424" alt="Fiddler" src="http://allthingssharepoint.files.wordpress.com/2013/05/fiddler.png?w=150&#038;h=87" width="150" height="87" /></a></td>
<td colspan="2">Fiddler is a free web debugging proxy which logs all HTTP(s) traffic between your computer and the Internet. Use it to debug traffic from virtually any application that supports a proxy like IE, Chrome, Safari, Firefox, Opera, and more.</td>
</tr>
<tr>
<td>C2WTS Test</td>
<td>Diagnose</td>
<td><a href="http://rodneyviana.codeplex.com/releases/view/19103" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/c2wts.png"><img class="alignleft size-thumbnail wp-image-430" alt="C2WTS" src="http://allthingssharepoint.files.wordpress.com/2013/05/c2wts.png?w=150&#038;h=106" width="150" height="106" /></a></td>
<td colspan="2">Application to assist in troubleshooting the Claims to Windows NT Token Service.</td>
</tr>
<tr>
<td>Log Parser Studio</td>
<td>Diagnose, Maintain</td>
<td><a href="http://gallery.technet.microsoft.com/office/Log-Parser-Studio-cd458765" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/logparserstudio.png"><img class="alignleft size-thumbnail wp-image-431" alt="LogParserStudio" src="http://allthingssharepoint.files.wordpress.com/2013/05/logparserstudio.png?w=150&#038;h=89" width="150" height="89" /></a></td>
<td colspan="2">Log Parser Studio is a utility that allows you to search through and create reports from your IIS, Event, EXADB and others types of logs. It builds on top of Log Parser 2.2 and has a full user interface for easy creation and management of related SQL queries.</td>
</tr>
<tr>
<td>Kerbtray</td>
<td>Diagnose</td>
<td><a href="http://www.microsoft.com/en-us/download/details.aspx?id=17657" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/kerbtray.png"><img class="alignleft size-thumbnail wp-image-435" alt="KerbTray" src="http://allthingssharepoint.files.wordpress.com/2013/05/kerbtray.png?w=138&#038;h=150" width="138" height="150" /></a></td>
<td colspan="2">Kerbtray is part of the Windows Server Resource Kit Tools. It runs from the system tray and provides usefull Kerberos information.</td>
</tr>
<tr>
<td>SPDisposeCheck</td>
<td>Develop, Diagnose</td>
<td><a href="http://archive.msdn.microsoft.com/SPDisposeCheck" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/spdisposecheck.png"><img class="alignleft size-thumbnail wp-image-437" alt="SPDisposeCheck" src="http://allthingssharepoint.files.wordpress.com/2013/05/spdisposecheck.png?w=150&#038;h=98" width="150" height="98" /></a></td>
<td colspan="2">SPDisposeCheck is a tool that helps developers and administrators check custom SharePoint solutions that use the SharePoint Object Model helping measure against known Microsoft dispose best practices. This tool may not show all memory leaks in your code and may produce false positives which need further review by subject matter experts.</td>
</tr>
<tr>
<td>Microsoft SharePoint Online Code Analysis Framework MSOCAF</td>
<td>Develop, Diagnose</td>
<td><a href="https://caf.sharepoint.microsoftonline.com/" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/msocaf.png"><img class="alignleft size-thumbnail wp-image-438" alt="MSOCAF" src="http://allthingssharepoint.files.wordpress.com/2013/05/msocaf.png?w=150&#038;h=109" width="150" height="109" /></a></td>
<td colspan="2">By using MSOCAF, the engineering review process should be expedited as the customers will be able to detect and fix the code issues themselves before submitting the custom solutions to Microsoft. Optionally, MSOCAF can also be used to deploy custom solutions to the customer’s test environment or to rollback or remove components of a deployed solution. Previously the submission process was manual and thus time consuming. MSOCAF can communicate with a web service hosted on the customer’s SharePoint environment to submit the deployment package, and submit the custom solution automatically.</td>
</tr>
<tr>
<td>SPCAF</td>
<td>Develop, Diagnose</td>
<td><a href="http://www.spcaf.com/" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/spcaf.png"><img class="alignleft size-thumbnail wp-image-439" alt="SPCaf" src="http://allthingssharepoint.files.wordpress.com/2013/05/spcaf.png?w=150&#038;h=85" width="150" height="85" /></a></td>
<td colspan="2">Essential tool to ensure SharePoint code quality. SPCAF analyzes SharePoint code from .wsp and .app files and checks all contained code incl. XML for correctness, best practices etc. It also creates dependency Graphs, calculates code metrics and creates an inventory.</td>
</tr>
<tr>
<td>Snap</td>
<td>Develop, Diagnose</td>
<td><a href="http://todd-carter.com/post/2012/05/05/Making-Debugging-a-SNAP/" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/snap.png"><img class="alignleft size-thumbnail wp-image-441" alt="Snap" src="http://allthingssharepoint.files.wordpress.com/2013/05/snap.png?w=150&#038;h=98" width="150" height="98" /></a></td>
<td colspan="2">Captures a stack trace of the managed stack for each thread within a process and writes the output into a XML log file on disk. Each “Snap” results in an XML log file and can have the snap interval, max snap count, or duration configured.</td>
</tr>
<tr>
<td>Chrome Developer Tools</td>
<td>Develop</td>
<td><a href="http://www.google.com" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/chrome.png"><img class="alignleft size-thumbnail wp-image-442" alt="Chrome" src="http://allthingssharepoint.files.wordpress.com/2013/05/chrome.png?w=150&#038;h=54" width="150" height="54" /></a></td>
<td colspan="2">The DevTools, bundled in Chrome, provide web developers deep access into the internals of the browser and their web application. This overview of the Developer Tools points out its most popular and useful features. The target audience are web developers who don&#8217;t know of, or have not yet investigated, the DevTools. However, we are sure that even if you are an experienced web developer, you will pick up some tips.</td>
</tr>
<tr>
<td>Firefox Firebug</td>
<td>Develop</td>
<td><a href="https://addons.mozilla.org/en-US/firefox/addon/firebug/#id=1843" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/firebug.png"><img class="alignleft size-thumbnail wp-image-443" alt="Firebug" src="http://allthingssharepoint.files.wordpress.com/2013/05/firebug.png?w=150&#038;h=84" width="150" height="84" /></a></td>
<td colspan="2">Firebug integrates with Firefox to put a wealth of development tools at your fingertips while you browse. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page&#8230;</td>
</tr>
<tr>
<td>Internet Explorer Developer Tools</td>
<td>Develop</td>
<td><a href="http://windows.microsoft.com/en-us/internet-explorer/download-ie" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/ie.png"><img class="alignleft size-thumbnail wp-image-444" alt="IE" src="http://allthingssharepoint.files.wordpress.com/2013/05/ie.png?w=150&#038;h=87" width="150" height="87" /></a></td>
<td colspan="2">Every installation of Internet Explorer comes with the Developer Tools. This tool enables Web site developers to quickly debug Microsoft JScript, investigate a behavior specific to Windows Internet Explorer, or iterate rapidly to prototype a new design or try solutions to a problem on-the-fly.</td>
</tr>
<tr>
<td>Yslow</td>
<td>Diagnose, Develop</td>
<td><a href="https://addons.mozilla.org/en-US/firefox/addon/yslow/" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/yslow.png"><img class="alignleft size-thumbnail wp-image-445" alt="YSlow" src="http://allthingssharepoint.files.wordpress.com/2013/05/yslow.png?w=150&#038;h=84" width="150" height="84" /></a></td>
<td colspan="2">YSlow analyzes web pages and suggests ways to improve their performance based on a set of rules for high performance web pages. <a href="http://yslow.org" rel="nofollow">http://yslow.org</a> is the official open source website.</td>
</tr>
<tr>
<td>SSL Diagnostics</td>
<td>Diagnose</td>
<td><a href="http://www.iis.net/downloads/community/2009/09/ssl-diagnostics-tool-for-iis-7" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/ssldiag.png"><img class="alignleft size-thumbnail wp-image-446" alt="SSLDiag" src="http://allthingssharepoint.files.wordpress.com/2013/05/ssldiag.png?w=150&#038;h=92" width="150" height="92" /></a></td>
<td colspan="2">The SSL Diagnostics tool is a very useful tool for troubleshooting SSL issues. It generates a detailed report of SSL settings for all the websites on an IIS server which helps in quickly identifying SSL issues. But the tool was built for IIS 5 and 6, there is no version available which is compatible with IIS 7. The SSL Diagnostics tool does succeed in generating a report on IIS 7 if the IIS 6.0 Metabase Compatibility feature is installed. To help troubleshoot SSL issues on IIS 7 I have written a tool which works in a similar fashion. It scans all the websites and FTPS sites configured on the server and generates a report which can help in identifying SSL issues.</td>
</tr>
<tr>
<td>AutoSPInstaller</td>
<td>Deploy</td>
<td><a href="http://autospinstaller.codeplex.com/" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/autospinstaller.png"><img class="alignleft size-thumbnail wp-image-447" alt="AutoSPInstaller" src="http://allthingssharepoint.files.wordpress.com/2013/05/autospinstaller.png?w=150&#038;h=80" width="150" height="80" /></a></td>
<td colspan="2">Automated SharePoint 2010/2013 PowerShell-based installation script.</td>
</tr>
<tr>
<td>AutoSPSourceBuilder</td>
<td>Deploy</td>
<td><a href="http://autospsourcebuilder.codeplex.com/" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/autospsource.png"><img class="alignleft size-thumbnail wp-image-448" alt="AutoSPSource" src="http://allthingssharepoint.files.wordpress.com/2013/05/autospsource.png?w=150&#038;h=39" width="150" height="39" /></a></td>
<td colspan="2">AutoSPSourceBuilder: a utility for building a SharePoint 2010 / 2013 install source including prerequisites, service packs, language packs &amp; cumulative updates.</td>
</tr>
<tr>
<td>AutoSPInstaller GUI</td>
<td>Deploy</td>
<td><a href="http://autospinstallergui.codeplex.com/" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/autospinstallergui.png"><img class="alignleft size-thumbnail wp-image-449" alt="AutoSPInstallerGUI" src="http://allthingssharepoint.files.wordpress.com/2013/05/autospinstallergui.png?w=150&#038;h=106" width="150" height="106" /></a></td>
<td colspan="2">AutoSPInstallerGUI is a GUI Configuration Tool for AutoSPInstaller Codeplex Project.</td>
</tr>
<tr>
<td>HP Sizer for Microsoft SharePoint</td>
<td>Design</td>
<td><a href="http://h71019.www7.hp.com/activeanswers/Secure/548230-0-0-0-121.html" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/hp.png"><img class="alignleft size-thumbnail wp-image-450" alt="HP" src="http://allthingssharepoint.files.wordpress.com/2013/05/hp.png?w=150&#038;h=120" width="150" height="120" /></a></td>
<td colspan="2">HP Sizer for Microsoft SharePoint is a complimentary planning resource that encapsulates knowledge gained from extensive performance characterization of Office SharePoint Server 2007 and SharePoint 2010 in the HP Alliances Performance and Solutions labs, widespread collaboration between HP and Microsoft, and numerous SharePoint performance whitepapers produced by HP engineering. The Sizer offers a quick and consistent methodology for determining and comparing configurations, as well as detailed, customizable server and storage solutions complete with bill of materials and pricing.</td>
</tr>
<tr>
<td>SPDocKit</td>
<td>Deploy, Maintain</td>
<td><a href="http://www.spdockit.com/" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/spdockit.png"><img class="alignleft size-thumbnail wp-image-451" alt="SPDocKit" src="http://allthingssharepoint.files.wordpress.com/2013/05/spdockit.png?w=150&#038;h=88" width="150" height="88" /></a></td>
<td colspan="2">After the installation of Microsoft SharePoint software on the server / farm, you need to create a proper documentation file containing system and configuration settings. That type of document is essential for SharePoint administrators in order to provide support and maintenance of the installed environment.<br />
Documentation Toolkit for SharePoint performs that task with only a few mouse clicks. It saves hours of manually pasting data from different sources into the documentation file. This product automatically generates MS Word (docx) document with all configuration settings.</td>
</tr>
<tr>
<td>Termstore Creator</td>
<td>Design</td>
<td><a href="http://www.wictorwilen.se/Post/Create-SharePoint-2010-Managed-Metadata-with-Excel-2010.aspx" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/meta.png"><img class="alignleft size-thumbnail wp-image-452" alt="Meta" src="http://allthingssharepoint.files.wordpress.com/2013/05/meta.png?w=150&#038;h=82" width="150" height="82" /></a></td>
<td colspan="2">The Term Store Manager allows you to import a comma separated text file containing a Term Set. By default the Excel 2010 Save as CSV does not save in the correct format and for that I have made a Excel 2010 macro enabled template which produces the correct format.</td>
</tr>
<tr>
<td>Membership Seeder</td>
<td>Design</td>
<td><a href="http://cks.codeplex.com/releases/view/7450" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/membershipseeder.png"><img class="alignleft size-thumbnail wp-image-453" alt="MemberShipSeeder" src="http://allthingssharepoint.files.wordpress.com/2013/05/membershipseeder.png?w=150&#038;h=76" width="150" height="76" /></a></td>
<td colspan="2">If you need to setup large amounts of test accounts for your Form Based Auth environment, the Membership Seeder tool can help you out.</td>
</tr>
<tr>
<td>Feature Admin</td>
<td>Maintain</td>
<td><a href="http://featureadmin.codeplex.com/" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/featureadmin.png"><img class="alignleft size-thumbnail wp-image-454" alt="FeatureAdmin" src="http://allthingssharepoint.files.wordpress.com/2013/05/featureadmin.png?w=150&#038;h=91" width="150" height="91" /></a></td>
<td colspan="2">The Feature Admin Tool finds faulty FeatureDefinitions and cleanly uninstalls them.<br />
It finds feature remainders in sites, SiteCollections, WebApps and in the Farm, caused e.g. by forcefully uninstalled Features from a farm without deactivating them before. These faulty features, never visible, cause errors.<br />
The Feature Admin Tool is able to identify them and remove them.</td>
</tr>
<tr>
<td>CKS DEV</td>
<td>Develop</td>
<td><a href="http://visualstudiogallery.msdn.microsoft.com/cf1225b4-aa83-4282-b4c6-34feec8fc5ec" target="_blank">Link</a></td>
</tr>
<tr>
<td> <a href="http://allthingssharepoint.files.wordpress.com/2013/05/cksdev.png"><img class="alignleft size-thumbnail wp-image-455" alt="CKSDev" src="http://allthingssharepoint.files.wordpress.com/2013/05/cksdev.png?w=150&#038;h=62" width="150" height="62" /></a></td>
<td colspan="2">The CKS &#8211; Development Tools Edition for Visual Studio 2012 is a collection of Visual Studio templates, Server Explorer extensions and tools providing accelerated SharePoint 2010/2013 development based on Microsoft&#8217;s SharePoint 2010/2013 development tools.</td>
</tr>
</tbody>
</table>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allthingssharepoint.wordpress.com/420/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allthingssharepoint.wordpress.com/420/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=420&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yuriburger.net/2013/05/16/sharepoint-and-the-tools-of-the-trade/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a65f6af25145195dbc973f00d250c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yuriburger</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/ulsviewer.png?w=150" medium="image">
			<media:title type="html">ULSViewer</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/fiddler.png?w=150" medium="image">
			<media:title type="html">Fiddler</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/c2wts.png?w=150" medium="image">
			<media:title type="html">C2WTS</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/logparserstudio.png?w=150" medium="image">
			<media:title type="html">LogParserStudio</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/kerbtray.png?w=138" medium="image">
			<media:title type="html">KerbTray</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/spdisposecheck.png?w=150" medium="image">
			<media:title type="html">SPDisposeCheck</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/msocaf.png?w=150" medium="image">
			<media:title type="html">MSOCAF</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/spcaf.png?w=150" medium="image">
			<media:title type="html">SPCaf</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/snap.png?w=150" medium="image">
			<media:title type="html">Snap</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/chrome.png?w=150" medium="image">
			<media:title type="html">Chrome</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/firebug.png?w=150" medium="image">
			<media:title type="html">Firebug</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/ie.png?w=150" medium="image">
			<media:title type="html">IE</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/yslow.png?w=150" medium="image">
			<media:title type="html">YSlow</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/ssldiag.png?w=150" medium="image">
			<media:title type="html">SSLDiag</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/autospinstaller.png?w=150" medium="image">
			<media:title type="html">AutoSPInstaller</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/autospsource.png?w=150" medium="image">
			<media:title type="html">AutoSPSource</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/autospinstallergui.png?w=150" medium="image">
			<media:title type="html">AutoSPInstallerGUI</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/hp.png?w=150" medium="image">
			<media:title type="html">HP</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/spdockit.png?w=150" medium="image">
			<media:title type="html">SPDocKit</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/meta.png?w=150" medium="image">
			<media:title type="html">Meta</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/membershipseeder.png?w=150" medium="image">
			<media:title type="html">MemberShipSeeder</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/featureadmin.png?w=150" medium="image">
			<media:title type="html">FeatureAdmin</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/05/cksdev.png?w=150" medium="image">
			<media:title type="html">CKSDev</media:title>
		</media:content>
	</item>
		<item>
		<title>Errors resizing a SharePoint 2013 App Part (Client Web Part)</title>
		<link>http://yuriburger.net/2013/04/27/errors-resizing-a-sharepoint-2013-app-part-client-web-part/</link>
		<comments>http://yuriburger.net/2013/04/27/errors-resizing-a-sharepoint-2013-app-part-client-web-part/#comments</comments>
		<pubDate>Sat, 27 Apr 2013 19:09:46 +0000</pubDate>
		<dc:creator>yuriburger</dc:creator>
				<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[SharePoint 2013]]></category>
		<category><![CDATA[app part]]></category>
		<category><![CDATA[client web part]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[resizing]]></category>

		<guid isPermaLink="false">https://allthingssharepoint.wordpress.com/?p=412</guid>
		<description><![CDATA[Since SharePoint Client Web Parts are simply iFrames, resizing them from within your App logic (i.e. App.js) can be a little challenging. Fortunately Microsoft provides a way to do this dynamically using postmessages. More info on this can be found on MSDN. Basically, how this works is, you send a special ‘resize’ message to your [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=412&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Since SharePoint Client Web Parts are simply iFrames, resizing them from within your App logic (i.e. App.js) can be a little challenging. Fortunately Microsoft provides a way to do this dynamically using postmessages. More info on this can be found on <a href="http://msdn.microsoft.com/en-us/library/jj220046.aspx#UXGuide_Extending">MSDN</a>.</p>
<p>Basically, how this works is, you send a special ‘resize’ message to your iFrames parent (the SharePoint Web containing the App Part). Based on this message, the iFrame is resized according to the supplied dimensions:</p>
<p>window.parent.postMessage(“&lt;message senderId={your ID}&gt;resize(120, 300)&lt;/message&gt;”, this.location.hostname);</p>
<p>This only works if your Client Web Parts have the Web Part Title enabled (via the Client Web Part Chrome settings). If you don&#8217;t, the resizing function breaks, because it cannot find the Web Parts title DIV:</p>
<p><a href="http://allthingssharepoint.files.wordpress.com/2013/04/chrome.png"><img style="background-image:none;padding-top:0;padding-left:0;margin:0 0 10px;display:inline;padding-right:0;border:0;" title="Chrome" alt="Chrome" src="http://allthingssharepoint.files.wordpress.com/2013/04/chrome_thumb.png?w=159&#038;h=59" width="159" height="59" border="0" /></a></p>
<p><span style="color:#ff0000;"><strong>SCRIPT5007: Unable to get property &#8216;style&#8217; of undefined or null reference</strong></span></p>
<p>The code throwing the error:</p>
<pre class="brush: jscript; title: ; notranslate">
if (resizeWidth)
{
document.getElementById(webPartDivId + '_ChromeTitle').style.cssText = widthCssText;
cssText = 'width:100% !important;'
}
</pre>
<p>Unfortunately, there is not much we can do about this. If you really need the App Part title gone and keep the dynamic resizing my choice would be to hide it using CSS. Meanwhile we wait for the fix.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allthingssharepoint.wordpress.com/412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allthingssharepoint.wordpress.com/412/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=412&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yuriburger.net/2013/04/27/errors-resizing-a-sharepoint-2013-app-part-client-web-part/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a65f6af25145195dbc973f00d250c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yuriburger</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/04/chrome_thumb.png" medium="image">
			<media:title type="html">Chrome</media:title>
		</media:content>
	</item>
		<item>
		<title>Deploying and activating SharePoint 2013 themes using Visual Studio</title>
		<link>http://yuriburger.net/2013/03/24/deploying-and-activating-sharepoint-2013-themes-using-visual-studio/</link>
		<comments>http://yuriburger.net/2013/03/24/deploying-and-activating-sharepoint-2013-themes-using-visual-studio/#comments</comments>
		<pubDate>Sun, 24 Mar 2013 01:20:50 +0000</pubDate>
		<dc:creator>yuriburger</dc:creator>
				<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[SharePoint 2013]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[sharepoint 2013]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[theming]]></category>

		<guid isPermaLink="false">https://allthingssharepoint.wordpress.com/?p=369</guid>
		<description><![CDATA[I won&#8217;t deny it&#8230; I never was a big fan of theming SharePoint sites. In MOSS this was implemented absolutely awful and the SharePoint 2010 *slash* PowerPoint approach didn&#8217;t do it for me either. Glad to see both annoyances are gone now. Let&#8217;s take a look at how SharePoint 2013 changes the game and what [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=369&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I won&#8217;t deny it&#8230; I never was a big fan of theming SharePoint sites. In MOSS this was implemented absolutely awful and the SharePoint 2010 *slash* PowerPoint approach didn&#8217;t do it for me either. Glad to see both annoyances are gone now. Let&#8217;s take a look at how SharePoint 2013 changes the game and what we need to do to change its looks!</p>
<p>Themes in SharePoint 2013 consist of two things:</p>
<ul>
<li>A theme, as in colorscheme</li>
<li>Optionally a fontscheme</li>
</ul>
<p>Furthermore, a theme is part of what is called a &#8220;Composed Look&#8221;. These Composed Looks are essentially what is available to you when you click the &#8220;Change the look&#8221; under Site Settings.</p>
<p><a href="http://allthingssharepoint.files.wordpress.com/2013/03/sitesettings1.png"><img style="background-image:none;padding-top:0;padding-left:0;margin:0 0 10px;display:inline;padding-right:0;border-width:0;" title="SiteSettings1" alt="SiteSettings1" src="http://allthingssharepoint.files.wordpress.com/2013/03/sitesettings1_thumb.png?w=244&#038;h=168" width="244" height="168" border="0" /></a></p>
<p>Besides a color- and fontscheme the following items are part of a composed look:</p>
<ul>
<li>A master page, this can also be a custom master page</li>
<li>Optionally a background image</li>
</ul>
<h2></h2>
<h3>The solution</h3>
<p>Things I like to have changed in my custom look:</p>
<ol>
<li>Some UI colors for specific elements, in this case the SuiteBar at the very top</li>
<li>Some of the fonts used</li>
<li>Add a custom background image</li>
</ol>
<p>In the end, it should look like this:</p>
<p><a href="http://allthingssharepoint.files.wordpress.com/2013/03/result.png"><img style="background-image:none;padding-top:0;padding-left:0;margin:0 0 10px;display:inline;padding-right:0;border-width:0;" title="Result" alt="Result" src="http://allthingssharepoint.files.wordpress.com/2013/03/result_thumb.png?w=431&#038;h=216" width="431" height="216" border="0" /></a></p>
<p>I like the default look, but also want to include a background image. This default look is called the Office Look and it doesn&#8217;t use any specific font. For fonts, I favour the one used for “Sea Monster”. BTW, don&#8217;t you love that theme&#8217;s name? If you want to take a look at all the different OOTB themes, take a peek under &#8220;Change the look&#8221; in your site settings.</p>
<p>Most of these tasks can be done through the UI by uploading the artifacts manually. In this case (and almost any case) I like to use Visual Studio to ensure the correct deployment of these files. Theming, at least for me, is usually done for on premise or dedicated SharePoint solutions, so I don&#8217;t mind creating Farm solutions for this task.</p>
<p>Since the schema is pretty important, it is best to start with some of the OOTB parts:</p>
<ol>
<li>First we copy the color pallette used by the Office Look, since we like most of this OOTB theme</li>
<li>Then we copy the fonts used by Sea Monster</li>
<li>And finally grab your custom background logo. Make sure you keep the size of this file <strong>under</strong> 150KB!</li>
</ol>
<p>You can download the color palette and fontscheme from the links in the &#8220;Composed Looks&#8221; settings section.</p>
<p><a href="http://allthingssharepoint.files.wordpress.com/2013/03/composedlook-1png.png"><img style="background-image:none;padding-top:0;padding-left:0;margin:0 0 10px;display:inline;padding-right:0;border-width:0;" title="ComposedLook.1png" alt="ComposedLook.1png" src="http://allthingssharepoint.files.wordpress.com/2013/03/composedlook-1png_thumb.png?w=368&#038;h=116" width="368" height="116" border="0" /></a></p>
<p>To set this up using Visual Studio 2012, we create a new Solution and make it a Farm Solution.</p>
<p><a href="http://allthingssharepoint.files.wordpress.com/2013/03/farmsolution.png"><img style="background-image:none;padding-top:0;padding-left:0;margin:0 0 10px;display:inline;padding-right:0;border-width:0;" title="FarmSolution" alt="FarmSolution" src="http://allthingssharepoint.files.wordpress.com/2013/03/farmsolution_thumb.png?w=244&#038;h=182" width="244" height="182" border="0" /></a></p>
<p>Next, we add a mapped “Images” folder for our background image.</p>
<p>Then, we add a module (or two if you are including a custom master page) to deploy our Theme and Fontscheme. Add the artifacts and rename them appropiately (companylook-palette001.spcolor and companylook-fontscheme001.font in my case)<br />
Modify the elements.xml so we deploy to the correct catalogs. Don&#8217;t forget to add GhostableInLibrary attribute!</p>
<p>This table lists the possible deployment options for our artifacts:</p>
<table width="400" border="0" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td valign="top" width="30">Master Pages</td>
<td valign="top" width="370">&lt;Module Name=&#8221;[Module Name]&#8221; Url=&#8221;_catalogs/masterpage&#8221;&gt;<br />
&lt;File Path=&#8221;[Module Name][Master Page Name].master&#8221; Url=&#8221;[Master Page Name].master&#8221; Type=&#8221;GhostableInLibrary&#8221; /&gt;<br />
&lt;/Module&gt;</td>
</tr>
<tr>
<td valign="top" width="30">Themes</td>
<td valign="top" width="370">&lt;Module Name=&#8221;[Module Name]&#8221; Url=&#8221;_catalogs/theme/15&#8243;<br />
&lt;File Path=&#8221;[Module Name][Theme Name].spcolor&#8221; Url=&#8221;[Theme Name].spcolor&#8221; Type=&#8221;GhostableInLibrary&#8221; /&gt;<br />
&lt;/Module&gt;</td>
</tr>
<tr>
<td valign="top" width="30">Fontscheme</td>
<td valign="top" width="370">&lt;Module Name=&#8221;[Module Name]&#8221; Url=&#8221;_catalogs/theme/15&#8243;<br />
&lt;File Path=&#8221;[Module Name][Theme Name].spfont&#8221; Url=&#8221;[Theme Name].spfont&#8221; Type=&#8221;GhostableInLibrary&#8221; /&gt;<br />
&lt;/Module&gt;</td>
</tr>
</tbody>
</table>
<p><em>Note: The attribute Type=&#8221;GhostableInLibrary&#8221; indicates that the item is added to the content database. The Url attribute of the module specifies where to store the file in the content database.</em></p>
<p><em></em>This is what your solution structure should look like right now:</p>
<p><a href="http://allthingssharepoint.files.wordpress.com/2013/03/structure.png"><img style="background-image:none;padding-top:0;padding-left:0;margin:0 0 10px;display:inline;padding-right:0;border-width:0;" title="Structure" alt="Structure" src="http://allthingssharepoint.files.wordpress.com/2013/03/structure_thumb.png?w=217&#038;h=244" width="217" height="244" border="0" /></a></p>
<p>To create a “Composed Look” we actually need to insert a listitem in the “Composed Looks” list. To do this we use a Feature Receiver that adds the list item with the correct field values:</p>
<p>Add a feature receiver to our solution&#8217;s feature. Set the scope to &#8220;Web&#8221;</p>
<p>Then add the following code to insert our custom list item:</p>
<pre class="brush: csharp; title: ; notranslate">
public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            var web = properties.Feature.Parent as SPWeb;
            var list = web.GetList(string.Format(&quot;{0}/_catalogs/design&quot;,web.ServerRelativeUrl));
            var item = list.AddItem();

            item[&quot;Title&quot;] = &quot;CompanyLook&quot;;
            item[&quot;Name&quot;] = &quot;CompanyLook&quot;;
            item[&quot;DisplayOrder&quot;] = 1;

            var masterPageUrl = new SPFieldUrlValue();
            masterPageUrl.Url = masterPageUrl.Description = &quot;/sites/dev/_catalogs/masterpage/seattle.master&quot;;
            item[&quot;MasterPageUrl&quot;] = masterPageUrl;

            var themeUrl = new SPFieldUrlValue();
            themeUrl.Url = themeUrl.Description = &quot;/sites/dev/_catalogs/theme/15/companylook-palette001.spcolor&quot;;
            item[&quot;ThemeUrl&quot;] = themeUrl;

            var fontSchemeUrl = new SPFieldUrlValue();
            fontSchemeUrl.Url = fontSchemeUrl.Description = &quot;/sites/dev/_catalogs/theme/15/companylook-fontscheme001.spfont&quot;;
            item[&quot;FontSchemeUrl&quot;] = fontSchemeUrl;

            var imageUrl = new SPFieldUrlValue();
            imageUrl.Url = imageUrl.Description = &quot;/_layouts/15/images/CompanyLook/Background.png&quot;;
            item[&quot;ImageUrl&quot;] = imageUrl;

            item.Update();
        }
</pre>
<p>Remember to set the DisplayOrder, otherwise you will get the default value of 100 and your look will be hidden behind the &#8220;Grey&#8221; look.</p>
<p>This takes care of the deployment of our custom theme. Site owners can now activate it using the site settings, but you can also do it using code behind with another feature receiver.</p>
<p>Add a feature and feature receiver to our solution. Again, set the scope to &#8220;Web&#8221;. Add the following code to activate the custom look:</p>
<pre class="brush: csharp; title: ; notranslate">
 public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            var web = properties.Feature.Parent as SPWeb;
            var list = web.GetList(string.Format(&quot;{0}/_catalogs/design&quot;, web.ServerRelativeUrl));

            SPQuery query = new SPQuery();
            query.ViewFields = &quot;&lt;FieldRef Name='ThemeUrl' /&gt;&lt;FieldRef Name='ImageUrl' /&gt;&lt;FieldRef Name='FontSchemeUrl' /&gt;&quot;;
            query.Query = &quot;&lt;Where&gt;&lt;Eq&gt;&lt;FieldRef Name='Name' /&gt;&lt;Value Type='Text'&gt;CompanyLook&lt;/Value&gt;&lt;/Eq&gt;&lt;/Where&gt;&quot;;

            SPListItemCollection listItems = list.GetItems(query);

            if (listItems.Count &gt;= 1)
            {
                var theme = new SPFieldUrlValue(listItems[0][&quot;ThemeUrl&quot;].ToString());
                var font = new SPFieldUrlValue(listItems[0][&quot;FontSchemeUrl&quot;].ToString());
                var image = new SPFieldUrlValue(listItems[0][&quot;ImageUrl&quot;].ToString());

                if (theme != null &amp;&amp; font != null &amp;&amp; image != null)
                {
                    // In production code, make sure the files exist before applying the theme!
                    var themeUrl = (new Uri(theme.Url)).AbsolutePath;
                    var fontSchemeUrl = (new Uri(font.Url)).AbsolutePath;
                    var imageUrl = (new Uri(image.Url)).AbsolutePath;

                    web.ApplyTheme(themeUrl, fontSchemeUrl, imageUrl, true);
                }
            }
        }
</pre>
<p>That’s it! You can download the complete Visual Studio 2012 solution <a href="https://skydrive.live.com/redir?resid=39F293CBF7E4E82E!195">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allthingssharepoint.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allthingssharepoint.wordpress.com/369/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=369&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yuriburger.net/2013/03/24/deploying-and-activating-sharepoint-2013-themes-using-visual-studio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a65f6af25145195dbc973f00d250c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yuriburger</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/03/sitesettings1_thumb.png" medium="image">
			<media:title type="html">SiteSettings1</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/03/result_thumb.png" medium="image">
			<media:title type="html">Result</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/03/composedlook-1png_thumb.png" medium="image">
			<media:title type="html">ComposedLook.1png</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/03/farmsolution_thumb.png" medium="image">
			<media:title type="html">FarmSolution</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2013/03/structure_thumb.png" medium="image">
			<media:title type="html">Structure</media:title>
		</media:content>
	</item>
		<item>
		<title>SharePoint Connections Amsterdam 2012 Slide Deck available</title>
		<link>http://yuriburger.net/2012/12/05/sharepoint-connections-amsterdam-2012-slide-deck-available/</link>
		<comments>http://yuriburger.net/2012/12/05/sharepoint-connections-amsterdam-2012-slide-deck-available/#comments</comments>
		<pubDate>Wed, 05 Dec 2012 21:23:01 +0000</pubDate>
		<dc:creator>yuriburger</dc:creator>
				<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[SharePoint 2010]]></category>

		<guid isPermaLink="false">http://yuriburger.net/?p=289</guid>
		<description><![CDATA[The slide deck from my session for SharePoint Connections Amsterdam 2012 was posted on the SPC site. Creating Sustainable Solutions With SharePoint 2013 Creating sustainable solutions is always daunting, whether you are a single developer or working as a member in a large team. Every type of project requires a specific approach, there are no [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=289&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The slide deck from my session for SharePoint Connections Amsterdam 2012 was posted on the SPC site.</p>
<h3><em>Creating Sustainable Solutions With SharePoint 2013</em></h3>
<p><em>Creating sustainable solutions is always daunting, whether you are a single developer or working as a member in a large team. Every type of project requires a specific approach, there are no silver bullets. Still, there are some considerations you should make with every new SharePoint development project to ensure proper developer workflow and the delivery of maintainable solutions.</em><br />
<em> In this session we will look at several new tools and topics around SharePoint 2013 and Team Foundation Server 2012 and how you can use them to enhance your development projects.</em><br />
<em> Topics covered:</em><br />
<em> • The correct SharePoint solution type</em><br />
<em> • Solution Lifecycle Management</em><br />
<em> • TFS supported development</em><br />
<em> • Quality Assurance</em></p>
<p>Download my slide deck here: <a href="http://allthingssharepoint.files.wordpress.com/2012/12/yuri-burgersustainable-solutions-with-sharepoint-2013.pdf">Yuri-BurgerSustainable Solutions with SharePoint 2013</a></p>
<p>To view a listing of all available slide decks from SPC Amsterdam 2012, visit the SPC site <a title="here" href="http://www.nccomms-events.com/spc2012/speaker-slides">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allthingssharepoint.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allthingssharepoint.wordpress.com/289/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=289&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yuriburger.net/2012/12/05/sharepoint-connections-amsterdam-2012-slide-deck-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a65f6af25145195dbc973f00d250c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yuriburger</media:title>
		</media:content>
	</item>
		<item>
		<title>SharePoint for the Internet &#8211; Part 1, Performance</title>
		<link>http://yuriburger.net/2012/05/12/sharepoint-for-the-internet-part-1-performance/</link>
		<comments>http://yuriburger.net/2012/05/12/sharepoint-for-the-internet-part-1-performance/#comments</comments>
		<pubDate>Fri, 11 May 2012 22:45:22 +0000</pubDate>
		<dc:creator>yuriburger</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[anonymous]]></category>
		<category><![CDATA[internet facing]]></category>

		<guid isPermaLink="false">https://allthingssharepoint.wordpress.com/?p=267</guid>
		<description><![CDATA[The last months I have been involved in a couple SharePoint internet facing projects and decided to create a list of things to consider, specific to these type of projects. But before I start, I’d like to make a few things clear: 1. There is no definite checklist for deploying SharePoint for the Internet. Every [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=267&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The last months I have been involved in a couple SharePoint internet facing projects and decided to create a list of things to consider, specific to these type of projects. But before I start, I’d like to make a few things clear:</p>
<p>1. There is no definite checklist for deploying SharePoint for the Internet. Every project is different and there are no silver bullets. In fact, it is not even a real checklist (just a list of items I’d like to consider on every internet project).</p>
<p>2. This is my checklist based on experiences with past projects, your mileage may (and will) vary <img style="border-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://allthingssharepoint.files.wordpress.com/2012/05/wlemoticon-smile.png?w=540">&nbsp;</p>
<p>3. There are so many options and configurations possible, it is not just about enabling/disabling features and options to achieve your goal. Every option should be investigated thoroughly and remember: ‘Just because you can, doesn’t mean you should’.&nbsp; </p>
<p>Since there many options to consider, I divided them in three main categories and three separate blog posts:</p>
<ul>
<li>Part 1: Performance (this post)
<li>Part 2: Security
<li>Part 3: Customization and usability </li>
</ul>
<h3>Performance</h3>
<p>Big topic for internet facing websites. While SharePoint 2010 performs a lot better compared to previous versions, performance will (and should) always be on your list.</p>
<h4>#1: Reduce page load</h4>
<ul>
<li>Remove the “Name Active X Control”. This control is used by SharePoint to show presence information (the little icon next to author names, etc.) and has no meaning on public (anonymous) web sites. You can do this through Central Administration (Web Application General Settings:</li>
</ul>
<p><a href="http://allthingssharepoint.files.wordpress.com/2012/05/image.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="http://allthingssharepoint.files.wordpress.com/2012/05/image_thumb.png?w=477&#038;h=138" width="477" height="138"></a></p>
<ul>
<li>Remove the reference to the SharePoint Workspace ActiveX from the master page (present if based on the OOTB master pages).
<li>Limit the use of Content Query Web Parts on landing pages. While this is a beautiful Web Part, it adds significantly to the page load time especially initially with uncached data. As a workaround you could use custom developed web parts or user controls to achieve your data query goals. This way you have good control of the rendered HTML and avoid the XSLT query processing part. But make sure you have some kind of caching in place.
<li>Remove the Ribbon for anonymous users. There are a couple of ways to do this, these are the most obvious ones:</li>
</ul>
<table border="1" cellspacing="0" cellpadding="2" width="640">
<tbody>
<tr>
<td valign="top" width="32">Ok?</td>
<td valign="top" width="606">Remove or hide it using CSS. Usually not the best way to do this, because the Ribbon and support files are still downloaded by the client. They are just hidden or removed from the DOM.</td>
</tr>
<tr>
<td valign="top" width="32">Better?</td>
<td valign="top" width="606">Wrap the Ribbon in a SPSecurityTrimmedControl. A far better option IMO, but there is a penalty because SharePoint needs a database round-trip to fetch the rights. </td>
</tr>
<tr>
<td valign="top" width="32">Best?</td>
<td valign="top" width="606">Use different Master Pages for anonymous users and editors. You can remove the Ribbon control and support files completely from the anonymous Master Page. Also a good option if you use Content Deployment and have separate authoring and publishing farms. On the downside, you will need to find a way to use Master Pages based on what type of user requests the page.</td>
</tr>
</tbody>
</table>
<ul>
<li>Minify jQuery and other 3rd party JavaScript libraries. Use a CDN if applicable for the libraries since this facilitates caching by browser, proxy server, etc. Remember to enable local fail-over copies.</li>
</ul>
<p>#2: Monitor Page Requests</p>
<ul>
<li>Use a network monitor or traffic inspector (like Fiddler2) to monitor the HTTP request and response associated with a page request. These type of tools make optimizing page loads a whole lot easier.
<li>Use the SharePoint Developer Dashboard to monitor processing and render times of individual components.</li>
</ul>
<p>#3: Adjust IIS Dynamic Compression</p>
<ul>
<li>By default SharePoint Web Servers have static and dynamic file compression enabled, but the compression level for dynamic files is set to “0”. This means that dynamic files don’t get compressed at all. You can adjust the compression level and the CPU threshold settings, for more information see <a href="http://technet.microsoft.com/en-us/library/cc771003(v=ws.10).aspx">Technet</a>. It is not just about enabling this, you will have to monitor performance and Web Server CPU for tuning adjustments.</li>
</ul>
<p>#4: Caching</p>
<p>SharePoint 2010 and the underlying ASP.NET offer several different methods for caching. Again no silver bullets here, and my advice: develop a caching strategy! The way you configure the different caching options totally depends on the type of content served (static versus dynamic), the audience, intended web site usage and so on. Make a note on what type of cache you configure, how you configure it and what results you expect. Once you start monitoring your site’s performance you can easily check and adjust where needed. </p>
<p>More info on this topic, see <a href="http://technet.microsoft.com/en-us/library/cc261797.aspx">Technet</a>.</p>
<ul>
<li>The BLOB cache. BLOB stands for Binary Large OBject and is a disk based storage. Files initially retrieved from the SharePoint Content Database are stored on disk and served to clients on subsequent requests. You need to think about what type of files to store, where to store them (on the web server) and what client cache life time to configure (max-age).</li>
<li>The Object cache. If you are using SharePoint’s publishing feature (and you probably are on internet facing sites), you can configure this cache. The cache stores SharePoint objects (lists, page layouts, etc.) in-memory to speed up queries on them. They require the correct configuration of what is called the “Object Cache User Accounts”, again see <a href="http://technet.microsoft.com/en-us/library/ff758656.aspx">Technet</a> for more information.</li>
<li>Output cache. Based on ASP.NET Output Caching, but with added features (which also require the SharePoint publishing feature). Usually the least popular of the three, probably because it is a little bit harder to configure correctly. There are a couple of considerations to make, so definitely take a look at the <a href="http://msdn.microsoft.com/en-us/library/aa661294.aspx">Technet</a> article. </li>
</ul>
<p>Please, feel free to comment on this topic, more coming soon.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allthingssharepoint.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allthingssharepoint.wordpress.com/267/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=267&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yuriburger.net/2012/05/12/sharepoint-for-the-internet-part-1-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a65f6af25145195dbc973f00d250c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yuriburger</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2012/05/wlemoticon-smile.png" medium="image">
			<media:title type="html">Smile</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2012/05/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Custom SharePoint Health Analyzer Rule for the ViewFormPagesLockdown feature</title>
		<link>http://yuriburger.net/2012/04/16/custom-sharepoint-health-analyzer-rule-for-the-viewformpageslockdown-feature/</link>
		<comments>http://yuriburger.net/2012/04/16/custom-sharepoint-health-analyzer-rule-for-the-viewformpageslockdown-feature/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 21:49:14 +0000</pubDate>
		<dc:creator>yuriburger</dc:creator>
				<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Health Analyzer]]></category>

		<guid isPermaLink="false">https://allthingssharepoint.wordpress.com/?p=258</guid>
		<description><![CDATA[SharePoint 2010 has a special hidden feature that ensures anonymous users with read access cannot view list and library form pages (i.e. “Forms/AllItems.aspx”). This feature is also known as SharePoint Lockdown mode and is automatically enabled on publishing sites. Especially on internet facing SharePoint sites, this feature ensures anonymous users stay out of certain area’s [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=258&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>SharePoint 2010 has a special hidden feature that ensures anonymous users with read access cannot view list and library form pages (i.e. “Forms/AllItems.aspx”). This feature is also known as SharePoint Lockdown mode and is automatically enabled on publishing sites. Especially on internet facing SharePoint sites, this feature ensures anonymous users stay out of certain area’s of a site. Since this feature is not automatically enabled on non-publishing sites, we need to find a way to check this features state on a regular basis. We could of course create a scheduled PowerShell script for this, but I like a more solid approach for this one. </p>
<p>More info on the Lockdown feature on this MSDN <a href="http://blogs.msdn.com/b/ecm/archive/2007/05/12/anonymous-users-forms-pages-and-the-lockdown-feature.aspx">blog</a> (MOSS 2007, but still applicable. By Ryan Duguid)</p>
<p>As we all know, SharePoint 2010 includes the Health Analyzer. This component uses a bunch of rules to check the farm for predefined issues and report on any found:</p>
<p><a href="http://allthingssharepoint.files.wordpress.com/2012/04/1.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="1" border="0" alt="1" src="http://allthingssharepoint.files.wordpress.com/2012/04/1_thumb.png?w=477&#038;h=93" width="477" height="93"></a></p>
<p>Fortunately, the rule set is extensible and we can add our custom ones. This is not a difficult task and a good candidate for our feature check!</p>
<p>To start we need to create a class that inherits from either the SPHealthAnalysisRule or SPRepairableHealthAnalysisRule. From these abstract classes we need to implement some string properties “Summary”, “Explanation” and “Remedy” (for explaining the issues found) and the “Category” and “ErrorLevel” properties. The “Check()” method performs the actual analysis so must be implemented too. If you want users to be able to execute a repair right from the Central Administration interface, the SPRepairableHealthAnalysisRule includes a “Repair()” method just for that. Finally we can implement the “AutomaticExecutionParameters” property to enable automatic Timer Job execution for our rule and in this case we do.</p>
<p>More detailed info on this on <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.health.sphealthanalysisrule.aspx">MSDN</a>. </p>
<p>1. We start with an Empty SharePoint Project, and deploy it as a Farm Solution. We add our Central Administration web as our Site Url.</p>
<p>2. Next we add the class that inherits from SPHealthAnalysisRule and add the necessary using statements. After implementing the abstract class our rule looks like this:</p>
<div style="margin:0;display:inline;float:none;padding:0;" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:f9759c7a-72f4-4def-b314-27c9a250cb1d" class="wlWriterEditableSmartContent">
<pre style="white-space:normal;">
<pre class="brush: csharp; pad-line-numbers: true; title: ; notranslate">
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint.Administration.Health;

namespace Blog.Examples.HealthAnalysisRule
{
     public sealed class ViewFormPagesLockDown : SPHealthAnalysisRule
    {
        public override SPHealthCategory Category
        {
            get { throw new NotImplementedException(); }
        }

        public override SPHealthCheckStatus Check()
        {
            throw new NotImplementedException();
        }

        public override SPHealthCheckErrorLevel ErrorLevel
        {
            get { throw new NotImplementedException(); }
        }

        public override string Explanation
        {
            get { throw new NotImplementedException(); }
        }

        public override string Remedy
        {
            get { throw new NotImplementedException(); }
        }

        public override string Summary
        {
            get { throw new NotImplementedException(); }
        }
    }
}
</pre>
</div>
<p>3. Next we add our logic to the Check() method to do the actual testing. This method uses two helper functions, both included in the downloadable solution:</p>
<ul>
<li>isAnonymousEnabled: checks if the Web Application has Anonymous Access turned on.</li>
<li>isFeatureActivated: checks if the FormPagesLockDown feature is activated.</li>
</ul>
<p>The method itself stores any failing Web Application and a counter which we can use for reporting the issues.</p>
<div style="margin:0;display:inline;float:none;padding:0;" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:cdd30431-240b-4f92-a016-e6fdb7e1bf84" class="wlWriterEditableSmartContent">
<pre style="white-space:normal;">
<pre class="brush: csharp; title: ; notranslate">
public override SPHealthCheckStatus Check()
{
            SPHealthCheckStatus ret = SPHealthCheckStatus.Passed;
            SPFarm farm = SPFarm.Local;
            foreach (SPService service in farm.Services)
            {
                if (service is SPWebService)
                {
                    SPWebService webService = (SPWebService)service;
                    foreach (SPWebApplication webApp in webService.WebApplications)
                    {
                        if (isAnonymousEnabled(webApp))
                        {
                            foreach (SPSite site in webApp.Sites)
                            {
                                try
                                {
                                    if (!isFeatureActivated(site, new Guid(FEATUREGUID)))
                                    {
                                        //Anonymous Access is enabled on the Web Application, but the ViewFormsLockDown feature was not found.
                                        this.failingWebApplications.Add(webApp.Name, +1);
                                    }
                                }
                                finally
                                {
                                    if (site != null)
                                    {
                                        site.Dispose();
                                    }
                                }
                            }
                        }
                    }
                }
            }
            if (this.failingWebApplications.Count == 0)
            {
                ret = SPHealthCheckStatus.Passed;
            }
            else
            {
                ret = SPHealthCheckStatus.Failed;
            }
            return ret;
 }
</pre>
</div>
<p>4. Finally implement the property “SPHealthAnalysisRuleAutomaticExecutionParameters” to enable automatic Timer Job schedules.</p>
<div style="margin:0;display:inline;float:none;padding:0;" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:2fce8e5c-f718-4163-89f7-f4300575a3b6" class="wlWriterEditableSmartContent">
<pre style="white-space:normal;">
<pre class="brush: csharp; title: ; notranslate">
public override SPHealthAnalysisRuleAutomaticExecutionParameters AutomaticExecutionParameters
{
            get
            {
                SPHealthAnalysisRuleAutomaticExecutionParameters retval = new SPHealthAnalysisRuleAutomaticExecutionParameters();
                retval.Schedule = SPHealthCheckSchedule.Daily;
                retval.Scope = SPHealthCheckScope.All;
                retval.ServiceType = typeof(SPTimerService);
                retval.RepairAutomatically = false;
                return retval;
            }
 }     
</pre>
</div>
<p>5. We now could build and deploy, but we would have to register the custom Health Analyzer rules through PowerShell. This process can be automated through SharePoint’s feature framework.</p>
<div style="margin:0;display:inline;float:none;padding:0;" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:9edcb4ea-199c-40aa-91d6-dde8aa6ca887" class="wlWriterEditableSmartContent">
<pre style="white-space:normal;">
<pre class="brush: csharp; title: ; notranslate">
 public override void FeatureInstalled(SPFeatureReceiverProperties properties)
 {
            try
            {
                Assembly currentAssembly = Assembly.GetExecutingAssembly();
                IDictionary exceptions = SPHealthAnalyzer.RegisterRules(currentAssembly);
            }
            catch (Exception ex)
            {
                throw new Exception(&quot;There was an error registering the Health Analysis rules: &quot; + ex.Message); 
            }
}
</pre>
</div>
<p>If we compile and deploy, we can see our rule in action.</p>
<p><a href="http://allthingssharepoint.files.wordpress.com/2012/04/2.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="2" border="0" alt="2" src="http://allthingssharepoint.files.wordpress.com/2012/04/2_thumb.png?w=565&#038;h=142" width="565" height="142"></a></p>
<p><a href="http://allthingssharepoint.files.wordpress.com/2012/04/image.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="http://allthingssharepoint.files.wordpress.com/2012/04/image_thumb.png?w=317&#038;h=270" width="317" height="270"></a></p>
<p>If you want the rule to report any errors, make sure you enable anonymous access on a Web Application and disable the (hidden) feature. Of course we should use PowerShell for this:</p>
<p><div style="margin:0;display:inline;float:none;padding:0;" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:50db2f08-3d59-43cf-a249-1bbbd0321852" class="wlWriterEditableSmartContent">
<pre style="white-space:normal;">
<pre class="brush: powershell; title: ; notranslate">
Disable-SPFeature -Identity ViewFormPagesLockDown -Url http://public.demo.loc
</pre>
</div>
<p>Download the complete solution <a href="https://skydrive.live.com/redir.aspx?cid=39f293cbf7e4e82e&amp;resid=39F293CBF7E4E82E!237&amp;parid=39F293CBF7E4E82E!195">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allthingssharepoint.wordpress.com/258/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allthingssharepoint.wordpress.com/258/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=258&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yuriburger.net/2012/04/16/custom-sharepoint-health-analyzer-rule-for-the-viewformpageslockdown-feature/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a65f6af25145195dbc973f00d250c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yuriburger</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2012/04/1_thumb.png" medium="image">
			<media:title type="html">1</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2012/04/2_thumb.png" medium="image">
			<media:title type="html">2</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2012/04/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Get SharePoint Health Score using PowerShell</title>
		<link>http://yuriburger.net/2012/04/03/get-sharepoint-health-score-using-powershell/</link>
		<comments>http://yuriburger.net/2012/04/03/get-sharepoint-health-score-using-powershell/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 20:55:14 +0000</pubDate>
		<dc:creator>yuriburger</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Health Score]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Throttling]]></category>

		<guid isPermaLink="false">https://allthingssharepoint.wordpress.com/?p=245</guid>
		<description><![CDATA[If you look at the HTTP headers SharePoint 2010 adds to a response you might notice the one that is called “X-SharePointHealthScore”. This special header is used in conjunction with HTTP throttling and ranges in value from 0 to 10. By default this score is calculated using two performance counters: Memory/Available Mbytes and ASP.NET/Requests Current. [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=245&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>If you look at the HTTP headers SharePoint 2010 adds to a response you might notice the one that is called “X-SharePointHealthScore”. This special header is used in conjunction with HTTP throttling and ranges in value from 0 to 10. </p>
<p><a href="http://allthingssharepoint.files.wordpress.com/2012/04/headerfiddler.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="HeaderFiddler" border="0" alt="HeaderFiddler" src="http://allthingssharepoint.files.wordpress.com/2012/04/headerfiddler_thumb.png?w=407&#038;h=122" width="407" height="122"></a></p>
<p>By default this score is calculated using two performance counters: Memory/Available Mbytes and ASP.NET/Requests Current. A value “0” indicates everything is fine, while a value of “10” indicates SharePoint will start throttling requests (if enabled). There is quite some info around explaining the workings and configuration. This blog post for instance: <a title="http://blogs.msdn.com/b/besidethepoint/archive/2010/09/13/http-request-throttling-in-sharepoint-2010.aspx" href="http://blogs.msdn.com/b/besidethepoint/archive/2010/09/13/http-request-throttling-in-sharepoint-2010.aspx">http://blogs.msdn.com/b/besidethepoint/archive/2010/09/13/http-request-throttling-in-sharepoint-2010.aspx</a> (by Josh Gavant).</p>
<p>Since this header is added to every response it can be used for different purposes, from monitoring to load balancing. I wanted to create a small “tool” to report the score without having to use a network monitor or HTTP sniffer like Fiddler. And what better way than to use PowerShell for this task?</p>
<p>The script uses a simple PowerShell function with a System.Net.WebClient object connecting to a SharePoint site and retrieving the header:</p>
<div style="margin:0;display:inline;float:none;padding:0;" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:9741335c-3196-48ca-a979-8e08d613c469" class="wlWriterEditableSmartContent">
<pre style="white-space:normal;">
<pre class="brush: powershell; pad-line-numbers: true; title: ; notranslate">
function ReadHealthScore()
{
	param([string]$url,[System.Net.NetworkCredential]$cred=$null)
	
	$wc = New-Object Net.WebClient
	
	# Include the IE9 User Agent
	$wc.Headers.Add(&quot;user-agent&quot;, &quot;Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;)&quot;)

	if($cred -eq $null)
	{
		$cred = [System.Net.CredentialCache]::DefaultCredentials;
	}
	$wc.credentials = $cred;
	$page = $wc.DownloadString($url);
	
	# This header holds the Health Score
	return $wc.ResponseHeaders.Item(&quot;X-SharePointHealthScore&quot;)
}
</pre>
</div>
<p>Combined with some logic to calculate average, minimum and maximum:</p>
<div style="margin:0;display:inline;float:none;padding:0;" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:c5b26bb8-5dd5-493b-a3de-39ca06d313bf" class="wlWriterEditableSmartContent">
<pre style="white-space:normal;">
<pre class="brush: powershell; title: ; notranslate">
# Wait in number of seconds
$wait = 1
$times = 5
$score = @()

# Set the URL to a page to avoid redirection errors
$url = &quot;http://portal.demo.loc/Pages/Default.aspx&quot;

for ($i=1; $i -lt $times+1; $i++) {
 	$score = $score + (ReadHealthScore($url))
	Write-Progress -Activity &quot;Reading HealthScore&quot; -PercentComplete (($i/$times)*100) -Status &quot;Working&quot;
  	Start-Sleep -Seconds $wait
}

$calc = $score | Measure-Object -Average -Maximum -Minimum
Write-Host (Get-Date -f o) &quot;Average:&quot;$calc.Average &quot; High:&quot;$calc.Maximum &quot; Low:&quot;$calc.Minimum
</pre>
</div>
<p>We get the following output:</p>
<p><a href="http://allthingssharepoint.files.wordpress.com/2012/04/healthscore1.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="HealthScore1" border="0" alt="HealthScore1" src="http://allthingssharepoint.files.wordpress.com/2012/04/healthscore1_thumb.png?w=535&#038;h=143" width="535" height="143"></a></p>
<p><a href="http://allthingssharepoint.files.wordpress.com/2012/04/healthscore2.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="HealthScore2" border="0" alt="HealthScore2" src="http://allthingssharepoint.files.wordpress.com/2012/04/healthscore2_thumb.png?w=537&#038;h=77" width="537" height="77"></a></p>
<p>With a little modification you can output to xml or CSV. Schedule it using Task Scheduler and you will have a nice little health reporter.</p>
<p>Download the script <a href="https://skydrive.live.com/redir.aspx?cid=39f293cbf7e4e82e&amp;resid=39F293CBF7E4E82E!236&amp;parid=39F293CBF7E4E82E!195">here</a>.</p>
<p><em>Note: since this script doesn’t use any specific SharePoint cmdlets, you can use standard Windows PowerShell.</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allthingssharepoint.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allthingssharepoint.wordpress.com/245/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=245&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yuriburger.net/2012/04/03/get-sharepoint-health-score-using-powershell/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a65f6af25145195dbc973f00d250c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yuriburger</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2012/04/headerfiddler_thumb.png" medium="image">
			<media:title type="html">HeaderFiddler</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2012/04/healthscore1_thumb.png" medium="image">
			<media:title type="html">HealthScore1</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2012/04/healthscore2_thumb.png" medium="image">
			<media:title type="html">HealthScore2</media:title>
		</media:content>
	</item>
		<item>
		<title>Core Results Web Part with configurable Ranking Model</title>
		<link>http://yuriburger.net/2011/09/01/core-results-web-part-with-configurable-ranking-model/</link>
		<comments>http://yuriburger.net/2011/09/01/core-results-web-part-with-configurable-ranking-model/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 23:15:11 +0000</pubDate>
		<dc:creator>yuriburger</dc:creator>
				<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[dotnetmag]]></category>
		<category><![CDATA[Ranking Model]]></category>

		<guid isPermaLink="false">https://allthingssharepoint.wordpress.com/?p=229</guid>
		<description><![CDATA[Ranking Models are cool. If you don’t know what they can do for you, here’s a summary: SharePoint 2010 Enterprise Search uses ranking models to determine how data is weighed and results are ranked. Out of the box SharePoint 2010 provides different models, but you can also create your own. Creating your own ranking model [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=229&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Ranking Models are cool. If you don’t know what they can do for you, here’s a summary:</p>
<p>SharePoint 2010 Enterprise Search uses ranking models to determine how data is weighed and results are ranked. Out of the box SharePoint 2010 provides different models, but you can also create your own. Creating your own ranking model allows you to tailor the results your query returns by:</p>
<ul>
<li>assigning different weights to metadata properties.
<li>include hits on custom managed properties in general search (as opposed to searching them through advanced search exclusively).</li>
</ul>
<p>There are several nice blogs out there that describe in detail how you can add your own custom ranking model. For instance this excellent blog post, which describes the process quite clear: <a title="http://calvisblog.wordpress.com/2010/06/21/custom-ranking-models-with-sharepoint-2010-background-value-and-administrative-overview/" href="http://calvisblog.wordpress.com/2010/06/21/custom-ranking-models-with-sharepoint-2010-background-value-and-administrative-overview/">http://calvisblog.wordpress.com/2010/06/21/custom-ranking-models-with-sharepoint-2010-background-value-and-administrative-overview/</a> (by Shaun O&#8217;Callaghan).</p>
<p>Applying your custom ranking model requires you to look up the GUID, export the standard OOB Core Results Web Part, modifying a web part property and uploading it again (see this previous <a href="http://allthingssharepoint.wordpress.com/2011/08/25/changing-sharepoint-2010-search-ranking-model/">post</a>). Now, that works of course, but I wanted a true end-user solution where you can configure the ranking model through the web part properties. Something like this:</p>
<p><a href="http://allthingssharepoint.files.wordpress.com/2011/09/editorpart.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="EditorPart" border="0" alt="EditorPart" src="http://allthingssharepoint.files.wordpress.com/2011/09/editorpart_thumb.png?w=191&#038;h=244" width="191" height="244"></a></p>
<h3>Extending the Core Results Web Part</h3>
<p>Note: we need to develop a SharePoint Farm Solution, because the Microsoft.SharePoint.WebPartPages.DataFormWebPart class (referenced <br />by the CoreResultsWebPart) is not available in sandbox solutions.</p>
<p>To start, we create a new web part deriving from the Core Results Web Part. The web part includes a property that allows setting the RankingModelID. It also inherits from IWebEditable needed for implementing an EditorPart (see further down).</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:2dc38e8a-ab07-44f4-925a-f358051ea929" class="wlWriterEditableSmartContent">
<pre style="white-space:normal;">
<pre class="brush: csharp; pad-line-numbers: true; title: ; notranslate">
public class EnhancedCoreResults : CoreResultsWebPart, IWebEditable
{
     [WebBrowsable(false)]
     [Personalizable(PersonalizationScope.Shared)]
     public string rankingModelID { get; set; }


 }
</pre>
</div>
<p>I want the web part properties to show the available Ranking Models so the user can select them from a dropdown list. For this to work, we cannot use regular properties and have to implement an EditorPart. The reason for this, is that regular properties don’t allow you to dynamically load values through code behind and I don’t want to hardcode the values for the dropdown list. </p>
<p>Next, create the EditorPart:</p>
<p>The EditorPart needs to get the names and values of the available ranking models. For this to work, we need to connect to our Search Service Application and fetch the available models:</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:5d3ee736-1098-4872-8fdb-fe230433690a" class="wlWriterEditableSmartContent">
<pre style="white-space:normal;">
<pre class="brush: csharp; auto-links: false; title: ; notranslate">
class EnhancedCoreResultsEditorPart:EditorPart
    {
        private DropDownList rankingModelList = new DropDownList(); 

        protected override void CreateChildControls()
        {
            base.CreateChildControls();

            RankingModelCollection rankingModels = null;

            SPServiceContext context = SPServiceContext.GetContext(SPContext.Current.Site);
            SearchServiceApplicationProxy searchApplicationProxy = context.GetDefaultProxy(typeof(SearchServiceApplicationProxy)) as SearchServiceApplicationProxy;
            SearchServiceApplicationInfo searchApplictionInfo = searchApplicationProxy.GetSearchServiceApplicationInfo();
            Guid searchApplicationID = searchApplictionInfo.SearchServiceApplicationId;
            SearchServiceApplication searchApplication = SearchService.Service.SearchApplications.GetValue&lt;SearchServiceApplication&gt;(searchApplicationID);

            Ranking ranking = new Ranking(searchApplication);
            rankingModels = ranking.RankingModels;

            foreach (RankingModel rankingModel in rankingModels)
            {
                ListItem item = new ListItem();
                item.Text = rankingModel.Name;
                item.Value = rankingModel.ID.ToString();
                rankingModelList.Items.Add(item);
            }

            this.Controls.Add(new LiteralControl(&quot;&lt;div class=\&quot;UserSectionHead\&quot;&gt;Ranking Model&lt;/div&gt;&quot;));
            this.Controls.Add(new LiteralControl(&quot;&lt;div class=\&quot;UserSectionBody\&quot;&gt;&quot;));
            this.Controls.Add(rankingModelList);
            this.Controls.Add(new LiteralControl(&quot;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&quot;));

            this.ChildControlsCreated = true;
        }
}
</pre>
</div>
<p>The EditorPart sets the web part RankingModelID using the value from our dropdown list.</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:abf13e20-020b-4340-ae3c-a60a9445fdbf" class="wlWriterEditableSmartContent">
<pre style="white-space:normal;">
<pre class="brush: csharp; title: ; notranslate">
     public override bool ApplyChanges()
        {
            EnsureChildControls();

            EnhancedCoreResults enhancedCoreResultsWebPart = (EnhancedCoreResults)this.WebPartToEdit;
            if (enhancedCoreResultsWebPart != null)
            {
                enhancedCoreResultsWebPart.rankingModelID = rankingModelList.SelectedValue; 
            }
            else
            {
                return false;
            }
            return true;
        }

        public override void SyncChanges()
        {
            EnsureChildControls();

            EnhancedCoreResults enhancedCoreResultsWebPart = (EnhancedCoreResults)this.WebPartToEdit;
            if (enhancedCoreResultsWebPart != null)
            {
                rankingModelList.SelectedValue = enhancedCoreResultsWebPart.rankingModelID;
            }
        }
</pre>
</div>
<p>Wire up the EditorPart in our custom Core Results class:</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:89ab8e3f-5ceb-4967-8ad3-6ff637c2f912" class="wlWriterEditableSmartContent">
<pre style="white-space:normal;">
<pre class="brush: csharp; title: ; notranslate">
        EditorPartCollection IWebEditable.CreateEditorParts()
        {
            List&lt;EditorPart&gt; editors = new List&lt;EditorPart&gt;();
            EnhancedCoreResultsEditorPart editorPart = new EnhancedCoreResultsEditorPart();
            editorPart.ID = &quot;EnhancedCoreResults_editorPart&quot;;
            editors.Add(editorPart);
            return new EditorPartCollection(editors);
        }

        object IWebEditable.WebBrowsableObject
        {
            get { return this; }
        }
</pre>
</div>
<p>Create the logic that actually sets the RankingModelID by overriding the ConfigureDataSourceProperties() method:</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:3cf9ed73-c443-4039-afa9-0cbcaac9636a" class="wlWriterEditableSmartContent">
<pre style="white-space:normal;">
<pre class="brush: csharp; title: ; notranslate">
     protected override void ConfigureDataSourceProperties()
        {
            if (this.ShowSearchResults)
            {
                base.ConfigureDataSourceProperties();

                if (!string.IsNullOrEmpty(rankingModelID))
                {
                    CoreResultsDatasource dataSource = this.DataSource as CoreResultsDatasource;
                    dataSource.RankingModelID = rankingModelID;
                }
            }

        }
</pre>
</div>
<p>Note: I found several articles on the web showing similar functionality by overriding the GetXPathNavigator() method and setting the ranking model through the SharedQueryManager instance. Somehow I couldn’t get this to work the way I wanted to so I decided to do it differently.</p>
<p>That’s it, build, package and deploy.</p>
<p>You can download the Visual Studio solution <a href="https://skydrive.live.com/?cid=39f293cbf7e4e82e&amp;sc=documents&amp;uc=1&amp;id=39F293CBF7E4E82E%21195#">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allthingssharepoint.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allthingssharepoint.wordpress.com/229/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=229&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yuriburger.net/2011/09/01/core-results-web-part-with-configurable-ranking-model/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a65f6af25145195dbc973f00d250c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yuriburger</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2011/09/editorpart_thumb.png" medium="image">
			<media:title type="html">EditorPart</media:title>
		</media:content>
	</item>
		<item>
		<title>Output Escaping Rich Text in a Content Query Web Part</title>
		<link>http://yuriburger.net/2011/08/25/output-escaping-rich-text-in-a-content-query-web-part/</link>
		<comments>http://yuriburger.net/2011/08/25/output-escaping-rich-text-in-a-content-query-web-part/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 16:00:23 +0000</pubDate>
		<dc:creator>yuriburger</dc:creator>
				<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Content Query Web Part]]></category>
		<category><![CDATA[escape]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[output]]></category>

		<guid isPermaLink="false">https://allthingssharepoint.wordpress.com/2011/08/25/output-escaping-rich-text-in-a-content-query-web-part/</guid>
		<description><![CDATA[If you use a SharePoint (2010) Content Query Web Part to display content from a rich text field, you will end up with escaped HTML. Because it is escaped it is rendered as content on your page, probably not what you would want. To fix this, you need to edit the ItemStyle.xsl (preferably a custom [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=215&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>If you use a SharePoint (2010) Content Query Web Part to display content from a rich text field, you will end up with escaped HTML. Because it is escaped it is rendered as content on your page, probably not what you would want.</p>
<p><a href="http://allthingssharepoint.files.wordpress.com/2011/08/11.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="1" border="0" alt="1" src="http://allthingssharepoint.files.wordpress.com/2011/08/1_thumb1.png?w=560&#038;h=106" width="560" height="106"></a></p>
<p>To fix this, you need to edit the ItemStyle.xsl (preferably a custom one, see this <a href="http://allthingssharepoint.wordpress.com/2011/07/10/code-easy-modifications-for-sharepoint-2010-part-2-the-custom-content-query-web-part-item-style/">post</a>). You would just have to add the following command to the part outputting the HTML:</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:66e29dca-d5e1-48ba-81f7-b97c99199ec8" class="wlWriterEditableSmartContent">
<pre style="white-space:normal;">
<pre class="brush: xml; title: ; notranslate">
&lt;xsl:value-of disable-output-escaping=&quot;yes&quot; select=&quot;$blah&quot;/&gt;
</pre>
</div>
<p>One other thing to watch out for, is when creating summary descriptions from these rich text fields. Say you have this text:</p>
<p>&lt;h1 class="ms-rteElement-H1"&gt;Cras porta pharetra magna eget consectetur. &lt;/h1&gt; &lt;p class="ms-rteElement-H1"&gt; &lt;/p&gt; &lt;p&gt;Etiam eget nibh eu libero dictum congue. Etiam tempor auctor lectus, at porta dolor molestie vitae.&lt;/p&gt;</p>
<p>And you want to create a summary of 150 characters with a “Read More” link. You would cut off the output rendering and potentially leave open HTML tags! And that could really screw up the user experience. So another option would be to strip all html from your output. This way you will loose the rich text markup (H1, bolds and so on), but ensure valid html output.</p>
<p>To accomplish this, you would also need to edit the ItemStyle.xsl (again preferably a custom one) and include some kind of HTML stripping function.</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:e279caa6-00d5-41fc-8b11-b8bb11cc2924" class="wlWriterEditableSmartContent">
<pre style="white-space:normal;">
<pre class="brush: xml; title: ; notranslate">
&lt;xsl:template name=&quot;Functions.RemoveHtml&quot;&gt;
    &lt;xsl:param name=&quot;String&quot;/&gt;
    &lt;xsl:choose&gt;
      &lt;xsl:when test=&quot;contains($String, '&amp;lt;')&quot;&gt;
        &lt;xsl:value-of select=&quot;substring-before($String, '&amp;lt;')&quot;/&gt;
        &lt;xsl:call-template name=&quot;Functions.RemoveHtml&quot;&gt;
          &lt;xsl:with-param name=&quot;String&quot;
            select=&quot;substring-after($String, '&amp;gt;')&quot;/&gt;
        &lt;/xsl:call-template&gt;
      &lt;/xsl:when&gt;
      &lt;xsl:otherwise&gt;
        &lt;xsl:value-of select=&quot;$String&quot;/&gt;
      &lt;/xsl:otherwise&gt;
    &lt;/xsl:choose&gt;
&lt;/xsl:template&gt;
</pre>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allthingssharepoint.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allthingssharepoint.wordpress.com/215/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=215&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yuriburger.net/2011/08/25/output-escaping-rich-text-in-a-content-query-web-part/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a65f6af25145195dbc973f00d250c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yuriburger</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2011/08/1_thumb1.png" medium="image">
			<media:title type="html">1</media:title>
		</media:content>
	</item>
		<item>
		<title>Changing SharePoint 2010 Search Ranking Model</title>
		<link>http://yuriburger.net/2011/08/25/changing-sharepoint-2010-search-ranking-model/</link>
		<comments>http://yuriburger.net/2011/08/25/changing-sharepoint-2010-search-ranking-model/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 10:51:43 +0000</pubDate>
		<dc:creator>yuriburger</dc:creator>
				<category><![CDATA[Search]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Configuring]]></category>
		<category><![CDATA[Ranking Model]]></category>

		<guid isPermaLink="false">https://allthingssharepoint.wordpress.com/2011/08/25/changing-sharepoint-2010-search-ranking-model/</guid>
		<description><![CDATA[SharePoint 2010 Enterprise Search uses ranking models to determine how data is weighed and results are ranked. Out of the box SharePoint 2010 provides nine different models, from which two are used by default. You also have the option to create your own if this is required. To see which models are registered with your [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=212&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>SharePoint 2010 Enterprise Search uses ranking models to determine how data is weighed and results are ranked. Out of the box SharePoint 2010 provides nine different models, from which two are used by default. You also have the option to create your own if this is required. To see which models are registered with your Search Service Application, you can use the following PowerShell Command:</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:fead5ab1-a5cb-4c5c-8d9b-1226bb46c771" class="wlWriterEditableSmartContent">
<pre style="white-space:normal;">
<pre class="brush: powershell; pad-line-numbers: true; title: ; notranslate">
 Get-SPEnterpriseSearchRankingModel -SearchApplication &quot;Search
 Service Application&quot;
</pre>
</div>
<p><a href="http://allthingssharepoint.files.wordpress.com/2011/08/1.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="1" border="0" alt="1" src="http://allthingssharepoint.files.wordpress.com/2011/08/1_thumb.png?w=466&#038;h=123" width="466" height="123"></a></p>
<p>The default Core Results Web Part uses the MainResultsDefaultRankingModel and the People Results Web Part uses the MainPeopleModel. To try the different models, you can just append the search results querystring with &amp;rm=&lt;guid&gt;</p>
<p>So …/Pages/peopleresults.aspx?k=john&amp;s=People&amp;rm=0bba4d7d-4f2c-4086-975a-8f9d2b6c6d53 would return people results using the NameModel.</p>
<p>If you want to permanently alter the used ranking model, you have to adjust the Results Web Part. Follow these steps to modify the normal search:</p>
<ol>
<li>Export the Core Results Web Part.</li>
<li>Add or modify the following property, for instance:<br />&lt;property name="DefaultRankingModelID" type="string"&gt;0bba4d7d-4f2c-4086-975a-8f9d2b6c6d53&lt;/property&gt;.</li>
<li>Import and re-add the web part.</li>
</ol>
<p>For people search, this unfortunately does not work very well. The People Core Results Web Part will reset your DefaultRankingModelID back to use the MainPeopleModel once you upload your web part. Just add a (hidden) Core Results Web Part to your page and configure the property that way.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allthingssharepoint.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allthingssharepoint.wordpress.com/212/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yuriburger.net&#038;blog=17822140&#038;post=212&#038;subd=allthingssharepoint&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yuriburger.net/2011/08/25/changing-sharepoint-2010-search-ranking-model/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a65f6af25145195dbc973f00d250c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yuriburger</media:title>
		</media:content>

		<media:content url="http://allthingssharepoint.files.wordpress.com/2011/08/1_thumb.png" medium="image">
			<media:title type="html">1</media:title>
		</media:content>
	</item>
	</channel>
</rss>
