SharePoint Developer Training October 3rd and 10th Cancelled

The SharePoint Developer Training sessions scheduled for October 3rd and 10th have been cancelled. My oldest daughter will be undergoing surgery Thursday, and I will be devoting my attention to her. Nothing major; tonsils; but we suspect she will be requiring a lot of attention for several days.

digg_url = “”;digg_title = “SharePoint Developer Training October 3rd and 10th Cancelled”;digg_bgcolor = “#FFFFFF”;digg_skin = “compact”;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;

SharePoint 2010 Preview (Sneak Peak)

Check out the latest (and first publicly available) SharePoint 2010 Sneak Peek at It includes information on the following topics:


Before you install that SharePoint Cumulative Update

This posting contains important information to consider before installing the latest SharePoint Cumulative update, followed with a step by step overview of how to install cumulative updates for Windows SharePoint services 3.0 and Microsoft Office SharePoint Server 2007. Keep in mind that this information does not necessarily apply to Service Packs or hotfixes.

What is a Cumulative Update?

SharePoint Cumulative update packages contain the latest of every hotfix patch that has been shipped for the release of the specific product (Windows SharePoint Services 3.0 or Microsoft Office SharePoint 2007). Microsoft has scheduled the release of these updates for every two months to facilitate predictability for their customers.

Do you need to install the Cumulative Update?

Microsoft states that you do not need to install the update unless you are affected by any of the specific problems described in the KB articles of the hotfixes included in that update. The cumulative update will automatically be rolled into the next Service Pack.

If you have already installed the latest hotfix for a specific issue you were having, and the issue has been taken care of, you do not need to install the cumulative update.

Do I need to install the latest Service Packs before installing the updates?

Microsoft recommends you install the latest service pack, but does not require it as long as the older service pack is still within lifecycle (see for more information)

What are the prerequisites and installation sequence?

While neither the WSS 3.0 or MOSS 2007 cumulative updates state having any prerequisites; you should install any WSS 3.0 cumulative update before installing the corresponding MOSS 2007 cumulative update. The recommended sequence for installing the updates is as follows:

1. Latest WSS 3.0 Service Pack released prior to the Cumulative Update

2. Latest MOSS 2007 Service Pack released prior to the Cumulative Update

3. Latest WSS 3.0 Cumulative Update

4. Latest MOSS 2007 Cumulative Update

If a Service Pack has been released since the cumulative update, you do not need to install the cumulative update as the hotfixes it will be contained in the Service Pack.

For the December Cumulative Update the installation sequence should be as follows:

1. Windows SharePoint Services 3.0 Service Pack 1

2. The 2007 Microsoft Office Servers Service Pack 1

3. December Cumulative Update for Windows SharePoint Services 3.0

4. December Cumulative Update for Microsoft Office Servers

Testing the Cumulative Update?

Of course you should always test before performing any system updates. If you do not have a staging or testing environment and are considering performing the update; now is the time to prepare that environment, it will also serve as a great disaster recovery exercise. Knowing how to rebuild/restore your environment should be far more important (and less risky) than installing any update.

What account should I use to install the cumulative update?

To ensure that you have the correct permissions to install the software update, Microsoft recommends using the Central Administration Application Pool Account. To do so, temporarily add this account to the Server Administrators group on each of the servers in the farm before running the update, you can remove the account from the Administrators group after the update has been installed.

At the very least, you should use a domain account that is a:

· Member of the Administrators group on the Web server computer.

· Member of the Administrators group on the server that runs SQL Server. Or, owner of the fixed database role db_owner for all SharePoint Products and Technologies databases.

Cumulative Update Installation Process Overview for a Server Farm

You server farm will likely consist of multiple servers. The update cannot be ran on all of the servers at the same time. After running the update on the first server, there will be a mismatch between the file and the database version on the other servers, which will likely result in inconsistent and incorrect functionality across the servers until the update has been installed across the board, furthermore any updates to content during the installation of the update may result in permanent damage. To avoid such problems with your installation I greatly encourage you to read the following article which explains, in detail, how to properly deploy software updates for Windows SharePoint Services 3.0:

The following is a general overview of the steps outlined in that article:

1. If performing an upgrade, make sure that any previous upgrade processes have completed. These will show up in the Timer Jobs if the upgrade was performed you used the in-place or gradual upgrade approach.

a. Go to the SharePoint Central Administration site, click Operations, and in the Global Configuration section click Timer job status

2. Look for and document any modifications that might have been made to the site templates, or application pages. While any of these types of changes are unsupported and I strongly un-encourage it, you may be inheriting a farm from someone that wasn’t as cautious. As such its always a good idea to back up the SiteTemplates, Features, Layouts, and Admin folders before performing any upgrade.

3. Perform a clean back up of your farm (note: You must first stop all of the SharePoint services in your farm before performing the backup, see for specific steps)

4. Disconnect all of the users on the farm by stopping the World Wide Web Publishing Service on each of the front-end servers

5. Run the cumulative update installation package on each of the servers in your farm, stopping at the Configuration Wizard which will be kicked off automatically after the package runs.

6. Click “Next”.

7. The wizard notifies you that some services might have to be restarted during configuration, click “Yes”.

8. The wizard notifies you that it is “Completing the SharePoint Products and Technologies Configuration Wizard”, click “Next.”

9. You will see a dialogue stating:

“You must run Setup to install new binary files for every server in your server farm. If you have multiple servers in your server farm, run Setup and the configuration wizard on the other servers now, and then return to this server and click OK to continue.”


10. Wait until the dialogue is displayed on each of the servers in the farm.

11. On the server that host the Central Administration Site, finish running the Configuration Wizard.

12. Verify that the update ran successfully on the Central Administration server (see

13. Continue updating the remaining computers in the server farm, one at a time, by clicking OK in the dialog box.

14. Restart the World Wide Web Publishing Process on each of the front-end servers.

Description of the Windows SharePoint Services 3.0 cumulative update package (WSS server-package): December 16, 2008

Cumulative updates are available from the Microsoft Office team to deliver hotfixes for reported problems

Deploy software updates for Windows SharePoint Services 3.0

Microsoft SharePoint Team Blog: Announcing December Cumulative Update for Office SharePoint Server 2007 and Windows SharePoint Services 3.0

When all else fails, reboot… your Dodge RAM pick truck

Computers and phones are not the only things that need to be hard-booted these days. I guess it comes as no surprise… now that just about everything has a computer in it. But a car? More specifically; a pick-up truck?

Well, last Saturday, my Dodge pick up truck broke down in Austin at the Alamo Drafthouse. It simply would not start. My first impression was that the battery must have gone out; so I bought some jumper cables and made a number of attempts to jump start the truck. Of course, I only then noticed that the instrument panel indicated that the battery was fully charged, and every single electrical component was working without a problem. It could not be the battery… something else must have been wrong.

Further troubleshooting revealed that while the power door locks worked when triggered from the button/lever on the door of the truck, the buttons on the key had no effect in locking or unlocking the doors. Well, I knew that the key had a proximity sensor, perhaps the batter on the key was bad, so I bought another battery, but again the truck simply would not start. So I began to think… what would I do if it were a computer, phone, or cable box? Perform a hard-boot of course. But how do I hard boot a pick-up truck?… Easy, same as a phone, you take out the battery. So that’s what I did, disconnected the battery, waited 10 seconds (this step inspired by the endless wisdom of over the phone technical support for just about everything), I reconnected the battery, turned the key, and the truck started right up.

It was one of the highlights of my weekend. Never before had car failure led me to so many laughs, at least not when I’ve been the one experiencing the problem. Of course, good company always makes these moments much more enjoyable.

Thank you Troy and Marlene, for sticking around.

SharePoint Site Column ID’s

A buddy of mine recently asked if there was an easy way to retrieve the site column ID’s of a site…. Not “out of the box”… but its easy enough for me to create one, and other people might benefit. Its also a good example of how we can use the SPGridView control in our custom application pages, a subject on which I might elaborate later. The results look something like this:


So…. here it is John ;)

protected override void OnLoad(EventArgs e)

    SPWeb web = SPContext.Current.Web;
    // Get a reference the roles that are
    // bound to the user and the sites role
    // definition to which we need to verify
    // the user against
    SPRoleDefinitionBindingCollection usersRoles = web.AllRolesForCurrentUser;
    SPRoleDefinitionCollection siteRoleCollection = web.RoleDefinitions;
    SPRoleDefinition roleDefinition = siteRoleCollection["Full Control"];

    //Check if the user is in the role
    if ((usersRoles.Contains(roleDefinition)) || web.CurrentUser.IsSiteAdmin)
        //Check if post back to run
        //code that initiates the page
        if (IsPostBack != true)
public void initPage()
    // Create a DataTable to hold our Site Column Data
    DataTable tblSiteColumns = new DataTable();

    // We will use an SPGridView to display the data
    // Create and SPBoundField for each column that
    // will be displayed in the SPGridView
    SPBoundField fldNameField = new SPBoundField();
    fldNameField.DataField = “ColumnName”;
    fldNameField.HeaderText = “Column Name”;
    fldNameField.ItemStyle.Wrap = false;

    SPBoundField fldIDField = new SPBoundField();
    fldIDField.DataField = “ColumnID”;
    fldIDField.HeaderText = “Column ID”;
    fldIDField.ItemStyle.Wrap = false;

    SPBoundField fldDescriptionField = new SPBoundField();
    fldDescriptionField.DataField = “ColumnDescription”;
    fldDescriptionField.HeaderText = “Column Description”;

    // Add the columns to the SPGridView
    // on the grid
    //Populate the DataTable with the Name ID and
    //Description of each field in the site
    foreach (SPField field in SPContext.Current.Web.Fields)
        string[] rowValue = new string[3];
        rowValue[0] = field.Title;
        rowValue[1] = field.Id.ToString();
        rowValue[2] = field.Description;

    //Bind the DataTable to the Grid
    grdSiteColumns.DataSource = tblSiteColumns;

    Site Column IDs

    Site Column IDs



As with my other examples, copy the code above and save it as an ASPX page in the layouts directory
C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS

Then access the page from any SharePoint site as follows: http://siteaddress/_layouts/pagename.aspx

And for those of you wondering; there is no need to close the SPWeb object in this example; it is a Shared Resource, a reference to the SPContext and should be left to be managed by the system. For more information on other “Best SharePoint Coding Practices” see the MSDN article Best Practices: Using Disposable Windows SharePoint Services Objects (

SharePoint Backup, Recovery and Availability Resource Center

If you have been looking for information from Microsoft in regards to SharePoint back-ups, disaster recovery, or availability; Microsoft recently launched the “SharePoint Backup, Recovery and Availability Resource Center”. A one-stop-shop on the subject containing:


- Planning and “how-to” content for backup and recovery.

- Pointers on how to use versioning and the recycle bins.

- Content describing how to use System Center Data Protection Manager to protect Office SharePoint Server.

- Availability content, including a great white paper and case study on using database mirroring in a single farm.


The site also includes a number of useful diagrams and links to relevant information. Check it out at:


Get every new post delivered to your Inbox.