Are there any standard or “best practices” for limiting the functionality of functions for a particular application?
Example. We have a product with many functions, and our customers can choose which functions they would like to use, and the cost of the product depends on what functions they actually use.
In the past, we distributed, together with our software installer, an encrypted license file containing information about the client, as well as a set of features that they turned on. In the code, we read from the license file and enable the functionality in accordance with the license file.
This seems to work fine, except for a few drawbacks:
- Upgrading users with new functionality can be a kind of pain
- If a certain function is displayed in different places of the application, the developer may not understand that this function should be licensed, and forget to check the license file before giving the user the opportunity
- If the license file is damaged, deleted, moved, renamed, etc., the application will not start
We are getting ready to deploy a new set of features, and I was just curious what others in the community did to solve this problem?
source share