Table of contents
What’s the issue?
If you’re reading this post, you’re already aware of the tremendous velocity with which SharePoint grown in the web-based collaboration market. You are probably also aware of the huge community of application developers, IT pros, UI designers, information architects, content managers, and users that have sprung up around this extremely popular product. I sure did. But what really struck me was how few add-on products there are for such a popular collaboration platform. Now sure, there are lots of free and open source tools and utilities out there, but not many "real products"; you know, the kind that you can buy and actually get support for.
That’s a big barrier to SharePoint adoption. Most companies don’t have SharePoint developers and don’t want to install some code they find on Codeplex in their production environment. Real organizations want real software that comes with real support. Unfortunately, providing real support costs money. That means that the person writing the software needs to be able to make at least enough money from the software to cover the support costs, including coming out with updates.
In order to get paid for your software and provide support for it, you need to be able to:
- Distribute the software
- Deploy the software
- License the software
- Copy protect the software
If you can’t do those four things, you don’t have a product; you have a utility for which you will not likely get paid, and for which you will not likely be able offer support.
Ok, so that’s software development 101. Back to the main question: Why are there so few real SharePoint products on the market? Based on the size of the SharePoint community one would think there would lots good ideas for SharePoint software for which people would gladly pay. Distributing software is fairly easy, just post it on a web site, and let people download it. Don’t have a web site? The list of free web site providers is too numerous to mention. Deploying SharePoint software is not hard. SharePoint has a deployment framework that makes use of Cab files with a ".wsp" extension, called "Solutions". there are several tools to create WSP files and deploy them with a GUI. Check out WSP Builder and SharePoint Solution Installer.
It turns out that the hard part of getting paid for your SharePoint software is the last two items: licensing and copy-protecting the software.
Licensing
Lets talk about licensing fist. You don’t want to write your own license management software. It is much better to use some off the shelf software for this purpose. License management software is relatively inexpensive and does a much better job of storing the license keys securely than you will likely do. The problem is that most of that software requires the deployment of un-managed (native) DLLs or COM objects and direct registry access on each server in the SharePoint farm. Un-managed DLLs require a different version of the DLL depending on whether you are deploying to a 32-bit server vs. a 64-bit server. COM objects need to be registered on each server in order to function. SharePoint does not have a good mechanism for easily deploying and managing these types of components. Yes it can be done, but you will likely spend as much much writing the infrastructure code as you did creating the actual software.
Copy protection
Copy protection is also problematic for SharePoint applications. Yes, you can strong name your assemblies, and with a licensing and obfuscation mechanism, secure them and bind them to the farm for which they were purchased. The problem is that a real SharePoint application is not just a set of assemblies. In fact, it may not have any assemblies at all. Here are just a few types of objects that must be stored in clear text on each web server:
- Site and list definitions
- Content types
- Features
- ASPX pages
Even if you are able to secure your assemblies, the bulk of your SharePoint application may be required to be unprotected. If you can not copy-protect a large portion of your application, you may still get some sales, but will likely lose significant revenue from people using pirated copies.
To be continued in Part 2…
Rest assured that there are solutions to the problems of licensing and copy-protecting your SharePoint software. I will discuss several options in part 2 of this series.
This comment has been removed by a blog administrator.
Thanks to everyone who read this series. The last post in the series is now complete, and a table of contents has been added to each post to help you navigate between them.