2007-07-04

SharePoint 2007 Performance and tuning tips

Here are tips & tricks for how to do tuning on your SharePoint 2007 installation to get better performance:

Different caching parameters:

  • Enable the BlobCache in web.config to create a disk cache for all pictures, style sheets and scripts that are used => Reduced database traffic.
  • Consider reducing the number of application pools used to relase more memory on the server(s). Each application pool is assigned a unique worker process which again loads the runtime => More memory for caching the "real stuff" :-)
  • Set the correct Caching profile on each web site - from the Admin page => Quicker page loads.

Web parts and customizations

  • Write your web parts and custom controls and pages such that the do as little data processing as possible before the user makes an action. => Reduces the time to load a the page that are using your web part/component.

Site structure

  • Depth of the web site hierarchy => Content by Query and other querys will run quicker

SharePoint 2007 Link Fest

Check out the following to web address (owned by 2 MVPs) for a huge amount of information and links related to SharePoint 2007 and Windows Sharepoint Services 3.0:

Creating banners and spots with rounded corners

Great articles for implementing spots with rounded corners both in EPiServer, SharePoint and other web applications. Haven't tested the solutions for browser compatibility - havenæt been nedded (so far).

2007-07-02

My memberships are pointing to the old domain address after making a domain change

We had to change the domain address for our SharePoint 2007 installation. This went well, but My memberships (for every user) still point to sites with the old domain address. Why? I don't know, and I don't know why it didn't get automatically updated. Haven't found any information on the profile memership sync job either...

If I don't find a no-code solution, I guess I must go through all the memberships of every user and change the Url's by code. Not a big deal, but... it gave me some hard time until the followin simple code fixed problem:

Membership[] memberships = userProfile.Memberships.GetItems();
foreach (Membership membership in memberships)
{
// Fix the Url
string newUrl = membership.Url.Replace(textOld.Text, textNew.Text);

// Update the membership Url
membership.MembershipGroup.Url = newUrl;

// Commit the change
membership.MembershipGroup.Commit();
}

Missing Created field in Pages, Documents and other lists after CMS content has been moved between site collections

I do not know if the reason for why the Created column becomes missing (is set to hidden in the list) after moving some migrated CMS 2002 content into a regular Pages publishing list, really is related to CMS and content migration, but ... I really can't understand why SharePoint has done this to me/us/the project, but a solution must be found. At the moment we are unable to display the Created column in the lists view, set the sorting order based on the Created column, and so on.

Using the SharePoint Manager 2007 tool written by Carsten Keutman I was able to discover the fact that
  1. Hidden = True - obviously!
  2. The CanToggleHidden = False (bollocks!) - that gave me the headache - because if it was set to True I could have used Keutman's tool there and then to fix the bug (!?!?). CanToggleHidden can't be changed - it's an internal property - or ...??

But Colin Byrne, Flexnet, had the answer : Set the internal CanToggleHidden property via reflection

string id=list.Fields.Add("NewField5",SPFieldType.Boolean,false);

SPField spfield=(SPField)list.Fields.GetField(id);

Type type = spfield.GetType();

MethodInfo mi= type.GetMethod("SetFieldBoolValue",BindingFlags.NonPublic BindingFlags.Instance);

mi.Invoke(spfield,new object[]{"CanToggleHidden", true});

spfield.Hidden=true;

spfield.Update();

Haven't tried it myself yet, but comments on the blog confirmed that it would work.

Do not change the owner of a My Site Site Collection in SharePoint 2007

If you change the owner of a My Site Site Collection for a user's (User A) My Site you will, if you put yourself as the owner, be able to administer that user's My Site, but it will also have a very nasty side effect:

If someone click on the User A in, for example, a contact web part they will be taken to YOUR MY SITE and NOT User A's My Site.

Why would i change the owner of User A's My Site in the first place? To be able to have more control and reduce the operations available to User A in his/her My Site.

This is, I guess, by design, but to me it seems to be a strange combination regular program funcionality and security ....