Best Component Licensing Strategy

J

Jörg Krause

I've written a component and want to protect my work with
a license file I'll create on request.

The component is used in WinForm applications. It supports
design time mode in VS.NET but is simple enough to let
users use them without the designer. For that reason I think
a "design time license" is not the right way.

If I use a run time license then the license file must be
part of the final application. But my licensing model is
without any run time fees, only the developer must pay.

Has anybody experience with component licensing and can give
me an advice which strategy is the best and which method
to protect the license (e.g. using crypto provider to create
a key or something like that).

Thanks,

Joerg
 
T

Tian Min Huang

Hello Joerg,

Thank you for using Microsoft newsgroup. I reviewed your post carefully,
and now I'd like to share the following information with you:

1. Since your component only charges the developers, I recommend you use
"design time license". As you know, licensing is desinged into runtim in
the .NET Framework. The piece that holds licensing together in .NET is the
LicenseManager. The LicenseManager is part of the runtime and whenever a
class is instantiated, the LicenseManager accesses the proper validation
mechanism for the control or component. Classes are marked as licensed by
adorning the class with the LicenseProviderAttribute. This attribute also
specifies the type of validation that occurs.

For the "design time license", a license provider need to find for a valid
license at design time. The license will be converted into a license key
and embedded into the executing assembly when building, so that it will run
properly on the client side. As you can see, an application using your
component cannot be built properly without the license.

2. If you want to implement a validation logic of you own (say, using
crypto to create a key, etc), you will need to create a custom
LicenseProvider. To create a custom LicenseProvider, a class must inherit
from LicenseProvider and override the IsKeyValid and GetLicense methods.
Often a custom license type will also be defined to provide extra
information to classes using the custom license provider.

For detailed information on .NET Licensing, I recommend you the following
articles:

.NET Licensing
http://windowsforms.net/articles/Licensing.aspx

Licensing Components and Controls
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/htm
l/cpconlicensingcomponentscontrols.asp

Please feel free to let me know if you have any problems or concerns.

Have a nice day!

Regards,

HuangTM
Microsoft Online Partner Support
MCSE/MCSD

Get Secure! -- www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top