Microsoft allows software developers to create tools which extend and add functionality to Visual Studio, making software developers more productive. If you are a .NET component or control developer, it is important to protect your intellectual property with a method to verify that a developer is authorized to use your product.
With an ordinary application, authorization would happen when the application is run, but in the case of a component or control, an authorization is also needed when the application is in the process of development and a developer is incorporating your component or control. To help facilitate this, Microsoft has created the System.ComponentModel.LicenseProvider base class.
It is important to understand under what conditions, or modes, a control or component may be instantiated, as this is fundamental for its licensing. There are two modes under which a .NET component/control may be instantiated: design time and run time.
When licensing a control or component, it is generally more important to authorize the license in design time as this is where your customer, a developer, will be using your product. Once the developer distributes their application to their customers, these customers will execute the application in run time. License validation should be bypassed, although it is certainly possible to also validate a license for the run time case.
It is a three step process to use the LicenseProvider class.
All the important things happen when the LicenseProvider.Validate method is called, and this method is overridden and customized to suit your licensing needs. In this method you may check if the control or component is running in design time or run time. If in run time, you would not validate the license and allow the component to instantiate normally. Conversely, if running in design time, you would verify the license and only enable the control if the license is authorized, as this is when the developer will be using your control or component.
It is important to protect your intellectual property, whether it be an application or a developer control or component. The LicenseProvider class can be a powerful tool to better manage the licensing requirements imposed by your control or component. Combining this class with the SoftwareKey System allows for a variety of licensing solutions, such as evaluations and modular features. If you’d like more guidance on control and component licensing, rest assured the SoftwareKey team is always just a click or a call away.
Why Software Licensing is a Smart Move
What you need to know about distributing and updating licensed software
Licensing for non-visual software and services
How to Protect a Web Application with Licensing Controls
7 Ways License Automation Increases Revenue and Saves Time
5 Essential Strategies to Boost Software Revenue through Licensing