Last post Feb 27, 2008 09:30 AM by stevoman
Feb 27, 2008 07:56 AM|r_pedersen|LINK
I have developed a custom control and now I want to sell it but of course I don't just want to put the bits on a website. I want to have a way of licensing the software. Can anyone tell me how some of the big boys (Component Art, Infragistics, Dundas) go
about doing this?
Feb 27, 2008 08:58 AM|stevoman|LINK
You can release your software under any license you choose (dependent on any restrictions of any software you have derived it from).
Do you mean how to apply security measures to prevent the software being redistributed in non-allowed ways?
Feb 27, 2008 09:10 AM|r_pedersen|LINK
Yes, that is exactly what I am looking for. I want to license the software in the same kind of way that Component Art, Infragistics, Dev Express and others license their software.
Pay a small fee, get a license key to unlock the software.
Feb 27, 2008 09:30 AM|stevoman|LINK
I'm no expert on this field but just a few thoughts...
Security and licensing are a large and complex topic, and it could be easy to leave loopholes which leave your software open for theft.
One option would be to license it through a third party company (such as one of the above), so that it's their problem to deal with. Possibly you could also investigate if any companies sell a software solution you could use.
If you want to do it yourself, you'll need to check a lot of things
1) make your source code as difficult to access as possible - Look into source code obfuscation.
2) Decide on how / what you want to use as a basis for licensing - do you want it to be licensed per machine, per CPU, per web domain, per user, etc. It needs to be something that you can quickly and easily measure in your software.
3) Decide how complex you require the security measures to be - is it enough to just compile a seperate binary for each customer, which will only run on their web domain (for example), or do you require a full license key solution.
If you want a full license solution, I'd suggest reading up on asymmetric encryption. Using such a system, in principle you could create license files with the details of the specific customer (ie. company name, web domain etc, then sign them with your
key. The code could then check the appropriate details and (for example) only run on the domain specified in the license file (or apply other restrictions on usage as required). The downside of this would be a bit of a hit to the performance, depending on
how often the license keys were checked. Ideally you'd want it polled just when the application starts.
Another option would be an online license checking system, where upon every use the software would check back to a license server to ensure it is licensed. This has the downside of having to maintain the license server, and also if there's a network problem
or machine down, your customers would be unable to use the software.