我知道这是可能的,因为有太多的软件包,你有一个软件包的“标准”,“专业”和“企业”版本...但是有没有人有关于如何使用uISV的任何体面的教程会不会学习开发分层功能软件所涉及的技术?
我已经通过您通常使用的不同频道(谷歌,MSDN等)进行了多次搜索,但到目前为止已经空了。
任何想法/建议都将不胜感激。
THX。
答案 0 :(得分:2)
最简单的方法是创建一个包含所有功能的程序,并根据产品密钥启用/禁用它们。
第二个选项可能是为您的程序创建一个minumum sceleton,并使用一个加载项架构来添加更多功能。这意味着您只能部署部署版本所需的部分。
使用.net,您可以查看System.AddIn命名空间或反射内容......
答案 1 :(得分:1)
我会选择更简单的解决方案:
这样您就不需要配置文件来启用/禁用功能,如果您将所有内容都放在一个应用程序中,则没有“功能访问”代码。此外,您的用户不可能破解您的应用程序或密钥并访问他未支付的功能。
缺点是您只能通过发送新密钥将用户从“标准”升级到“专业”,用户必须下载并安装新的应用程序。
答案 2 :(得分:0)
您可能希望在.Net成员资格提供程序中查看基于角色的安全性(假设它是一个Web应用程序)。您可以添加角色“第1层”和“第2层”,也可以为层允许用户的每个功能添加角色。然后在实现分层功能的页面上,如果是user.IsInRole(“featurename”),则显示它。
答案 3 :(得分:0)
这取决于您希望阻止用户使用哪些功能。 如果你的所有功能都是独立的,那么Bramha的解决方案是一个很好的解决方案,但如果你的功能不是,那么这是一个完全不同的故事,你需要开发一个内部“框架”,它将允许抽象每个功能。
答案 4 :(得分:0)
我可能会使用编译器指令分离这些功能。这样,您就拥有一个代码库,但可以“编译”应用程序中的几个不同功能。如果您编译所有内容并使用不同的串行密钥分离功能,盗版将会非常容易。毕竟,如果它们不在那里,那些功能就无法通过躲避连续剧来解锁。
答案 5 :(得分:0)
从软件盗版的角度来看,您可能希望使用条件编译(使用#define and #if)或单独的程序集 - 基本上:如果某个功能在标准版或试用版中不可用,请不要禁用它,但要删除它完全。
如果您尝试使用某种全局枚举“LICENSETYPE {Standard,Enterprise}”,请记住,Crack.net看起来像{{3}},可以轻松更改它。
另一方面:只有一个包含所有功能的可执行文件并基于每个键启用/禁用它们使部署和版本管理变得更加容易。