What SharePoint and Vermeer have in common?

Yes, that’s right! What a Dutch painter has to do with a Microsoft server solution?


Well, the answer is not an obvious one: The FrontPage (aka SharePoint Designer)

In 1994, in the prehistory of Internet, a small company by the name of “Vermeer Technologies Incorporated” was creating a revolutionary web page editor with WYSIWYG capabilities and specially crafted for Internet Explorer. Their baby was codenamed “Pavilion” and later rebranded as “FrontPage” and it was launched in 1995.

image image
(those images are taken without permission from MicrosoftBob.com. I use them here as a mere convenience)

The Vermeer FrontPage also featured so-called “webbots” (common web functions such as counters, post senders etc) and “Server Extensions” that used CGI to enhance the web editing and publishing process.

Sounds familiar? Those same “Server Extensions” are powering SharePoint FPSE (FrontPage Server Extensions) front-end, which is used when you open a SharePoint site using SharePoint Designer.

In 1996 Microsoft acquired Vermeer Technologies Inc. and relaunched FrontPage 1.1 as one of the key products in the ongoing browser war (ultimately won by Microsoft).

The first incarnation of SharePoint (called SharePoint Team Services) used these extensions and they are now cemented into the architecture. You can find many traces of these origins, like “_VTI_BIN” folder in IIS, X-Vermeer-Content-Type header or “vti_” prefix in the metadata fields. Of course, “VTI” stands for “Vermeer Technologies Incorporated”.


I hope you enjoyed this short web archaeology detour with a Dutch flavour 😉

COMException 0x81020089 in ItemAdding

(Thanks to my work colleague Cesar for pointing out this case to me)


You have a custom list event receiver in SharePoint. You trap the ItemAdding event and you perform a validation logic to determine if the item should be added to the list. You determine that it’s not the case and you want to inform the user.

So, you set the ErrorMessage property of SPItemEventProperties to the desired text and you set Cancel property to True.

SharePoint throws a COMException 0x81020089 error with or without your error message.


By setting Cancel to True, you are instructing SharePoint to raise an exception. If you don’t treat the exception, it is shown as such and displayed to the end user.


Set the SPItemEventProperties.Status property to CancelNoError (no error will be shown) or CancelWithError (error will be shown) before setting Cancel to True.

ASP.NET Unit Testing With Typemock Isolator

I’ve just stumbled upon this extraordinary offer. I’ve been evaluation Typemock before and it’s one of the best (if not the best) unit testing tool for SharePoint. And now its creators are launching a wide promotion campaign:

Unit Testing ASP.NET? ASP.NET unit testing has never been this easy.

Typemock is launching a new product for ASP.NET developers – the ASP.NET Bundle – and for the launch will be giving out FREE licenses to bloggers and their readers.

The ASP.NET Bundle is the ultimate ASP.NET unit testing solution, and offers both Typemock Isolator, a unit test tool and Ivonna, the Isolator add-on for ASP.NET unit testing, for a bargain price.

Typemock Isolator is a leading .NET unit testing tool (C# and VB.NET) for many ‘hard to test’ technologies such as SharePoint, ASP.NET, MVC, WCF, WPF, Silverlight and more. Note that for unit testing Silverlight there is an open source Isolator add-on called SilverUnit.
The first 60 bloggers who will blog this text in their blog and tell us about it, will get a Free Isolator ASP.NET Bundle license (Typemock Isolator + Ivonna). If you post this in an ASP.NET dedicated blog, you’ll get a license automatically (even if more than 60 submit) during the first week of this announcement.

Also 8 bloggers will get an additional 2 licenses (each) to give away to their readers / friends.
Go ahead, click the following link for more information on how to get your free license.

Half-Broken SharePoint Disaster Recovery Story

Today I’ve been greeted by a half-broken SharePoint 2007 development machine. It’s a small farm with one MOSS 2007 server and a SQL Server 2005 on the same virtual machine.


What does it mean “half-broken”? Well, the symptoms were missing assembly reference randomly in layouts and content page, unable to show the welcome page, ASP.NET errors with no clear meaning (with COM error codes)…but the Central Administration seemingly was OK.

I decided to uninstall SharePoint and to get a clear install from the start. The uninstaller crashed at more or less the half of the process, so I was left with a half brain-dead SharePoint and unable to install it again.

I googled and I found how to manually remove SharePoint traces. I did it and I was met with a screen like this (without (Beta) in the title, of course):


Stefan Gossner has a helpful entry (where I copied this screenshot from) which says that you have to uninstall WSS before reinstalling MOSS. I had no WSS installed but I saw that the SP1 Language Pack files were installed. I removed them with Microsoft Install CleanUp tool.

I installed the MOSS binaries and I started SharePoint Products and Technologies Configuration Wizard. My MOSS is a Spanish SKU and the wizard appeared in English and with an error message that “it could not open the Help file”. After a check, it appeared that the only help locale was the Spanish one, as would be expected with a Spanish SKU.

Luckily, Stefan had another entry in his blog that more or less seemed to match mine. I created the HKEY_LOCAL_MACHINESOFTWAREMicrosoftShared ToolsWeb Server Extensions12.0ServerLanguage3082 entry (for Spanish) and finally I could run the wizard and ultimately recover my development machine.

Stefan, I owe you two beers 😉


My First MOSS 2007 SP2 Upgrade

I’ve been trying to upgrade my development virtual machine to SharePoint 2007 SP2 today. No problems, except for the tiny detail….

The upgrade couldn’t find HOSTS file.

After some googling I’ve found the culprit: the MOSS Search. It changes some entries in hosts file but it deletes the file and recreates it. If your service account is not an administrator, bad news…the file can’t be created again.

More information on this bug by Jeremy Jameson: http://blogs.msdn.com/jjameson/archive/2007/05/05/the-case-of-the-disappearing-hosts-file.aspx 

After this minor glitch, now I can see that the version number is updated well:


Of course, I run the preupgrade check operation to see if my developer machine would be ported well to SharePoint 2010:


More explanation on preupgrade operation by Jie Li: http://blogs.msdn.com/opal/archive/2009/05/12/upgrade-checker-in-sp2-behind-the-scene.aspx

Groove is Dead, Long Live SharePoint Workspace 2010!

At the end, the ugly duckling of Microsoft Office suite is joining the SharePoint family. Microsoft announced that the Groove file synchronization features will be incorporated in Office 2010 Professional Plus suite under the name SharePoint Workspace 2010.


According to the Microsoft Office 2010 Team Blog,

SharePoint Workspace will provide easy access to SharePoint content (or content from any server that implements the publicly documented protocols) in an effort to provide a seamless online/offline experience.

SharePoint Workspace 2010 will be easier to deploy and easier to manage, and it supports a new set of scenarios to help Office and SharePoint users be more productive.  It will also make it easier for IT folks to implement a consistent information strategy based on SharePoint technology throughout the organization.