Archive for December 2008

My Year in Reflection and New Years Resolutions

December 31, 2008

So I decided to take a quick glance back over the past year and some of the big things I was able to do related to SharePoint. This is really for me to see if I can summarize and also to record my goals for next year.

My Year in Review:

1. Created this blog!

After working for several years with a SharePoint ISV specialist I decided to part ways to enhance my professional and personal growth. This also meant I could blog freely about SharePoint and was one of those things I made sure the Company I work for has no problems with it.

With less than half a year and 88 posts now I have really enjoyed blogging about SharePoint

For Reference:
I also created a sister blog that I intend to update more often here (for non SharePoint specific stuff):

2. Became active in the SharePoint forums!

One of those things I have always been thankful for was the assistance of the SharePoint community. For the very same reason listed above I became involved in the SharePoint forums and have really enjoyed the interaction and learning that comes from it.

It was very exciting getting those little forum medals, and finally making it into the top answerers list in the area I normally respond.

I think it’s also important to point out (and it’s probably repeated everywhere) that Mike Walsh’s dedication to helping the forums, people, and keeping things organized is nothing short of spectacular. At least in the area’s I posted he helped guide and enhance the usability, and experience of the forum for me and everyone else greatly.

Thank you Mike!

For Reference:
Mike Walsh is a SharePoint MVP who also maintains a wonderful collection of FAQ’s for WSS located here:

The general SharePoint forum I reference is located here:

3. Achieved More SharePoint Certifications

I have been so far behind in getting my Microsoft Certifications. In fact I have scheduled 3 exams and blew all of them off to work on projects and get them delivered before the deadline. After I made the blog and got involved in the community I decided I had better get my remaining SharePoint Certifications for MCTS and have grabbed two more of them in the past months.

Only one more to go (Microsoft Office SharePoint Server – Application Development) set in January and I will have all the SharePoint certifications for MCTS. 🙂

For Reference:
Office SharePoint Server 2007, Configuring –
Windows SharePoint Services 3.0, Configuring –
Microsoft Windows SharePoint Services 3.0 – Application Development –
Microsoft Office SharePoint Server 2007 – Application Development –

4. Had another SharePoint Full Year

Implemented many more SharePoint portals, trained users on SharePoint from the basics of using the interface to the deep down work of creating application definition files for the BDC, or developing SharePoint solutions, got to do more SharePoint presentations for clients, internal staff, friends, and at conferences, and even got the opportunity to explore Microsoft Dynamics, PerformancePoint and many other Microsoft technologies.

My Goals for Next Year:

1. Continue to blog away!

I want to see if I can find more time to make better posts, and hopefully more beneficial ones. The posts this year were almost half serving as a reminder/storehouse for me to double check something or communicate something and I don’t think I created enough worthwhile or ‘new’ content.

2. Try and get more active in the forums!

Right now its a struggle to find the time to review forum posts and try and answer questions. I haven’t spent much time in the development forums, design forums, or configuration forums. So one of my new goals is to work out a better schedule for helping the community and assisting the other pockets more than focus on general SharePoint Questions.

3. Get that last SharePoint Certification and at least 4 other ones next year.

I realized that not getting my SharePoint Certifications earlier was just procrastinating. When I took the last two I didn’t have time to study, and had no problems getting the certs. To keep me up to date (certification wise) to what I know; I will make sure I get at least 4 other Microsoft Certifications next year as well.

4. Visit the Toronto SharePoint User Group Meetings, and Attend Conferences More

I really need to get to some of the Toronto SharePoint User Group Meetings more. With some of them being done in Mississauga now it should be alot easier (since traffic and downtown Toronto still scare me :P) and I want to try and attend more of the SharePoint conferences going on around Canada, and maybe even some US ones.

5. Learn more about PerformancePoint, Microsoft Dynamics (especially CRM), and a few other juicy Microsoft Products beyond how they work with SharePoint.

At this point I know a bit about many other Microsoft products in terms of how they can work with SharePoint, but I don’t know a lot about them individually. Initial plan is something like training session and (hopefully) Certification in the first months of next year for PerformancePoint and Dynamics some time after that.

Thank you everyone for helping me have a terrific year, and hope you all the best in the next one.
Richard Harbridge

9 Year Old Becomes MCP (Passes Certification Exam)

December 24, 2008

A nine year old girl from India becomes an MCP with Microsoft.

Cute, and a wonderful thing. I love interesting surprises like this.
No idea what exam she passed yet though, I am curious. If anyone finds out please let me know.

Merry Christmas everyone,
Richard Harbridge

SharePoint Support, Service Level Agreements and Rambling

December 23, 2008

This post is for customers who are looking at getting, creating, or purchasing a SharePoint support agreement (from a third party) or for ISV’s, or providers of support for SharePoint looking to create a support agreement.

I have been really busy and haven’t had the chance to visit the forums as much as I used to, but had the opportunity of trying to answer a question today which I enjoyed. The question was looking for SharePoint Support Agreement pointers, or help. I have decided to post a collection (a bit nicer than my responses) here for anyone else who might have a similar requirement or inquiry.

It is very important to understand the target and who you represent in a support agreement fully. This is because the type of agreement, style, and content will be radically different based on the kind of support you are offering/agreeing to.

Summary of (High Level) Recommendations:

  1. Understand what your role in the agreement will be.
  2. Clearly identify the requirements, response times, and processes.
  3. Represent both parties interests in the agreement.

Summary of (Low Level) Recommendations:

  1. Identify the browser level support.
  2. Plan and follow (as best you can) the Best Practices for SharePoint.
  3. Don’t do it all by yourself. (For the supporter.)
  4. Create multiple levels or tiers of support.
  5. Outline methods for measurement and performance monitoring/reporting.
  6. Outline all the dependencies.
  7. Outline responsibilities for other parties, the end users, site administrators (or super users), and of course your own staff/support teams.
  8. Make it easy for the end user to get support.
  9. The agreement must change, grow, and evolve.
  10. Don’t forget cost, money, and to sign something in agreement, like the SLA.

My first Recommendation: Understand what your role in the agreement will be.

In any effective SharePoint deployment a governance model will be put into place which should outline technical teams, business drivers, communication plans, training, roles and responsibilities and of course support.

Let’s say that you supply IT support to this organization which uses SharePoint. You must identify whether you would be responsible for training, adjusting permissions, handling user questions such as – How do I move documents around in a document library – or whether you will monitor the server farm (web front ends, sql servers, index servers, etc), upgrade the server farm, work with the organization to improve their model, or improve taxonomy or site structure etc etc.

Even if this is an internal project you can normally gather a large number of requirements and understand the expectations for the group you represent in the service level agreement. It’s these requirements, and expectations which should identify what the content of the service level agreement will be.

Second Recommendation: Clearly identify the requirements, response times, and processes.

This is a big one. Because SharePoint is so large and complex it can do a VAST amount of things for users. While in this case it may seem like you are only using it for document management and communication you might quickly realize many processes are automated or going to be automated in SharePoint via it’s workflows, or that people are going to begin using more and more powerful functionality like excel services, the BDC, KPI’s, document conversion etc. All of these things will have an impact on the configuration of the servers, performance impact, and administration of SharePoint.

As a result it is EXTREMELY important to clearly identify what IS in scope or agreed upon and that anything not outlined is NOT part of the agreement. The agreement must constantly change, grow, and be evaluated in order for it to adequately represent what you are doing.

Third Recommendation:Represent both parties interests in the agreement.

This sounds so simple, but quite a few people can get lost in just representing your interests as the client, or as the supporter of the agreement. Keep in mind that this is supposed to help both of you. While much of what I outline in this article is coloured to help the supporter of the agreement I don’t want to undermine the importance of the client’s needs either.

Those are my big three high level recommendations. Next up my specific recommendations (based on experience).

Identify the browser level support.

This ones simple, and already done by SharePoint, you should re-iterate it in the agreement though so people don’t bother you with questions related to the differences between browsers.

Plan and Follow (as much as you can) the Best Practices of SharePoint.

If you are responsible for the disaster recovery look into the many best practice documents from SharePoint and the community on how best to handle disaster recovery with SharePoint based on the requirements the business has. – Best Practices

Plan for performance and capacity:
Plan for data protection and recovery:

Keep in mind that best practices also require you to understand the processes for how these are achieved, otherwise they won’t really help you.

Don’t do it all by yourself. (Supporter)

Don’t try and do it all yourself if you can help it. One thing that always helped me and my IT teams when managing SharePoint has been getting ‘super users’ or power users to help train, and answer questions. There are always ‘technical’ people or people interested in learning and empowering themselves with SharePoint. If you can provide more advanced training to these people (as part of the agreement) it can offload and distribute alot of the workload so that many departments can be somewhat self sufficient and keeping you group (if desired) at more of an administrative level.

Create multiple levels or tiers of support.

Identify the technical support ‘tiers’. Always have multiple tiers. Tier one could be the site admin, so they understand the content and context. Tier 2 could be more Help Desk or your group which would also have a set availability and estimated response time. Typically under 1 day.

This also helps illustrate when issues should be escalated, and it’s a good idea to write some measurements for how this can be monitored. You want to make sure your tiers are functioning successfully. If everything just gets pushed up to your experts or top tiers, then this isn’t an effective model. It needs to represent the best interests of both parties 😉

Speaking of measurement…

Outline methods of measurement and performance monitoring/reporting.

Another thing worth pointing out is the importance of a method for measurement. I outlined that evaluating this agreement or support is important, but to do this you need a basis. What I like to do is outline key service indicators. Sort of an availability one which has a target of 99%. And maybe another for customer satisfaction which I normally play it safe with 80%+ as the target.

When you outline these measurements you also can outline how they can be ‘evaluated’. Total availability, or overall availability could be the hours that the service is available in the reporting period divided by the total hours in the reporting period.

It is also crucial to really identify how you will report performance. I like SIMPLE. So I use an honest to god report card format for my performance reports on support. It’s a simple percent grade for all the areas of support based on the measurements I outline in my agreement. Easy to read, understand and based on clear identifiable information.

Outline how change windows, and changes to the system should be done in the support agreement as well if possible. If not taken into consideration you might be dinged as the cause for downtime when it was really because someone changed some network cables, or AD and didn’t have anything to do with your area of support. It’s important to outline that things like this could impact performance and skew your reports.

Outline all the dependencies.

This one is one of those things that can really save your butt. The agreement and your support must always have set dependencies. The response time is expected based on the configuration and set up of the environment. So this should outline the environment dependencies and what I normally call ‘functional dependencies’. These are things like we require at minimum 3 full time support staff, etc. In your case this is external, so it might be more of a we require this much notice of changes, this much notice of issues etc.

Outline responsibilities for other parties, the end users, site administrators (or super users), and of course your own staff/support teams.

I sort of touched on this a couple times earlier. Outline the Other Party’s responsibility. Earlier I mentioned if some ISP or service shuts down you can’t be held accountable. Therefor they should be identified as an other party and it should be outlined that they are aware of this policy in some way (if possible) or that you cannot be held accountable for downtime/issues they cause.

End User Responsibilities: This is where you get to offload work and also create a sort of buffer so that if there is a big issue and the other party hasn’t clearly identified it, or provided you with enough detail you can’t be held 100% responsible. I know a lot of this sounds like I am trying to cover our collective butts, but the truth is this can help make sure that the organization understands what goes into troubleshooting an issue. You can’t be a mind reader, you need information to solve a problem. 🙂

If you are using super users or site administrators (that aren’t your group) outline their responsibilities here as well. This again helps identify when escalation to your technical or brilliant SharePoint masters will be brought into the loop.

I like to break down my teams so I have an operations team, a configuration team, and a SharePoint Specialist team.

(Bad names, I know) but basically the Operations tean are your general support guys. How do I upload a document, how do I move documents around in a library, how do I delete my alerts? These users should use a large knowledge base (use the wiki libraries of SharePoint *wink wink*.

The configuration team has permissions to create libraries, sites, and basically do configuration work inside of SharePoint to help users. The reason I separate these guys from the operations guys is because I don’t like to give people admin level permission for general stuff, only for when they need to do configuration changes/support (x-files taught me to trust no one, blame it on them). This also allows me to make some super users classified as operational support.

My last team is normally very few people and are those who have passed SharePoint certifications, or just really know SharePoint well. Issues with infopath, excel services or wonky things get passed onto these guys and they know how to search the community for the answers… errr they know how to come up with clever original exciting answers on their own. 😛

Make it easy for the end user to get support.

SharePoint provides many ways for you to easily add support. You can add your own help information, you can create a ‘help and support’ site. You can manage tickets, and issues in SharePoint using the issues lists, and the many templates available (

You can use the built in using access requests for permission issues (, or create ‘contact your site adminstrator links, or contact page owner etc.

The agreement must change, grow, and evolve.

Don’t let it become a stagnant smelly gross muck that rusts and erodes that wonderful SharePoint deployment you have put in place. In order for the tool to be successful it should be sharp, honed, and properly cared for. And support is one of those big things that helps care for any SharePoint deployment. So evaluate your agreement on a regular basis, and put this evaluation time line right in the agreement itself. Adding something like an expirey date on an agreement can really help force the organization to review performance and just how successful support has been.

This also provides you as a supporter of the agreement a new opportunity to negotiate more support for hopefully more money, or as the customer, to negotiate more support for less money.

Speaking of money…

Don’t forget cost, money, and to sign something in agreement, like the SLA.

I am sure no one forgets the money part of an agreement but I should note that I recommend a buffer on communication costs as with any support it takes longer to find out what the problem is half the time, than to actually resolve the issue.

It’s also my recommendation to get more than one person to sign the SLA from the customer/client side. This provides more backing in case one of the signer’s leaves. (Since agreements like this are normally not very short term, this happens more than you might think.)

I hope this helps someone successfully support SharePoint in the future. It’s a wonderful product (seriously guys) and does so much work for you, not to mention any support team has the help of Microsoft, the newsgroups, forums, blogging community, and many tools to help administrators and SharePoint end users alike.

Anyways, hope this helps someone,
Richard Harbridge

December Cumulative Update for SharePoint

December 18, 2008

For those administrators out there please read over this new annoucement entry on the SharePoint blog:

Keep in mind these are only to fix the issues if you have them, if not I would recommend waiting until SP2.

Not sure what the cumulative updates are? Here is my previous post on it or check out Microsoft’s initial announcement on it:

Oh and before installing any updates to SharePoint or any Microsoft product keep in mind how their lifecycle/support system works. As this can impact you if you experience issues as a result of an update like this.

Hope this helps someone,
Richard Harbridge

List Web Part for Dynamics CRM 4

December 18, 2008

Great news from the Microsoft Dynamics Team and anyone who uses Dynamics with SharePoint. They have just released their List Web Part for Microsoft Dynamics CRM 4.0 (FREE) which provides all sorts of wonderful features that help you display CRM data inside a SharePoint page.

This isn’t a new component, but the new features are pretty sweet. Here is a summary of the new enhancements:

  1. Multi-tenancy : Allows to choose the CRM organization to view data from
  2. Supports CRM Internet-facing deployment
  3. Supports SSL configurations
  4. Supports both 32-bit and 64-bit environments
  5. Editing of CRM Server URL : You can now edit CRM server url at anytime
  6. Ability to open the current view in CRM to perform additional actions in CRM such as running reports, Quick Campaigns.
  7. Supports personalized SharePoint pages
  8. Enhanced Field-Field connections between two CRM List Web Parts. Subscriber CRM List Web part would automatically filter data by matching provider’s GUID with all attributes of type provider, making it very easy to establish connections like Accounts – Opportunities
  9. Supports Row-Row connection with 3rd party web parts
  10. Supports SharePoint solution deployment ( useful in server farms ) and UnInstall
  11. Will soon be available in all 25 languages supported by CRM 4.0.

Download it here:

If you want information on how to use it here is a good reference:

Big thank you to the Microsoft Dynamics Team for this update,
Richard Harbridge

Application Pool Stopped (Automatically Stops)

December 15, 2008

I am going to put this one up because it has popped up twice now on local vista boxes with WSS installed (I keep forgetting), and hope that it helps some other person out there save time when troubleshooting.

If your application pool(s) are automatically stopping every time you start them and visit a SharePoint site (or any website) then it might be because the application pool identity password has changed.

When this happens it results in a page result like this: (Since the application pool is stopped.)

Service Unavailable HTTP Error 503. The service is unavailable. (This is on a vista box with IIS 7 etc)

An easy way to check/resolve this is to just go to the identity setting of your application pool and re-add the password (as it was) to see if this resolves the issue. (Or in this case add the new password).

In theory your application pool identities password should never change since this is an account designed for this use (in many cases) but when I setup my local vista boxes I normally set it up to use my own identity which has a password that changes so this was something I had to troubleshoot when it came up.

Who knows maybe someone else has a reason for using an account which has it’s password changed periodically. If so then this is going to be something that you should take into account in your planning for whenever that password does cycle.

Hope this helps someone,
Richard Harbridge

Using SharePoint Request Access Fully

December 11, 2008

The other day I was surprised by the way an individual was managing their SharePoint solution when it came to user requests for more permissions, additional permissions, or enhanced permissions.

This individual was taking all requests manually and often the users requesting wouldn’t know where they needed the access. The individual would communicate for several minutes of correspondence until it was clear where the individual was working and needed more access in. I pointed out the “Request Access” link in the user’s welcome drop down and how it could help save lots of time since it lets him know automatically what site the user was in when requesting access. (Extremely important considering how many site collections he had, all managed by different users.)

I have decided to write a quick user help guide for this now in the hopes that it saves someone else time in the future, and to point out that anyone defining their governance and how permission requests are handled should base it around the built in functionality of SharePoint as this will save many man hours of communication that can be handled and facilitated by the system. Keep in mind that business requirements like approval from managers should still be considered, and that this recommendation is simply to use the automation of SharePoint and it’s features to help facilitate that.

For the End User:
When you are viewing any site in SharePoint you always have the option to request the site administrator for higher permission levels (especially helpful if you don’t know who the administrator for that site is). You can do this by following these steps:

  1. Click on the “Welcome <<Your Name>>” drop down on the top right of the page.
  2. Select request access.
  3. Fill out the details of your request and click Send Request.

At this point the site administrator will be sent an email request from you and will act upon it appropriately (I hope :P).

By Default when a user goes to a site that they do not have permissions to see they will see an automatic request access page similar to the one shown above. Here is a screen shot of the page which you can see has a Request Access link that goes to a request access page.



For the SharePoint Administrator:
The site administrator can be changed and checked by going to any sites’ permissions page. This page will only display the following option if it is set to not inherit permissions from the site above, otherwise it uses the site above’s access request email.



Keep in mind that these sort of SharePoint features are designed to save you time and that if properly trained on them your users can do more and more self management decreasing the load on your SharePoint administrators.

Hope this helps,
Richard Harbridge

Christmas Fun with SharePoint

December 11, 2008

A long ways back Todd Bleeker released a cute content editor webpart which had javascript which made it ‘snow’ in SharePoint. One of those nice things to get your SharePoint team in the Christmas mood.

It still works fine in SharePoint 2007 and everyone should feel free to use it. If you are having trouble importing a dwp file (advanced webpart options, and import) then you can also just manually copy and paste the following code into source view of a CEWP to get the same effect. 🙂

If you embed this code into your master page it will display for the entire site too..


Oh and before I post the code Andy Dale did a similar thing with the content query webpart but this one is a countdown! Found here:

Note: WordPress has replaced all my ” characters and ‘ characters, so when you copy this code make sure you change the quotes or the code won’t work. I have also added it for download here: in txt format.

<script type=”text/javascript”>

* Snow Effect Script- By Altan d.o.o. (
* Visit Dynamic Drive DHTML code library ( for full source code
* Last updated Nov 9th, 05′ by DD. This notice must stay intact for use
* Updated by Todd Bleeker for use within a CEWP Dec. 2005

//Configure below to change URL path to the snow image
var snowsrc=”;;

// Configure below to change number of snow to render
var no = 10;

// Configure whether snow should disappear after x seconds (0=never):
var hidesnowtime = 0;

// Configure how much snow should drop down before fading (“windowheight” or “pageheight”)
var snowdistance = “pageheight”;

///////////Stop Config//////////////////////////////////

var ie4up = (document.all) ? 1 : 0;
var ns6up = (document.getElementById&&!document.all) ? 1 : 0;

function iecompattest()
return (document.compatMode && document.compatMode!=”BackCompat”)? document.documentElement : document.body

var dx, xp, yp;    // coordinate and position variables
var am, stx, sty;  // amplitude and step variables
var i, doc_width = 800, doc_height = 600;

if (ns6up)
doc_width = self.innerWidth;
doc_height = self.innerHeight;
} else if (ie4up)
doc_width = iecompattest().clientWidth;
doc_height = iecompattest().clientHeight;

dx = new Array();
xp = new Array();
yp = new Array();
am = new Array();
stx = new Array();
sty = new Array();

for (i = 0; i < no; ++ i)
// set coordinate variables
dx[i] = 0;

// set position variables
xp[i] = Math.random()*(doc_width-50);
yp[i] = Math.random()*doc_height;

// set amplitude variables
am[i] = Math.random()*20;

// set step variables
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();

if (ie4up||ns6up)
if (i == 0)
document.write(“<div id=\”dot”+ i +”\” style=\”POSITION: absolute; Z-INDEX: “+ i +”; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\”><a href=\”\”><img src='”+snowsrc+”‘ border=\”0\”><\/a><\/div>”);
} else
document.write(“<div id=\”dot”+ i +”\” style=\”POSITION: absolute; Z-INDEX: “+ i +”; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\”><img src='”+snowsrc+”‘ border=\”0\”><\/div>”);

// Main animation function
function showsnow()
doc_width = ns6up?window.innerWidth-10 : iecompattest().clientWidth-10;
doc_height=(window.innerHeight && snowdistance==”windowheight”)? window.innerHeight : (ie4up && snowdistance==”windowheight”)?  iecompattest().clientHeight : (ie4up && !window.opera && snowdistance==”pageheight”)? iecompattest().scrollHeight : iecompattest().offsetHeight;

// iterate for every dot
for (i = 0; i < no; ++ i)
yp[i] += sty[i];
if (yp[i] > doc_height-50)
xp[i] = Math.random()*(doc_width-am[i]-30);
yp[i] = 0;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
dx[i] += stx[i];
document.getElementById(“dot”+i).style.left=xp[i] + am[i]*Math.sin(dx[i])+”px”;
snowtimer=setTimeout(“showsnow()”, 10);

function hidesnow()
if (window.snowtimer)

for (i=0; i<no; i++)

if (ie4up||ns6up)

if (hidesnowtime>0)
setTimeout(“hidesnow()”, hidesnowtime*1000);


Hope someone else enjoys this one,
Richard Harbridge

Funny Warning Message in Event Log for SharePoint

December 8, 2008

Thank you SharePoint.


Honestly have no idea what this is related to. However I did find the event log warning from SharePoint pretty humorous, hope someone else find’s this one funny,
Richard Harbridge

SharePoint Browser Support and SharePoint Browser Compatibility

December 2, 2008

Also going to post this one in response to a question I just had related to Browser Compatibility.

Ever wonder what SharePoint supports in terms of each level browser? Microsoft released (way way back) two great articles that fully explain how SharePoint supports each browser and the level in which they support it.

WSS 3.0 –

SharePoint 2007 –

If you ever wonder or need to explain why users should use the latest version of IE over those other browsers when viewing SharePoint just refer to these articles.

Hope this helps someone,
Richard Harbridge