We’ll always have Paris

These famous words were spoken by Humphrey Bogart in Casablanca.

I doubt we will ever get anything as famous in the SharePoint community, but when you are tearing your hair out in despair, remember that you can safely go to sleep thinking:

“We’ll always be able to create a Charitable Contribution site.”


Why STSADM still kicks ass

With the release of SharePoint 2010, PowerShell has become the new cool kid on the block when it comes to deployment. STSADM has been bullied into a corner and hidden away, soon to be taken behind a shed and put out of it’s missery.

There is one area where STSADM is still the king, and PowerShell is the pimpled kid trying to get out of puberty. And I don’t see how PowerShell will beat it anytime soon.

STSADM rules when it comes to feature activation. Huh?? And the reason is very simple, it’s a good old fashioned console application.

Since it’s a console application, it will always load all the assemblies it needs before it does it’s thing. This ensures that when you activate your features, you will always be using the feature receiver that has been installed in the GAC. Ever gotten strange error messages when you try to activate features using PowerShell? I have.

PowerShell is built on the .NET framework. When an assembly has been loaded, it cannot be unloaded until the hosting Application Domain is terminated. As long as you keep your PowerShell window open, the Application Domain will be loaded. You have to start a new instance in order to have the latest assemblies loaded. With STSADM I can open a console window and keep it open for days. I can toggle between the latest commands as long as I want.

This may not be a big deal for an IT admin, but it sure is for a developer. I make a lot of changes in feature receivers and hence need to activate them. I would go nuts if I had to open new PowerShell windows all the time. STSADM isn’t sexy, but it works.

At least they didn’t call it foobar

Digging through the SharePoint codebase you come across some strange things.

The following can be found in 14\TEMPLATE\LAYOUTS\wpadder.debug.js