Getting started developing on SharePoint 2010

Here are some free videos providing a developer introduction to working with SharePoint 2010. They cover the following topics:

  • Getting Started: Building Web Parts
  • What developers need to know
  • Building blocks for Web Part Development
  • Accessing Data with Server-Side APIs
  • Accessing Data with Client-Side APIs
  • Accessing External Data with BCS
  • Developing Business Processes
  • Creating Silverlight User Interfaces Solutions
  • Sandbox Solutions for Web Parts
  • Creating Dialogs and Ribbon Controls

Record Center is not properly configured for this request

I’ve been troubleshooting some inter-farm record declaration problems recently and ran into an annoying generic exception.

"The Records Center is not properly configured for this request"

My configuration has two SharePoint 2007 farms. Farm A hosting "collaboration" sites (e.g. team sites, my sites) and Farm B hosting a site collection based on the Record Center site template. Each farm has it’s own set of service accounts and I am using Kerberos authentication.

When attempting to declare records from Farm A I was getting the exception and the matching event log entry in the Application log of the web front end server in Farm A:

Event 7022 - The Records Center is not properly configured for this request

The following seem to be the most common causes of this generic exception:

The URL to the OfficialFile web service is incorrectly entered in Central Administration > Application Management > External Service Connections > Record center on Farm A.

The Record Center site is created as a sub-site as opposed to a top-level site.

The service account for Farm A is not a member of the Record Center Web Service Submitters group in the Record Center site collection on Farm B.

And finally a bug with documents that have date fields and non-US date regional settings for which a hotfix was made available 26 August 2008.

Long running jobs in SharePoint

As part of a solution that I’m putting together at the moment I had a requirement that went something like this:

We want an export button on the search results page that allows us to save all the search results to the desktop

Designing "bulk actions" like export that affect a large set of SharePoint items as a single operation is a challenge. Using a custom SharePoint timer job allows us to keep these potentially very costly operations outside of the user context.

The design follows this basic flow:

  1. User selects a number of items (from search results) to process
  2. Selected items are "tagged" for attention from the timer job
  3. User is notified that the operation is "scheduled"
  4. Timer job runs and identifies "tagged" items
  5. Items are processed
  6. Report is generated
  7. User is notified of completion

Virtual PC and SIDs

I recently configured a set of virtual machines for use as my SharePoint demo environment. I used Microsoft Virtual PC 2007 and the differencing disk technique to keep disk space down and maximise re-use.

I created a base Windows Server 2003 virtual hard disk and then proceeded to create two differencing disks from it: one for my domain controller (dc.demo.local) and one for my SharePoint server (sharepoint.demo.local).

After successfully adding the SharePoint server to the domain I got the following error message when attempting to log in using a domain administrator account:
"The name or security ID (SID) of the domain specified is inconsistent with the trust information for that domain"

So it turns out that the SID for both machines are the same since the differencing disks are created off the same base disk.

Luckily it was easy to fix… I Downloaded NewSID from TechNet and ran through the wizard on my SharePoint server. This changed the SID for the machine to a nice shiny random one and rebooted.

Logging in with domain accounts is no longer a problem.