<?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/"
	>

<channel>
	<title>Alexander Brütt</title>
	<atom:link href="http://www.alexbruett.net/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.alexbruett.net</link>
	<description>Stuff about my work with .NET and SharePoint</description>
	<lastBuildDate>Fri, 02 Jul 2010 07:26:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>How SharePoint extensions can block your upgrade path</title>
		<link>http://www.alexbruett.net/?p=246</link>
		<comments>http://www.alexbruett.net/?p=246#comments</comments>
		<pubDate>Fri, 02 Jul 2010 07:26:16 +0000</pubDate>
		<dc:creator>Alexander Brütt</dc:creator>
				<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.alexbruett.net/?p=246</guid>
		<description><![CDATA[SharePoint extensions are a risky factor when upgrading a SharePoint farm to a new version, e.g. From SharePoint 2007 to 2010. Every SharePoint extension has a potential to no longer function in the new version. In my opinion a good upgrade strategy is this: Uninstall all extensions from your existing farm Upgrade the farm to [...]]]></description>
			<content:encoded><![CDATA[<p>SharePoint extensions are a risky factor when upgrading a SharePoint farm to a new version, e.g. From SharePoint 2007 to 2010. Every SharePoint extension has a potential to no longer function in the new version.</p>
<p>In my opinion a good upgrade strategy is this:</p>
<ol>
<li>Uninstall all extensions from your existing farm</li>
<li>Upgrade the farm to the next version</li>
<li>Upgrade each solution and reinstall it</li>
</ol>
<p>The point here is that some solutions might not be able to be upgraded because the vendor does no longer support it or your last SharePoint developer has left the company as the new SharePoint version was released. If this is the case, your site might no longer work with the new SharePoint version.</p>
<p>If your site breaks in the new SharePoint version depends on the kind of extension you use. A site will continue to work if you cannot upgrade a web part solution. But here are some kinds of solutions that cause content to be not accessible when the solution is not upgradable:</p>
<ul>
<li>Custom field definitions</li>
<li>Custom site definitions</li>
<li>Custom list definitions</li>
</ul>
<p>I recommend avoiding these kinds of solutions if possible and using site or web templates instead of definitions and using list templates instead of list definitions.</p>
<p>If you have any opinion on this please feel free to comment on this.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexbruett.net/?feed=rss2&amp;p=246</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create/Delete site collection with PowerShell</title>
		<link>http://www.alexbruett.net/?p=242</link>
		<comments>http://www.alexbruett.net/?p=242#comments</comments>
		<pubDate>Fri, 05 Feb 2010 23:40:49 +0000</pubDate>
		<dc:creator>Alexander Brütt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.alexbruett.net/?p=242</guid>
		<description><![CDATA[Today I played some minutes around with Powershell for SharePoint 2010 and easily created a new site collection and also deleted it. Create new site collection: New-SPSite  -url http://mymachine/sites/powershell -template STS#0  -OwnerAlias &#8220;mydomain\alexander.bruett“  -Name &#8220;Powershell Testsite&#8221; Delete site collection: Remove-SPSite -Identity http://hbv83025270/sites/powershell -Confirm:$False If I were an IT-Pro, I&#8217;d love this]]></description>
			<content:encoded><![CDATA[<p>Today I played some minutes around with Powershell for SharePoint 2010 and easily created a new site collection and also deleted it.</p>
<p>Create new site collection:</p>
<p><strong>New-SPSite </strong> -url <a href="http://mymachine/sites/powershell">http://mymachine/sites/powershell</a> -template STS#0  -OwnerAlias &#8220;mydomain\alexander.bruett“  -Name &#8220;Powershell Testsite&#8221;</p>
<p>Delete site collection:</p>
<p><strong>Remove-SPSite</strong> -Identity <a href="http://hbv83025270/sites/powershell">http://hbv83025270/sites/powershell</a> -Confirm:$False</p>
<p>If I were an IT-Pro, I&#8217;d love this <img src='http://www.alexbruett.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexbruett.net/?feed=rss2&amp;p=242</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ribbon Hero rocks</title>
		<link>http://www.alexbruett.net/?p=236</link>
		<comments>http://www.alexbruett.net/?p=236#comments</comments>
		<pubDate>Wed, 27 Jan 2010 23:21:08 +0000</pubDate>
		<dc:creator>Alexander Brütt</dc:creator>
				<category><![CDATA[Office]]></category>
		<category><![CDATA[Ribbon Hero]]></category>

		<guid isPermaLink="false">http://www.alexbruett.net/?p=236</guid>
		<description><![CDATA[Yesterday I stumbled about Ribbon Hero, a new addon from Microsoft Labs for Office 2007 and 2010. The idea is learning by playing and gaining achievments for using special features within Word, PowerPoint or Excel. The most funny part is the connection to facebook that lets you compare your score with your friends. http://www.officelabs.com/ribbonhero It&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I stumbled about Ribbon Hero, a new addon from Microsoft Labs for Office 2007 and 2010. The idea is learning by playing and gaining achievments for using special features within Word, PowerPoint or Excel. The most funny part is the connection to facebook that lets you compare your score with your friends.</p>
<p><a href="http://www.officelabs.com/ribbonhero" target="_blank">http://www.officelabs.com/ribbonhero</a></p>
<p>It&#8217;s not just funny, it&#8217;s also useful. The Ribbon Hero shows you very cool functions you haven&#8217;t used yet. Check it out, it&#8217;s fun. If you work in a company with lots of Office noobs, it&#8217;s a great way to educate them.</p>
<p>Good luck becoming a Ribbon hero <img src='http://www.alexbruett.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>If you want to compare your score to mine, invite me on <a title="Facebook" href="http://en-gb.facebook.com/people/Alexander-Brutt/100000440384750" target="_blank">facebook</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexbruett.net/?feed=rss2&amp;p=236</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 and Visual Studio 2010 Beta 2 target Framework problems</title>
		<link>http://www.alexbruett.net/?p=223</link>
		<comments>http://www.alexbruett.net/?p=223#comments</comments>
		<pubDate>Thu, 21 Jan 2010 21:17:10 +0000</pubDate>
		<dc:creator>Alexander Brütt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[Beta 2]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[System.Web.DataVisualization]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.alexbruett.net/?p=223</guid>
		<description><![CDATA[Today, I tried to add a reference to the assembly Microsoft.Office.Server.Search.dll and got this warning: The primary reference "Microsoft.Office.Server.Search, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL" could not be resolved because it has an indirect dependency on the framework assembly "System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v3.5". To resolve this [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I tried to add a reference to the assembly <strong>Microsoft.Office.Server.Search.dll</strong> and got this warning:</p>
<pre><span style="color: #808080;">The primary reference "Microsoft.Office.Server.Search, Version=14.0.0.0,
</span><span style="color: #808080;">Culture=neutral, PublicKeyToken=71e9bce111e9429c,
processorArchitecture=MSIL" could not be resolved because it has an
indirect dependency on the framework assembly
"System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" which could not be resolved in the
currently targeted framework. ".NETFramework,Version=v3.5". To resolve
this problem, either remove the reference
"Microsoft.Office.Server.Search,Version=14.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL" or
retarget your application to a framework version which contains
"System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35</span></pre>
<p><strong>Solution:</strong></p>
<p>Create a .reg file and add this lines:</p>
<pre><span style="color: #808080;">Windows Registry Editor Version 5.00
</span><span style="color: #808080;">[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\
v2.0.50727\AssemblyFoldersEx\Chart Controls]
@="C:\\Program Files (x86)\\Microsoft Chart Controls\\Assemblies"</span></pre>
<p>Run this file and the entry will be added to the registry. Restart Visual Studio and the warning will be gone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexbruett.net/?feed=rss2&amp;p=223</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint List vs. Database and Excel</title>
		<link>http://www.alexbruett.net/?p=219</link>
		<comments>http://www.alexbruett.net/?p=219#comments</comments>
		<pubDate>Fri, 30 Oct 2009 17:08:25 +0000</pubDate>
		<dc:creator>Alexander Brütt</dc:creator>
				<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.alexbruett.net/?p=219</guid>
		<description><![CDATA[Yesterday I had a discussion with my colleague about SharePoint lists. Some people use SharePoint to store documents and manage tasks. List data is often stored in Excel files within SharePoint like phone numbers or birthday lists. We asked us: What would be the best place to store about five linked lists with a few [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I had a discussion with my colleague about SharePoint lists. Some people use SharePoint to store documents and manage tasks. List data is often stored in Excel files within SharePoint like phone numbers or birthday lists.</p>
<p>We asked us: What would be the best place to store about five linked lists with a few hundred items. We didn&#8217;t come up with a final decision because of personal opinions so I tried to find some facts I can make my decision on.</p>
<h2>SharePoint List Benefits</h2>
<p>When you create a SharePoint List you get a couple of features a Database for example does not deliver:</p>
<ul>
<li>User interface that allows you to edit, filter, sort, group the data</li>
<li>Ability to search</li>
<li>Security management on list level and item level</li>
<li>Integration with other lists and libraries</li>
<li>Recycle bin</li>
<li>Multiple users can edit data simultaneously</li>
<li>Rich text support</li>
<li>SharePoint alerts</li>
<li>RSS</li>
<li>Select data from other systems using BDC lookup columns</li>
</ul>
<h2>SharePoint List Limitations</h2>
<h4>Electronical processing of data</h4>
<p>Automatic processing and modifying data within SharePoint lists using Event Receiver, Workflows oder Web Services is much more difficult and slower that using Excel or Databases.</p>
<h4>Accessing the data from an external system</h4>
<p>SharePoint lists cannot be accessed from systems outside of SharePoint very easily. You will have to fight security and the web services of SharePoint. If this is the case a dedicated database might be the best option even if you have to create a user interface for the data management. With SharePoint 2010 it looks like this will become veery easy without coding.</p>
<h4>Complex relations between tables</h4>
<p>Relations between SharePoint lists is something I try to avoid if there is some potential that things might grow.</p>
<h2>Conclusion</h2>
<p>I still am not sure where to store 5 linked lists with a few hundred items. But I do see lots of reasons to use SharePoint lists.</p>
<p>I will add more facts while the discussion goes on. If you have any suggestions, feel free to add your comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexbruett.net/?feed=rss2&amp;p=219</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint Performance Checklist</title>
		<link>http://www.alexbruett.net/?p=189</link>
		<comments>http://www.alexbruett.net/?p=189#comments</comments>
		<pubDate>Mon, 07 Sep 2009 18:34:55 +0000</pubDate>
		<dc:creator>Alexander Brütt</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[blobcache]]></category>
		<category><![CDATA[Caching]]></category>
		<category><![CDATA[Object cache]]></category>
		<category><![CDATA[output cache]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://www.alexbruett.net/?p=189</guid>
		<description><![CDATA[I&#8217;ve made lots of performance tunings during the last weeks and figured out that this can be a weird, long and complex task. On the one hand there are many built-in mechanism that can be configured and on the other hand there are lots of things you shound pay attention to when you develop your [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve made lots of performance tunings during the last weeks and figured out that this can be a weird, long and complex task. On the one hand there are many built-in mechanism that can be configured and on the other hand there are lots of things you shound pay attention to when you develop your own web parts.</p>
<p>I&#8217;ve assmebled a little checklist you can walk through. I do not cover everything in detail but I&#8217;ve linked a couple of online posts and articles where you can start reading if you need more information on specific tasks.</p>
<table border="0">
<tbody>
<tr>
<td valign="top"><img class="alignnone size-full wp-image-191" title="checkbox" src="http://www.alexbruett.net/wp-content/uploads/2009/07/checkbox.jpg" alt="checkbox" width="35" height="35" /></td>
<td valign="top">
<h2>Limit global Navigation &amp; Permission breaks</h2>
<p>If you have a collaboration site collection with individual permissions on each website or at list level then your navigation controls can slow down your sharepoint performance. SharePoint has to check your permissions for each item listed in the navigation controls what can be very time consuming. Because the global navigation is placed on every web site this impacts your whole site collection.</p>
<p>So if you have lots of permission breaks either limit the items displayed by the navigation controls and eleminate the default navigation treeview or implement your custom navigation provider using caching mechanisms and activate object caching.</td>
</tr>
<tr>
<td valign="top"><img class="alignnone size-full wp-image-191" title="checkbox" src="http://www.alexbruett.net/wp-content/uploads/2009/07/checkbox.jpg" alt="checkbox" width="35" height="35" /></td>
<td valign="top">
<h2>Activate Blob Cache</h2>
<p>The blob cache can be used to reduce the round trips between the WFE and the database server. If activated, all images stored within the site collection are cached on the hard disk of the WFE server. The blob cache can only be configured within the web.config of each web application.</p>
<p>Another big point of the blob cache ist the max-age attribute. It tells the browser not to request that image again for a given period of time. So you can use this attribute to reduce the requests between the browser and the WFE.</p>
<p>In the web.config file search for the &lt;BlobCache &#8230;&gt; section and set it to the following example:</p>
<pre id="ctl00_MTContentSelector1_mainContentContainer_ctl33xml" style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #dddddd; border-top-color: #c8cdde; border-top-style: solid; border-top-width: 1px; padding-left: 5px; padding-right: 5px; padding-top: 5px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; display: block; font-family: Courier, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: #000066; word-wrap: break-word; overflow-x: hidden; overflow-y: hidden; white-space: pre-wrap; background-position: initial initial;"><span style="color: blue;">&lt;</span><span style="color: maroon;">BlobCache</span> location="C:\blobCache" path="\.(gif|jpg|png|css|js)$" maxSize="10" max-age="86400" enabled="true"<span style="color: blue;">/&gt;</span></pre>
<p>Now the cache is enabled and the files with the defined extensions are stored on WFE hard disk and the browser will not rerequest them for about 24 hours.</p>
<p>Selvagan posted a great <a title="Blob Cache" href="http://blogs.msdn.com/selvagan/archive/2008/12/11/blobcache-moss.aspx" target="_blank">article about the blob cache</a>.</p>
<p><span style="text-decoration: underline;">Tip:</span> Store the cached files on a different hard disk as the web server to maximize the I/O throughput.</p>
<p>If you want to clear the blob cache on all WFE servers at once you need this <a title="Farm-Wide Blob Cache Solution" href="http://blobcachefarmflush.codeplex.com/" target="_blank">codeplex solution</a>.</td>
</tr>
<tr>
<td valign="top"><img class="alignnone size-full wp-image-191" title="checkbox" src="http://www.alexbruett.net/wp-content/uploads/2009/07/checkbox.jpg" alt="checkbox" width="35" height="35" /></td>
<td valign="top">
<h2>Activate Output Cache</h2>
<p>Output caching enables SharePoint to cache HTML markup of Web Parts or complete web pages. This makes sense most if you have a publishing page with anonymous access enabled. If you enable output caching on a site with authenticated users the output is cached for each user individually. This can become a memory issue.</p>
<p>Read more in the output caching secion of this <a title="How to Optimize a SharePoint Server 2007 Web Content Management Site for Performance" href="http://msdn.microsoft.com/en-us/library/bb727371.aspx" target="_blank">MSDN article</a>.</td>
</tr>
<tr>
<td valign="top"><img class="alignnone size-full wp-image-191" title="checkbox" src="http://www.alexbruett.net/wp-content/uploads/2009/07/checkbox.jpg" alt="checkbox" width="35" height="35" /></td>
<td valign="top">
<h2>Activate Object Cache</h2>
<p>SharePoint can cache objects like navigation elements and Cross-list query results. This should be activated on every SharePoint site. Microsoft has posted <a title="Configure object cache settings." href="http://office.microsoft.com/en-us/sharepointserver/HA101577831033.aspx" target="_blank">an article</a> on how to activate and configure the object cache.</td>
</tr>
<tr>
<td valign="top"><img class="alignnone size-full wp-image-191" title="checkbox" src="http://www.alexbruett.net/wp-content/uploads/2009/07/checkbox.jpg" alt="checkbox" width="35" height="35" /></td>
<td valign="top">
<h2>Indexing of columns</h2>
<p>If you have large list views that are ordered or filtered you should place an index on those list columns where you set the filter on. An index can also increase the performance if you have a lookup field with many items in the lookup list.</p>
<p>Have a look at this <a title="Manage lists and libraries with many items" href="http://office.microsoft.com/en-us/sharepointtechnology/HA101736671033.aspx" target="_blank">Microsoft article on managing lists and libraries with many items</a> and read the Microsoft White Paper: <a title="Microsoft White Paper: Working with large lists in Office SharePoint Server 2007" href="http://technet.microsoft.com/en-us/library/cc262813.aspx" target="_blank">Working with large lists in Office SharePoint Server 2007</a>.</p>
<p>Andreas Grabner wrote an article on <a title="List column indexing under the hood" href="http://blog.dynatrace.com/2009/01/28/sharepoint-list-performance-how-list-column-indices-really-work-under-the-hood/" target="_blank">how list column indexing works under the hood</a>.</td>
</tr>
<tr>
<td valign="top"><img class="alignnone size-full wp-image-191" title="checkbox" src="http://www.alexbruett.net/wp-content/uploads/2009/07/checkbox.jpg" alt="checkbox" width="35" height="35" /></td>
<td valign="top">
<h2>Be careful using the Content Query Web Part</h2>
<p>If you use the Content Query Web Part to collect data from large lists or from your whole site collection you have to be knowing what&#8217;s happening in detail. You can increase CQWP performance using object cache and implementing your own CQWP. Ranjan Banerji wrote a <a title="Content Query Performance" href="http://techblog.ranjanbanerji.com/post/2007/07/16/Content-Query-Web-Part-(CQWP)-SharePoint-2007-Performance.aspx" target="_blank">great article on content query web part performance</a>.</td>
</tr>
<tr>
<td valign="top"><img class="alignnone size-full wp-image-191" title="checkbox" src="http://www.alexbruett.net/wp-content/uploads/2009/07/checkbox.jpg" alt="checkbox" width="35" height="35" /></td>
<td valign="top">
<h2>Use Warmup Timer Job</h2>
<p>If you restart your server for maintenance or reset your IIS during a solution deployment all your web applications are shut down. Now, when the first user requests your website it takes up to a couple of minutes until the web application is reloaded and caches are filled. It would be nice if theres someone who takes a browser and calls every website before the first user does.</p>
<p><a title="Warmup jour sharepoint servers" href="http://blogs.msdn.com/joelo/archive/2006/08/13/697044.aspx" target="_blank">Joel Oleson</a> wrote a <a title="Warm up your sharepoint servers" href="http://blogs.msdn.com/joelo/archive/2006/08/13/697044.aspx" target="_blank">post</a> about a script that acts like that &#8220;someone&#8221; and triggers all websites of your site.</p>
<p><a title="Warmup Timer Job" href="http://msdn.microsoft.com/en-us/library/cc406686.aspx" target="_blank">Andrew Connell</a> write a <a title="Warmup Timer Job" href="http://msdn.microsoft.com/en-us/library/cc406686.aspx" target="_blank">post</a> on how to implement the script as a timer job. You can <a title="Download Warmup Timer Job" href="http://code.msdn.microsoft.com/SharePointWarmupJob" target="_blank">download the timer job from msdn</a>.</td>
</tr>
<tr>
<td valign="top"><img class="alignnone size-full wp-image-191" title="checkbox" src="http://www.alexbruett.net/wp-content/uploads/2009/07/checkbox.jpg" alt="checkbox" width="35" height="35" /></td>
<td valign="top">
<h2>Watch your crawler</h2>
<p>A misconfigured crawler can push your server cpu usage to 100%  from dusk till dawn. This can happen very quickly if you have an intranet website with lots of members creating new content and uploading tons of documents. Then the crawl duration is growing very quickly.</p>
<p>For example if you scheduled your crawler to run every 30 minutes and the crawl duration is longer than 30 minutes your server is crawling all the day. So you should check the crawl log periodically. If your crawl duration becomes too long you have to reconfigure your crawl schedule and crawl your content only once every two hours. If your search index may not be out of date for more than 30 minuts you have to add more search server to the farm.</p>
<p>Patrick Thisseghem wrote a great book about the SharePoint search and indexing engine: <a title="Book at Amazon" href="http://www.amazon.com/Inside-Index-Search-Engines-PRO-Developer/dp/0735625352/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1251572413&amp;sr=8-1" target="_blank">Inside the Index and Search Engines: Microsoft Office SharePoint Server 2007</a></td>
</tr>
<tr>
<td valign="top"><img class="alignnone size-full wp-image-191" title="checkbox" src="http://www.alexbruett.net/wp-content/uploads/2009/07/checkbox.jpg" alt="checkbox" width="35" height="35" /></td>
<td valign="top">
<h2>Use tools to measure site request performance</h2>
<p>Use tools like <a title="Fiddler" href="http://www.fiddler2.com/fiddler2/" target="_blank">Fiddler</a>, <a title="YSlow" href="https://addons.mozilla.org/de/firefox/addon/5369" target="_blank">YSlow</a> and <a title="Firebug" href="https://addons.mozilla.org/de/firefox/addon/1843" target="_blank">Firebug</a> to find out whats going on between the browser and your SharePoint server.  Find out if there are long waiting times, too many server requests or ineffective java scripts slowing down your website. Use these tools to check if blob caching works.</p>
<p>SharePoint works best if used with Microsoft Internet Explorer but I love the Firefox plugins YSlow and Firebug because they are very easy to use, detailed and give lots of hints if your performance is bad.</td>
</tr>
<tr>
<td valign="top"><img class="alignnone size-full wp-image-191" title="checkbox" src="http://www.alexbruett.net/wp-content/uploads/2009/07/checkbox.jpg" alt="checkbox" width="35" height="35" /></td>
<td valign="top">
<h2>Measure your Web Part performance</h2>
<p>Every custom web part can slow down your SharePoint website. The SharePoint API often performes not as expected and this can impact your Web Part performance. Use the <a title="Stopwatch" href="http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx" target="_blank">Stopwatch</a> class in your web part to measure critical code parts and write the results into the web part. Implement a Web Part property to switch on/off the stopwatch results.</p>
<p>There are developers out there saying perfomance measures should be part of productive code and rather be made using unit tests or console applications. Those developers are basically right but might have never been to the wild west of SharePoint. A Web Part lives within a SharePoint site and no unit test or console application can simulate that so you have to use your productive web part to make performance tests.</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.alexbruett.net/?feed=rss2&amp;p=189</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What to do if SharePoint throws &#8220;500 Internal Server Error&#8221;?</title>
		<link>http://www.alexbruett.net/?p=175</link>
		<comments>http://www.alexbruett.net/?p=175#comments</comments>
		<pubDate>Thu, 28 May 2009 09:30:23 +0000</pubDate>
		<dc:creator>Alexander Brütt</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[500]]></category>
		<category><![CDATA[Logging]]></category>
		<category><![CDATA[Server Error]]></category>

		<guid isPermaLink="false">http://www.alexbruett.net/?p=175</guid>
		<description><![CDATA[Yesterday we added a new server to the SharePoint farm. When calling a site over that new server we got an 500 Internal Server Error. There was no entry in the EventLog and even no information in the server log files. We wer trying lots of things but nothing got better. So what could we do to [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday we added a new server to the SharePoint farm. When calling a site over that new server we got an <strong>500 Internal Server Error</strong>. There was no entry in the EventLog and even no information in the server log files. We wer trying lots of things but nothing got better. So what could we do to get more information?</p>
<p>We changed the diagnostics logging level from <strong>Unexpected</strong> to <strong>Verbose</strong>:</p>
<p><img class="size-full wp-image-176" title="Diagnostics Logging Level" src="http://www.alexbruett.net/wp-content/uploads/2009/05/logging_level.png" alt="Diagnostics Logging Level" width="452" height="170" /></p>
<p>(Central Administration &gt; Operations &gt; Diagnistic Logging)</p>
<p>Then we recalled the website and finally got an error in the log files:</p>
<pre>"Cannot make a cache safe URL for "init.js", file not found.
Please verify that the file exists under the layouts directory."</pre>
<p>The file is part of every language pack so in our case we did not install a language pack on the new server that is used by the site.</p>
<p>Although this is a simple option to get more error information it&#8217;s forgotten or overseen very often.</p>
<div>Alex</div>
]]></content:encoded>
			<wfw:commentRss>http://www.alexbruett.net/?feed=rss2&amp;p=175</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint Groups vs. Active Directory Groups</title>
		<link>http://www.alexbruett.net/?p=158</link>
		<comments>http://www.alexbruett.net/?p=158#comments</comments>
		<pubDate>Mon, 18 May 2009 22:20:38 +0000</pubDate>
		<dc:creator>Alexander Brütt</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Active Directory Groups]]></category>
		<category><![CDATA[Advantages]]></category>
		<category><![CDATA[Disadvantages]]></category>
		<category><![CDATA[SharePoint Groups]]></category>

		<guid isPermaLink="false">http://www.alexbruett.net/?p=158</guid>
		<description><![CDATA[I&#8217;ve discussed this topic quite often during the last months. After those discussions I figured out that its more a question when to use what kind of group rather than what kind is better than the other. In this post I just write down some advantages and disadvantages of the group types and let you [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve discussed this topic quite often during the last months. After those discussions I figured out that its more a question when to use what kind of group rather than what kind is better than the other. In this post I just write down some advantages and disadvantages of the group types and let you choose what kind fits better for your needs.</p>
<table border="0" width="100%">
<tbody>
<tr>
<td colspan="2"><strong>SharePoint Group</strong></td>
<td colspan="2"><strong>Active Directory Group</strong></td>
</tr>
<tr>
<td width="20" valign="top"><img class="alignnone size-full wp-image-160" title="plus" src="http://www.alexbruett.net/wp-content/uploads/2009/05/plus.png" alt="plus" width="16" height="17" /></td>
<td valign="top">Members of this group can be added/removed from within SharePoint. The permission to add or remove users from the group can be delegated to SharePoint users.</td>
<td width="20" valign="top"><img class="alignnone size-full wp-image-160" title="plus" src="http://www.alexbruett.net/wp-content/uploads/2009/05/plus.png" alt="plus" width="16" height="17" /></td>
<td valign="top">Members of this group can be managed within Active Directory. Only Active Directory administrators have the permission to modify group memberships.</td>
</tr>
<tr>
<td width="20" valign="top"><img class="alignnone size-full wp-image-160" title="plus" src="http://www.alexbruett.net/wp-content/uploads/2009/05/plus.png" alt="plus" width="16" height="17" /></td>
<td valign="top">Members of this group can be visible to users.</td>
<td width="20" valign="top"><img class="alignnone size-full wp-image-160" title="plus" src="http://www.alexbruett.net/wp-content/uploads/2009/05/minus.png" alt="minus" width="16" height="17" /></td>
<td valign="top">Members of this group are not visible to users.</td>
</tr>
<tr>
<td width="20" valign="top"><img class="alignnone size-full wp-image-160" title="plus" src="http://www.alexbruett.net/wp-content/uploads/2009/05/minus.png" alt="minus" width="16" height="17" /></td>
<td valign="top">Cannot contain another SharePoint group as member.</td>
<td width="20" valign="top"><img class="alignnone size-full wp-image-160" title="plus" src="http://www.alexbruett.net/wp-content/uploads/2009/05/plus.png" alt="plus" width="16" height="17" /></td>
<td valign="top">Can contain another Active Directory Group.</td>
</tr>
<tr>
<td width="20" valign="top"><img class="alignnone size-full wp-image-160" title="minus" src="http://www.alexbruett.net/wp-content/uploads/2009/05/minus.png" alt="plus" width="16" height="17" /></td>
<td valign="top">Must have a unique name on site collection level. The name is the unique identifier of the group.</td>
<td width="20" valign="top"><img class="alignnone size-full wp-image-160" title="plus" src="http://www.alexbruett.net/wp-content/uploads/2009/05/minus.png" alt="minus" width="16" height="17" /></td>
<td valign="top">Can cause serious problems in lage scale scenarios: A user might only be a member of 1024 Active Directory groups (recoursively). If this number is reached the user is no longer able to log on to Windows.<br />
Read the <a href="http://download.microsoft.com/download/8/f/3/8f36dfe4-47d0-4775-ad5a-5614384921aa/AccessTokenLimitation.doc" target="_blank">Microsoft documentation</a> for more information.</td>
</tr>
<tr>
<td width="20" valign="top"><img class="alignnone size-full wp-image-160" title="plus" src="http://www.alexbruett.net/wp-content/uploads/2009/05/plus.png" alt="plus" width="16" height="17" /></td>
<td valign="top">Can contain SharePoint users that do not exist in the Active Directory.</td>
<td width="20" valign="top"></td>
<td valign="top"></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.alexbruett.net/?feed=rss2&amp;p=158</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Create SPFieldLookup programatically</title>
		<link>http://www.alexbruett.net/?p=153</link>
		<comments>http://www.alexbruett.net/?p=153#comments</comments>
		<pubDate>Sat, 21 Feb 2009 00:21:19 +0000</pubDate>
		<dc:creator>Alexander Brütt</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SPFieldLookup]]></category>

		<guid isPermaLink="false">http://www.alexbruett.net/?p=153</guid>
		<description><![CDATA[There aren&#8217;t many posts describing how to add a SPFieldLookup column to a list programatically. Here&#8217;s how I do it: I have a list named &#8220;MyList&#8221; and I have a list named &#8220;MyLookupList&#8221;. I want to create a lookup column within &#8220;MyList&#8221; looking up values from &#8220;MyLookupList&#8221;. SPList myList = web.Lists&#91;&#34;MyList&#34;&#93;; SPList myLookupList = web.Lists&#91;&#34;MyLookupList&#34;&#93;; [...]]]></description>
			<content:encoded><![CDATA[<p>There aren&#8217;t many posts describing how to add a SPFieldLookup column to a list programatically. Here&#8217;s how I do it:</p>
<p>I have a list named &#8220;MyList&#8221; and I have a list named &#8220;MyLookupList&#8221;. I want to create a lookup column within &#8220;MyList&#8221; looking up values from &#8220;MyLookupList&#8221;.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">SPList myList <span style="color: #008000;">=</span> web.<span style="color: #0000FF;">Lists</span><span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;MyList&quot;</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
SPList myLookupList <span style="color: #008000;">=</span> web.<span style="color: #0000FF;">Lists</span><span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;MyLookupList&quot;</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
&nbsp;
myList.<span style="color: #0000FF;">Fields</span>.<span style="color: #0000FF;">AddLookup</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Lookup&quot;</span>, myLookupList.<span style="color: #0000FF;">ID</span>, <span style="color: #0600FF;">false</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
SPFieldLookup fieldLookup <span style="color: #008000;">=</span> myList.<span style="color: #0000FF;">Fields</span><span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;Lookup&quot;</span><span style="color: #000000;">&#93;</span> <span style="color: #0600FF;">as</span> SPFieldLookup<span style="color: #008000;">;</span>
<span style="color: #008080; font-style: italic;">// Display Title Column in lookup field </span>
<span style="color: #008080; font-style: italic;">// (this is shown by default but this way you can change it)</span>
fieldLookup.<span style="color: #0000FF;">LookupField</span> <span style="color: #008000;">=</span> 
  myLookupList.<span style="color: #0000FF;">Fields</span><span style="color: #000000;">&#91;</span>SPBuiltInFieldId.<span style="color: #0000FF;">Title</span><span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">InternalName</span><span style="color: #008000;">;</span>
fieldLookup.<span style="color: #0000FF;">Update</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.alexbruett.net/?feed=rss2&amp;p=153</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Low budget SharePoint Services 3.0 Development Environment</title>
		<link>http://www.alexbruett.net/?p=148</link>
		<comments>http://www.alexbruett.net/?p=148#comments</comments>
		<pubDate>Mon, 09 Feb 2009 19:08:01 +0000</pubDate>
		<dc:creator>Alexander Brütt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.alexbruett.net/?p=148</guid>
		<description><![CDATA[I tried to set up a development environment for SharePoint programming at home on my machine and found out that this isn&#8217;t a trivial task if you don&#8217;t want to use evaluation software and do not want to invest more than 1000 $. The big cost factors are operating system and devlopment environment: Windows Web [...]]]></description>
			<content:encoded><![CDATA[<p>I tried to set up a development environment for SharePoint programming at home on my machine and found out that this isn&#8217;t a trivial task if you don&#8217;t want to use evaluation software and do not want to invest more than 1000 $.</p>
<p>The big cost factors are operating system and devlopment environment:</p>
<ul>
<li>Windows Web Server 2008</li>
<li>Visual Studio 2008 Standard</li>
</ul>
<div>First I evaluated Windows Home Server but this edition would format all drives during setup. Not a good choice if you want to use multiple Windows Systems on the same machine.</div>
<div>I&#8217;m not sure if it&#8217;s possible to build SharePoint extensions with Visual Studio Express. As long as many Visual Studio extensions do not work with VS Express I&#8217;d prefer Visual Studio Standard (or higher).</div>
<p></p>
<div>All else needed for SharePoint Services development is available for free:</div>
<div>
<ul>
<li>SharePoint Service 3.0</li>
<li>Visual Studio Extensions for SharePoint Services 1.2 or 1.3</li>
<li>Tools</li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.alexbruett.net/?feed=rss2&amp;p=148</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
