【发布时间】:2015-08-06 09:18:19
【问题描述】:
我正在开发一个软件,我想创建它的精简版;也就是说,付费版的部分功能将被移除。
我最初的想法是在某处设置一个布尔值来指示软件是精简版还是专业版,并将仅专业版的代码包装到条件中检查该布尔值。不过再想一想,这似乎很容易进行逆向工程,只需轻按布尔值即可启用所有专业功能。
所以我的第二个也是当前的想法是使用预处理器从 lite 版本中完全省略 pro 功能。然而,我读到预处理器应该很少在生产中使用。
我的情况是例外还是有更好的选择来实现我想要的?
【问题讨论】:
-
这个问题太笼统了...添加一些具体细节...
-
您可以使用 IOC 并拥有两组库,每组都提供 pro 和 lite 的功能。
-
这是一个非常好的预处理器用例。话虽如此,除非有令人信服的理由拥有“精简版”版本,否则为什么不简单地专注于软件的完整版本并使其尽可能稳定、完善、功能强大且价格合理,而不是担心精简版和保护来自逆向工程。
-
您在哪里读到过不应在生产中使用预处理器?预处理器在编译时用于(在这种情况下)有选择地构建部分代码。对我来说,这听起来是一个非常合理的选择。
-
从互联网上盗取专业版可能更容易,而不是逆向工程。
标签: c#