【问题标题】:Making a stripped down version of my software (lite version)制作我的软件的精简版(精简版)
【发布时间】:2015-08-06 09:18:19
【问题描述】:

我正在开发一个软件,我想创建它的精简版;也就是说,付费版的部分功能将被移除。

我最初的想法是在某处设置一个布尔值来指示软件是精简版还是专业版,并将仅专业版的代码包装到条件中检查该布尔值。不过再想一想,这似乎很容易进行逆向工程,只需轻按布尔值即可启用所有专业功能。

所以我的第二个也是当前的想法是使用预处理器从 lite 版本中完全省略 pro 功能。然而,我读到预处理器应该很少在生产中使用。

我的情况是例外还是有更好的选择来实现我想要的?

【问题讨论】:

  • 这个问题太笼统了...添加一些具体细节...
  • 您可以使用 IOC 并拥有两组库,每组都提供 pro 和 lite 的功能。
  • 这是一个非常好的预处理器用例。话虽如此,除非有令人信服的理由拥有“精简版”版本,否则为什么不简单地专注于软件的完整版本并使其尽可能稳定、完善、功能强大且价格合理,而不是担心精简版和保护来自逆向工程。
  • 您在哪里读到过不应在生产中使用预处理器?预处理器在编译时用于(在这种情况下)有选择地构建部分代码。对我来说,这听起来是一个非常合理的选择。
  • 从互联网上盗取专业版可能更容易,而不是逆向工程。

标签: c#


【解决方案1】:

预处理器指令增加了维护负担,因为您必须更新不同的版本并记住部署正确的版本。

但是,如果您的软件非常简单,并且您不信任简单的布尔值(您可以根据需要过度复杂化),那么预处理器指令是您唯一的选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 2012-12-12
    • 1970-01-01
    • 2019-01-20
    相关资源
    最近更新 更多