Advancing Productivity and Operational Efficiency through Apps, Cloud, and SharePoint



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 (

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:

Create a free website or blog at | The Baskerville Theme.

Up ↑


Get every new post delivered to your Inbox.

%d bloggers like this: