Enjoyed some time off due to the birth of my 3rd child Emma and finally found some time to get away from the diapers and constant nursering. 😉 And what a time to be back.
SharePoint Server 2010 is almost RTM, so an in-depth investigation of this new version of one the most important Microsoft products is long overdue.
In the following blog posts, I will review some of the new features of SharePoint Server 2010. Targeted far more at the Enterprise, SharePoint Server 2010 aims to remove some of the headaches that SharePoint 2007 had for both end users and developers, while maintaining its basic power, easy information sharing.
SharePoint Server 2010 introduces a lot of new features and functionalities. Some of them are improvements of existing functionality, some are completely new. Clear from a first glance though is that SharePoint Server 2010 has grown up and matured. Enhancements and new features make the new version far more scalable in large enterprises, one of the shortcomings of SharePoint 2007.
Unique Document ID feature
When using SharePoint as a document management solution, one of the shortcomings of SharePoint 2007 was the absence of a unique identifier for the document, regardless of its location. Sure, beneath the service, SharePoint 2007 did assign a GUID (Global Unique Identifier) to a document upon upload or creation, but there were no means to retrieve a document based on this GUID if you did not now the document library it was located in.
While SharePoint 2007 focused on libraries and lists, SharePoint 2010 moves more to sites (collections) and site pages. Several enhancements allow the site collection to share its information across the sites located in the collection.
The Unique Document ID feature can be enabled on site collection level, using site collection features. Once enabled, all documents placed within document libraries on the site collection will also receive a unique identifier field containing the ID of the document.
Based on search
The lookup of documents based on their ID is based on the Search functionality of SharePoint. First, the runtime will call the search provider to find the document. If search returns no documents, the provider calls a custom method for an alternative lookup. Because of the search dependency, when you move a document, it will not be found based on his ID unitl the next incremental crawl. Definitly something to take into account.
When enabling the unique ID feature, we can also influence the way SharePoint assigns these unique identifiers. Unfortunately, these options are quite limited, as we can also specify text that each identifier should start with. However, because of the site collection scope, this problem is to overcome.
If you do not feel comfortable with the way SharePoint generates the ID’s, or you have specific rules or conventions to follow when generating these ID’s, it is good to know that you can create your own document ID provider. The way to do this is to create a subclass of the Microsoft.Office.DocumentManagement.DocumentIdProvider class and implement his methods. You can also specify that you want your own lookup method to be to called first, instead of the search. Using a site collection feature receiver, you can hook up this custom provider to the site collection by calling
DocumentId.SetProvider(properties.Feature.Parent as SPSite,new MyNewAndImprovedDocumentIdProvider());
So, each document now haves a unique ID. Great, so how can we utilize that? When viewing the properties of a document now, you will find an additional field Document ID containing the unique ID of the document. This is also a link, pointing to the unique document ID service that can look up the document.
The link points to an aspx page located in the layouts folder called DocIdRedir.aspx. To recover a document based on the ID, just call http://yoursite/_layouts/DocIdRedir.aspx?ID=documentID
Interesting though is that when you press the Send a link button, the mail containing the link still contains the original url, pointing to the current location of the document. Obviously, when moving the document, the link would not be valid anymore.
With SharePoint 2010, the ribbon is introduced in the online suite space. The ribbon and its contents will be subject for discussion in another blog post, but interesting now is that we can modify the ribbon items. We can therefore include a button that also send a link, but sends the permanent link, rather than the original one. I would have expected such a button to be there by default, but hey, we also need some work don’t we?
Till next time.