在您拥有诸如 Lite、Normal、Ultimate 层和重叠功能集之类的东西可能会减少功能的情况下,从开发的角度来看,使事情保持简单的最简单方法是什么?
我只使用具有单片许可证、启用/禁用特定组件/功能的子功能许可证或席位/资源许可证的应用程序。我有一些想法,但一些新的见解会很好。
在您拥有诸如 Lite、Normal、Ultimate 层和重叠功能集之类的东西可能会减少功能的情况下,从开发的角度来看,使事情保持简单的最简单方法是什么?
我只使用具有单片许可证、启用/禁用特定组件/功能的子功能许可证或席位/资源许可证的应用程序。我有一些想法,但一些新的见解会很好。
我研究过具有服务层的应用程序。虽然这可能不是最好的方法,但这是我所看到的。
1) 找出所有层级共有的功能。通用功能不需要任何逻辑,因为它们可供所有人使用。
2)不常见的功能应该以细粒度的方式分解。因此它们可以一次启用/禁用一个。
3) 将特征矩阵分配给层。
我们有一个许可应用程序,它基本上是一堆包含所有细粒度功能的复选框。选择“Lite”将选中相应的框,因此在生成许可证代码时,它将包含这些功能。
在启动时,许可服务器被安全地查询。(这是一个服务器应用程序,因此它不会经常启动/停止,并且可以保证互联网)允许的功能列表将返回给应用程序。
在代码中,您只需检查天气是否启用了某个功能,然后让许可服务器确定用户所在的层级。
我在 PC 游戏中看到的另一种用于演示磁盘的方法是为每一层设置一个编译目标。
#DEFINE TIER_NORMAL 1
#DEFINE TIER_LITE etc.
then
#ifdef TIER_NORMAL
do tier normal stuff
#endif
请注意,您必须跟踪 3 个不同的二进制文件,这可能会很痛苦。但结果是您没有交付用户未付费的代码。在较小的项目中可能比获得许可服务器更容易。