SharePoint is one of those things that can get under your skin and stay there. Even away from the office on vacation my thoughts return to the problems it solves, as well as the problems it may cause. Unfortunately, the latter is more the case than not. So, on my days off I start this blog with the intention of saving others heartache by drawing a map of sorts for SharePoint project managers, administrators, and developers. I hope to point the reader clear of land mines and provide safe passage through the maze of SharePoint.
The topics of which I write apply to both SharePoint 2007 and SharePoint 2010. Some principles are just IT best practices no matter what the system.
Third Party SharePoint Web Parts
“Don’t buy them unless your users are demanding them!”
When our team began our SharePoint pilot we had extra money to spend on third party web parts. We bought a few web parts from a well known and respected SharePoint software solution provider called Bamboo Solutions. We anticipated a need that never materialized. We even went as far as including a third party web part, called a mini-calendar into our custom site template. Any new sites created with this template also created web part pages with the mini-calendar built into the default pages.
After a year in production no one was using the mini-calendar. Our team decided that we would eventually remove it. However, the decision when to remove the mini-calendar was not ours. When our systems analysts upgraded our web front ends upon our team’s request, we got an invalid license error from the mini-calendar web part. It turns out that the web part license was inextricably linked to hardware configuration. Quoting from Bamboo Solutions FAQ;
The machine identifier (also known as “the machine key” or “machine profile hash”) is a unique string generated during the licensing process to uniquely identify the target installation machine. This string value is generated based on the machine hardware profile and does not contain any information about a network, environment, or machine settings. The tolerance for minor hardware changes is built into the software license, but this key may need to be regenerated if hardware changes significantly alter the generated hardware profile. If your license used to work, but it has become invalid after a suspected hardware upgrade, then please contact the Bamboo Solutions Customer Support Team for assistance.
Imagine if you had to contact every vendor of every piece of software installed on a server before you upgraded that server! I’m sure Bamboo creates good software. In this case, however, Bamboo needs to upgrade their licensing mechanism so that it’s not so intrusive and burdensome.
Web Part Tips
The SharePoint add-on market is huge. It’s easy to become convinced that you need an aftermarket component to completely round out your SharePoint installation. If you do decide to purchase remember these tips.
- Purchase a license for a test/staging installation as well as production. You’ll want to make your test environment as faithful to production as possible.
- Completely understand licensing before purchase.
- Always try (on test) before you buy. Evaluate the software not only for what it claims to do, but for any negative performance the web part may incur.
Buy or Build Web Parts
Depending on IT human resources, problem complexity and budget, compare the trade-offs in buying a web part versus purchasing one already made.
Purchase Pros and Cons
- Already built, thoroughly tested (we hope), and some customer support provided.
- Installation package and procedure debugged and tested.
- Desired customizations may not be possible because source code is not available.
- Complex and costly licensing.
- Support costs may be extra.
Build Pros and Cons
- You can design and build exactly what you want.
- You own the source code so any amount of customization is possible.
- Requires not only a .NET Developer, but a SharePoint .NET Developer. SharePoint development skills include a working knowledge of the SharePoint object model, SharePoint client object model , web services, WCF and REST  and when and how to use them. The SharePoint developer should know the STSADM.EXE command and options and the new SharePoint PowerShell commands for 2010. Other valuable skills include XSLT, HTML, and CSS.
- Avoid installing free software into production. The old adage, “you get what you pay for” may be a cliché but it is definitely true. Free components come as is without warranty or support.
- Remember that any web part whether purchased or custom built needs to be incorporated into your disaster recovery procedures.