Licensing is a very complex proposition. When you add in the need to obfuscate and otherwise attempt to protect your intellectual property rights/copyright, it can really be a daunting task.
Fortunately for us, the Desaware Licensing System is available and has been nicely done. It was written by Dan Appleman author of the Win32 API book, so I knew that it would be good. The software includes a free obfuscation tool, lots of sample integration code, and documentation.
There is a lot to consider when licensing an application. The good news is that Desaware has already thought through this for you and provides a licensing tool that is very flexible, yet powerful. The system allows for licensing, and product activation, but doesn't require it. You can make it very strict, or somewhat trusting depending on your needs.
Reading the documentation forced me to think through some issues as to how I was going to handle this scenario and that, and hopefully has helped me to have a smoother licensing experience for my users. You can choose to issue a temporary license based upon a vaild software key, and have the software hit a webservice on your site to be activated. This activation can be mandatory before the user uses the software or you can decide to consider them temporarily licensed until they connect to the Internet, at which point the licensing software hits the webservice and attempts to activate. On the backend there is a database that keeps track of the applications and keys. You can also allow the software to install as a time limited fully-functional demo. Unlike other demos where the secrets to the time are hidden on the local machine, Desaware bases time on the time of the server hosting your website or on time servers. This prevents the user from cheating the licensing by changing the system time.
There is a nice front end for administering things. It connects to the webservice and allows you to create your apps and licenses.
Of course shipping a Dot Net program without obfuscation, provides all of the source code in an easily disassembled manner. Using the obfuscator provided from Desaware was pretty easy and makes the task of a hacker at least more difficult.
Code samples are provided that allow you to add a custom installation step to your setup which makes registration more flexible. Of course you can easily drop a licensing control onto a form and set some properties to prompt the user for licensing information at a later time.
There is also the option of collecting more information from the user.
Writing such a system on my own would have been time consuming at best and very error prone at worst. I was very happy to find the Desaware Licensing System. We have implemented in a recent software product and are very happy with the results.
Before we were trying to do our own licensing, and had no way to offer a demo without risk of giving away the farm for free.
Now we finally have a way to offer a trial version of our software. BTW, you can determine the length of trial and other options.
The software has many other options. I have really just scratched the surface.
One of the major pluses was that whenever I had any questions about implementing one part or setting up another, Desaware was quick to respond. I was even able to ask Mr. Appleman himself and get a fairly quick response.
I highly recommend the Desaware Licensing System.
William S. Story