Advancing Productivity and Operational Efficiency through Cloud Services and Apps



The Evolution of the SharePoint Professional

I’ve been giving a lot of thought to how SharePoint 2010 is reshaping the future and the impact it will have on those of us who’ve been implementing and developing for SharePoint over the last several years. I look forward to dedicating a bit more time to this subject in a future post. The following is just a brief abstract of my thoughts regarding one of the areas that I feel will be affected the most, our roles.

MS has been making a lot of distinct references between what they call IT Pros (I’m not sure I agree with this term) and Developers in most of their SharePoint 2010 sites, presentations, and documentation. We’ve experienced the logical evolution of these 2 roles for several years, but for many of us, the line has remained somewhat gray. I suspect this to drastically change in the near future, and most who haven’t chosen to specialize in a specific track really need to start thinking about choosing a side, or risk getting overshadowed by experts coming from either direction. Of course regardless of what track you choose, you should dedicate time to learn at least the fundamentals of the other.

I suspect SharePoint will continue evolving to become the de facto web operating platform for companies and corporations world wide. If you think of the role Windows plays for each of the users in your company, and then think of your users as a collective; it shouldn’t be too difficult to visualize SharePoint as your companies OS on the web. Now consider the teams and roles that take part in managing, developing, and supporting Windows, along with all of the applications it runs in your company or corporation. How many all around experts are there. The division is not just technical in nature, there are several business aspects to it as well…ever heard the term “Segregation of Duties”. Suddenly “IT Pros” and “Developers” may not even seem like enough roles.

digg_url = “”;digg_title = “The Evolution of the SharePoint Professional”;digg_bgcolor = “#FFFFFF”;digg_skin = “compact”;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;

Upgrading 2007 WCM sites to 2010 WCM – SPC 2009 Session Highlights

I have to say that the 2007 to 2010 upgrade path for WCM sites looks very promising. During this session Andrew Connell demoed upgrading a site with fairly complex branding. He did so by using PowerShell to mount a copy of a SharePoint 2007 content database (the 2010 PowerShell equivalent of the stsadm addcontentdb command).  The upgrade went through without a single hick-up… I don’t know that we’ll all be so lucky; although I am feeling pretty good about it.

Everything came across with the 2007 look and feel; I’ve already mentioned this capability in a number of previous posts; what may not have been so clear is that even the site admin pages look like they did in 2007… Almost feels like you are running 2007 and 2010 side by side; which BTW will not be supported; but if this works as smoothly as it did in the demo… who really cares (OK, maybe I’m being to optimistic)

Next comes the Visual Upgrade, this is the part that can get tricky as it changes the master pages which is where your most of your branding likely resides. Performing the Visual Upgrade is easy enough; there is a link in the site settings page. After the Visual Upgrade, some pages may break, most likely because of references on the page layout to Placeholder Controls that are not included in the 2010 master pages. However, you can easily change the master page back to the one you where using in your 2007 site, which still shows up in the list of available master pages. Now your content should look as it did in 2007 and your system pages should include all the goodness of 2010.

But the old master page doesn’t have a ribbon or a developer dashboard. Where is all the 2010 goodness for my users and developers? There will probably be more than one approach to do this, but the following steps should more or less help you get these on the page.

Master Pages

  • Create a new blank master page in SharePoint Designer
  • Copy the code from the 2007 master page over
  • Remove the Site Actions Menu
  • Remove Console (Page Editing Toolbar)
  • Add a ScriptLink to include certain JavaScript files used by the ribbon… (I cant tell you exactly what they are yet) but I know you can copy them from the v4 master page
  • Copy the v4 ribbon DIV into new master page from default 2010 master page
  • The ribbon has a couple of other dependencies(declarations) that you’ll need to copy of over.
    • These should be easy to identify from the error messages. Look for and copy them over from the 2010 master page.
  • Copy the dev dashboard tags from the v4 master page

If you need to add new metadata properties to the pages, it “should be” as simple as opening the page layout in SharePoint Designer and dragging and dropping the field controls on the page. There still appear to be a couple of quirks with this process, at least there was with the demo, but I’m confident they will be worked out soon enough.

He also talked about, and demoed, some improvements to the Content Query Web Part which again look fantastic. Most notable, we no longer need to specify CommonViewFields and the Web Part Editor Tool Pane displays an enumeration of the available fields in the template.

digg_url = “”;digg_title = “Upgrading 2007 WCM sites to 2010 WCM – SPC 2009 Session Highlights”;digg_bgcolor = “#FFFFFF”;digg_skin = “compact”;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;

Business Connectivity Services Runtime and Object Model Deep Dive – SPC 2009 Session Highlights

Let me start by saying that I don’t think the label “deep dive” was necessarily correct for this session. However, I don’t believe that to be a bad thing and it probably has a lot to do with how much this whole process was simplified by MS… seriously, fantastic improvements. That being said, it was deep and technical enough to where I had to pay a lot of attention and wasn’t able to take as many notes as I have in some of the previous sessions I attended, hence the shorter post. The following are some of the key highlights I came away with.

Important changes in Acronyms

  • BCS – Business Connectivity Services
  • BDC – Business Data Connectivity (he mentioned that this is what the case, but I continued to see the term “Business Data Catalog” used in various screens in SharePoint; this could be related to the BETA.)

Key BCS Investments

  • Development
    • Tools built-in to Visual Studio
  • Connectivity – Read and Write data
  • Tooling – Integrated tooling in VS and SharePoint Designer
  • Lifecycle Management – Automated solution packaging, deployment and management
  • Search
    • Item Level Security
    • Indexing attachments
    • Crawl and Query WCF svcs
    • Writing Custom Connectors
    • Incremental Crawls (LastModifiedTimeStamp)
    • Incremental Crawls (GetDeletedID, GetChangedIDs)
    • Batching
  • Easily Create Content Sources
  • Create “External Lists” that display data from BCS

BDC Runtime Improvements

  • Client and Server symmetrical model
    • Write back capable (was capable before, but now its supported and easy)
    • Batch read operations
    • Navigate and create associations
    • Bulk APIs
    • Read Blobs (streaming support)
    • Read and write back complex types (Dot notation)
    • Simple type conversion
  • Uniform experience across various systems types
  • Extensibility mechanisms
    • .NET Assembly Connector
    • Custom Connector
    • Secure Store Provider

Offline Capabilities with Office Integration

  • Errors and conflicts stop synchronization of affected items only and prompt user for action
    • Advanced API allows customizations so that users don’t necessarily get prompted and specific action be taken in case of conflicts.

Configurable Throttling (Really cool, can result in significant improvements to performance in the farm.)

  • Number of connections
  • Pau Load Size
  • Time Out
  • Power Shell support to read and modify settings
digg_url = “”;digg_title = “Business Connectivity Services Runtime and Object Model Deep Dive – SPC 2009 Session Highlights”;digg_bgcolor = “#FFFFFF”;digg_skin = “compact”;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;

SharePoint 2010 Administration Part 1 – SPC 2009 Presentation Highlights

Presented By: Todd Klindt and Shane Young.

  • SharePoint Containment Hierarchy (Self Proclaimed Worlds Greatest Slide)
    • Mostly Standard Stuff
      • Site Collection remain in in a single Content Database
      • Service Applications instead of Shared Service Provider
        • More flexible
        • Service Application Databases (per services)


  • Pre-req installer
    • Interrogates Systems
    • Checks for things you need
    • Automatically goes to the internet to pull down and install pre-reqs
      • Configurable so that you can point to a specific workstation or server to get the pre-reqs from.
  • Installing bits very similar to 2007 install
    • Farm Passphrase – helps address issues having to do with installation account being deleted.
  • Farm Configuration Wizards in Central Administration (that’s right Wizards as in multiple)
    • Initially one but extensible.. can create more.
  • Managed Accounts
    • Keep Service Accounts secured
    • SharePoint can manage password changes
      • Automatically change based on domain policy or other rules
        • Weekly, Monthly, etc.
      • Cool interface
        • See next time SharePoint will change the password
        • See last time SharePoint set the password
    • Ribbon in Central Admin
      • Changes depending on the object you have selected (i.e Web Apps)
  • Web Applications
    • When creating and specifying databases can specify failover server
      • SQL Mirroring Aware
    • Can specify which services (service connections) a web application is consuming.
    • Very easy to find Anonymous Policy button in ribbon
      • Similar buttons for other web app policies such as “User Policy”
    • Specify Preferred Timer Job Server per web application
Technorati Tags: , Tags: ,
digg_url = “”;digg_title = “SharePoint 2010 Administration Part 1 – SPC 2009 Presentation Highlights”;digg_bgcolor = “#FFFFFF”;digg_skin = “compact”;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;

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 (

Blog at

Up ↑

%d bloggers like this: