We want to implement a scheme where a single application distribution can have a number of optional features that the user can license individually or as a group.
Lets say we have 10 possible features. All customers will get a core set of features dependant on the environment they are using it in (e.g. hardware) but can then optionally license additional features based on their usage requirements.
Additionally in future releases other features could be added and these could be either core or more optional ones. If the user has paid for ‘support’ then they would expect to just get the new core ones on upgrade.
What would be the best way to do this without the overhead of potentially having to manage a Product Version per customer, or one Product Version for every combination of the 10 possible features i.e. several million.