开发者

How-to limit feature functionality [closed]

开发者 https://www.devze.com 2022-12-26 07:12 出处:网络
Closed. This question needs to be more focused. It is not currently accepting answers. 开发者_Go百科
Closed. This question needs to be more focused. It is not currently accepting answers.
开发者_Go百科

Want to improve this question? Update the question so it focuses on one problem only by editing this post.

Closed 7 years ago.

Improve this question

Are there any standard or "best practice" ways of limiting feature functionality for a particular application?

Example: We have a product with a variety of features, and our customers can pick and choose which features they would like to use, and the cost of the product varies based on which features they are actually using.

In the past, we have distributed along with our software installer an encrypted license file that contains information about the customer, as well as the collection of features that they have enabled. In code, we read from the license file and enable the functionality according to the license file.

This seems to work fine, except there a few disadvantages:

  • Upgrading users with new functionality can be sort of a pain
  • If a particular feature shows up in multiple places throughout the application, a developer might not realize that this feature should be licensed, and forget to check the license file before granting functionality to the user
  • If the license file becomes corrupted, deleted, moved, renamed, etc. the application will not run

We're getting ready to roll out a new set of features, and I was just curious what others in the community have done to tackle this problem?


Why not break down the product into modules like Matlab? Then charge for each module. The licensing can be kept online and the end user just needs to download the module to enable the feature.


There are usually 3 common approaches to this:

  • using fixed program versions (each version just adds features, you can't customize which features you want or not). You can use also "subversion", like basic and pro edition for Software x.0. Windows uses this approach.
  • Having modules of functionality, which are a product as themselves. Matlab uses this approach.
  • Having a software with basic functionality, and then having plugins, or extra apps for sale. Eclipse uses this approach (though it's free)

You can mix those approaches also for a better customizability.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号