SharePoint Version Feature Comparisons

I wanted to share a link with my readers that shows a very comprehensive matrix of what features are available across different versions of SharePoint; SharePoint 2007, SharePoint 2010 (no FAST search), SharePoint 2013, and last but certainly not least, Office 365.

Richard Harbridge, a Partner Technology Strategist with Microsoft is responsible for this resource, which is a highly valuable one. Please go here to see the comparison chart.

If you are looking for the most up-to-date feature matrix for SharePoint Online across its different plans (as Office 365 changes frequently), can be found here:

Stay away from my search result pages [insert search engine name here] bot!!

imageNow, this is a bit overkill, but, there are almost as many different ways a search crawler makes use of a robots.txt file as there are search engines (this may be highly over-exaggerated, but anyways…).

Now, one thing you probably do not want with your public facing site, is for the search engine to waste it’s time crawling your search pages. You don’t exactly want a high page rank for your site’s search results, do you?

What to do, what to do?

Well, if your search results pages happen to live under /search/pages/results.aspx, here is an example. This again is a bit overkill, but it should get the job done. Now the search engines can focus on what you want to be getting searched for – your content!

Some search bots allow for wildcards, some are case insensitive, some are case sensitive – hence the number of variations below. Add this into your robots.txt, and you should be good to go.

Disallow: /search/pages/results.aspx
Disallow: /Search/Pages/Results.aspx
Disallow: /Search/Pages/results.aspx
Disallow: /Search/pages/Results.aspx
Disallow: /search/Pages/Results.aspx
Disallow: /search/pages/Results.aspx
Disallow: /Search/pages/results.aspx
Disallow: /search/Pages/results.aspx
Disallow: /search/
Disallow: /Search/
sallow: /search/pages/
Disallow: /Search/Pages/
Disallow: /Search/pages/
Disallow: /search/Pages/
Disallow: /*Results.aspx
Disallow: /*results.aspx

Any additions? Please share them here in the comments!

Are you suffering from TMSTGNS (Too Much Security Trimmed Global Navigation Syndrome)?

Is your site collection acting sluggish? Seeing load times of 5-15 seconds on any page or resource? Are other web applications and site collections in your farm acting just fine? Are server resources not over utilized? You may be suffering from Too Much Security Trimmed Global Navigation Syndrome (TMSTGNS). We will walk through some background information, symptoms, diagnosis, as well as ways you can bring your site collection back to life, and still allow your users to get where they need to go.

What is the “Global Navigation”?

Also known as the Top Navigation, or the Top Link Bar in SharePoint. You see it as the horizontal navigation at the top of your pages. See the image below as a reference (highlighted in yellow):


What is the cause of TMSTGNS?

The global navigation in SharePoint is generally used to get around to sites and pages within your site collection –  based on the configuration from the Look and Feel groups in the Site Settings page for each of your sites. This is found under Site Actions > Site Settings > Look and Feel > Navigation


And once there, you can configure the dynamic nature of the menus (to automatically show subsites and pages for each of the sites, and whether or not to inherit navigation from those sites)


Also, by default, there are some settings which are not displayed on this page, which affect your navigation. Those settings are found at the site collection level under Site Actions > Site Settings > Site Collection Administration > Site collection navigation


The settings found within this little-used configuration screen are the root cause of TMSTGNS, and give the syndrome part of it’s name, Security Trimmed (ST).


As you can see in the highlighted sections above, in this screen are options to Enable security trimming, and to Enable audience targeting. What do these do you ask?

Security trimming, as the description above implies, will hide navigation links for sites or pages the user does not have access to. For instance, if only the Finance department had access to the Finance department team site, then with this option enabled, people who are in Human Resources would not see the navigation node for Finance. Now, this sounds like a great idea, right?

Audience targeting is similar. Under Site Actions > Site Settings > Look and Feel > Navigation, when you are adding a link or a header, you have the option to specify a targeted audience, so only those who are within those audiences can see those links.


Yes, it is a good idea, keep things hidden that shouldn’t be seen if you do not have access, however, as your site collection grows to hundreds of sites, each which hang off of the Global Navigation, either directly there, or, which are found one or two levels below in navigation flyouts (see image below)….


SharePoint needs to iterate through EACH AND EVERY NAVIGATION NODE, and check if the current user has access to the site, as well as if they are in the audience for that link, EVERY TIME THE NAVIGATION LOADS! That is a lot of recursive security checking, and can take time. The more sites you have, the longer this will take.

You can see this in action especially with the Developer Dashboard running when your site has one or more team sites enabled (while the example below is minimal, I’ve seen this go on in some instances for pages and pages and pages):


Now, you see for each of the navigation nodes, it takes roughly 20ms for each link (the area above with the hidden sections to protect some private data) to be checked for access and audiences, which is the EnsureListItemsData method calls shown below each link. Multiply this by the number of navigation nodes you have, and you can probably come pretty close to the amount of time it takes for your pages to load. I have literally seen CPU spikes on servers 25% and higher utilization than normal with the W3WP.exe worker processes for IIS while this operation is taking place as well. It utilizes a lot of CPU to accomplish this task.

The quick fix for this? uncheck those two boxes under the Site collection navigation configuration screen. You will notice a huge performance improvement. This means however, that all of your users can see all of the links within the Global Navigation.


But what if I need to hide links, and keep them available to the users who need them?

This is a great question, and one that I can use the classic consulting phrase on – “it depends”. You may find that you can add these links to an audience targeted web part underneath the main site they are on. This may take an extra click, but, security is not transparent. Just compare the time it takes to go through an airport now than it did before 2001. If you need security, and performance, than a small subset of your users having to make an extra click might not be so bad. Ultimately it is up to the decisions you make within your organization, and how these work-arounds can and will be carried out and implemented.

What else can I do?

There are many options other than just disabling the security and audience trimming on the global navigation. Those might be building a custom navigation control (development), to implement security trimming for links in a different manor, such as checking a list which has ONLY the links to be trimmed from the Global Navigation, rather than having to check each link.

Using a list-based navigation source with item permissions enabled – this is also security trimming, however, it is only within a single list, so performance should be better, but, it will be slower than a navigation source without any security trimming.

You may also implement multiple navigation layers, one without security trimming, and one with a custom source that is security trimmed in the master page.

As I said, there are many options – you may need to think outside the box a bit to get to the best resolution for your organization, but at the very least, your pages will be loading a lot faster when you are not suffering anymore from TMSTGNS, thus giving your end users, and yourselves, a better SharePoint experience.


Are you a survivor of TMSTGNS?

Then share your story with everyone else in the comments below about how you were able to defeat this horrible performance degrading disease.

Presentation from 12/13/11 CTSPUG

A big thank you to the Connecticut SharePoint User Group (CTSPUG) for having me down last night to deliver my presentation (slides below) on Best Practices in SharePoint Development. While the group itself has been around for 10 years (CT.Net), this was the second official SharePoint UG meeting, and I was happy to be a part of it! A big crowd too! The room was packed, and thankfully, I heard no snoring 🙂

As I mentioned at the beginning of the presentation, there are a lot of slides so you can have them for review afterwards, as we covered at lot of information. Below is a copy of the presentation on slideshare.

If you were at the session, or even wanted to attend but could not make it, please feel free to contact me in the comments below with any questions on the material.


You may be wondering why I applied such bad grammar to the title of this post, it came from a comment on this:

PowerShell is a beast. Sure, it’s hard to learn the syntax, and there are 600+ commands that come along with SharePoint 2010. But, it also gives you direct access to the API for SharePoint. Never, ever, ever, ever, ever, ever, ever, ever, ever, ever, ever, ever, ever, ever, ever, under any circumstances what-so-ever, run un-tested PowerShell code in a production environment. ever. ever. ever. ever. ever. ever. ever. ever. ever. ever. ever. ever. ever. ever. ever.

What may have worked for one person, in which they have posted it on their blog, mailing list, or company-wide fax – it should be tested first, in a non-production environment.

It may work fine, sure, but, it may also grind everything to a halt, and end your career.

In closing, re-read the above, and make it your mantra. No go fourth, SharePoint admins (and devs – yes you too), and prosper.

Description Meta Tag in SharePoint Publishing Pages

I guess the title is a bit misleading, because in SharePoint 2007 and SharePoint 2010, the Description meta tag does not exist.

After a bit of googling on Bing, I came up with several free solutions people have written, such as Waldek Mastykarz Mavention Meta Fields, WCM Utilities on Codeplex, to name a few. But the solution I landed on was so simple, so easy, so perfectly perfect, I went with it. I found it here:

Buried as an unmarked answer, within this thread. This works for both SharePoint 2007, and 2010 publishing pages, and it works well. Below is the reply I am referencing. So, Praggers, whoever you are, thank you.


A note for 2010 (and possibly 2007, I did not take the 2 minutes it would require to find out, sorry!), the “Description” field’s internal name is Comments. So be sure to change FieldName=”Description” to FieldName=”Comments” within the code for your page layout.

Thank you Praggers!

SPTechCon 2011 San Francisco Recap and Slides

Need I say more? I had never been out to San Francisco before, so, I had a couple of chances to get out and explore the city. Knocking off the following on my trip:
  • M5 Industries (Mythbusters!)
  • The Winchester Mystery House
  • Fisherman’s Wharf
  • The Golden Gate Bridge
  • Marin Headlands
    • WWII-era forts
  • Lombard Street
  • Alcatraz
Oh right, and also, there was this SharePoint Technology Conference going on. SPTechCon San Francisco was a great conference. Kudos to the BZ Media Team again for putting on one heck of a show!
I had a great time meeting new speakers, vendors, and attendees, as well as catching up with old friends, as well as go to a few great sessions.
A big thank you needs to go out to SPTechCon for having me there, as well as to all of the attendees of my sessions. Thank you for coming and hearing what I had to say, as well as hopefully learning a thing or two.
Below are my decks (WordPress does not incorporate these too good from slideshare, so please follow the links) from both of my sessions.


Just Freakin’ Work! Overcoming Hurdles and Avoiding Pain – Co-Presented with Mark Rackley


Creating Custom Actions in SharePoint 2010

Any questions or comments on the material from the conference – as well as any feedback from the session (please!), please leave it in the comments!

Quick Tip – Using the Resources List in Central Administration

Let’s face it, both in SharePoint 2007 and 2010, Central Administration does require a bit of clicking around. Some features and functionality you will use on a daily basis, but others, not so much. While the UI for Central Administration got a great overhaul, navigating around can be tedious.

Not that it is any rocket science here either, however, I rarely come across client environments where this is used at all. The list was available in 2007, as well as 2010. When you log into Central Administration, you’ll see the Resources link list web part off to the right. So the quick tip of the day is – make use of this!

For instance, if you need to get down to the user profile service administration screen… you need to do the following:

  1. Click on Application Management > Manage service applications
  2. Locate the service application, and click it
  3. Then you’re there.

However, just adding a link to the Resources list for this, and other commonly used items, saves both time and effort, especially if you have trouble locating your service applications. So just copy the URL, go back out to the main page, and add it in as a link.


More ideas? Maybe you need to look at the Job History for your web application each day. Instead of doing the following:

  1. Click on Monitoring > Check job status
  2. Clicking on Job History on the quick Launch
  3. Selecting Web Application from the View drop down

Just copy out the link, and add it into the Resources list for a quick link http://servername/_admin/TimerJobHistory.aspx?View=2

Now, there are many other possibilities to store these links – your bookmarks for example – while that works for you, it does not work for anyone else who needs access to Central Admin.

If you wanted to build a feature or two, you could also implement some Custom Actions here as well…

%d bloggers like this: