tags:

views:

208

answers:

5

The main focus of the package is developer tools but there is also one component (a DLL) that some small number of developers would like to redistribute with their own application. This is managed code running under .NET 3.5.

A: 

Having a serial number keyed to the registrant's details (eg email) is fairly simple. That way he knows there is a chance you could trace any copy made from his back to him.

Draemon
+2  A: 

The easiest way to discourage others from reusing your library is to mark all classes "internal" and mark the library assembly with the InternalsVisibleTo custom attribute. That allows you to specifically enumerate which assemblies (in your case each of your developer tools) can call internal methods. All other assemblies (such as ones customers may write) will be denied access.

If the customer is determined enough though, they can use other techniques like reflection or reverse engineering the IL to reuse your library. But this technique prevents them from directly using your library.

C. Dragon 76
+1  A: 

obfuscation and licensing are the 'standard' ways to protect your assemblies

like any lock, someone can figure out how to unlock it, the question is how difficult do you want to make it for them to do so vs. how much effort/money do you want to expend in the process

Steven A. Lowe
A: 

You can have a look at the product called Oreans WinLicense . It is supposed to be powerful.

Thanks.

goths
A: 

I searched a bit for this and it seems like you have a bunch of commercial tools for this. like: eziriz

I would like to know if there is any good open source solutions for this?

bovium