.net 为产品的多个版本开发代码库

.net 为产品的多个版本开发代码库,.net,scripting,build-process,.net,Scripting,Build Process,我知道这是可能的,因为有这么多的软件包,你有一个“标准”、“专业”和“企业”版本的软件包。。。但是,有人提供过关于uISV如何学习开发分层功能软件所涉及的技术的像样的教程吗 我已经通过你通常会使用的不同渠道(谷歌、MSDN等)进行了多次搜索,但到目前为止都是空的 如有任何想法/建议,将不胜感激 Thx.您可能想看看.Net成员资格提供程序中基于角色的安全性(假设它是一个web应用程序)。您可以添加角色“Tier 1”和“Tier 2”,也可以为层允许用户使用的每个功能添加角色。然后,在实现分层功

我知道这是可能的,因为有这么多的软件包,你有一个“标准”、“专业”和“企业”版本的软件包。。。但是,有人提供过关于uISV如何学习开发分层功能软件所涉及的技术的像样的教程吗

我已经通过你通常会使用的不同渠道(谷歌、MSDN等)进行了多次搜索,但到目前为止都是空的

如有任何想法/建议,将不胜感激


Thx.

您可能想看看.Net成员资格提供程序中基于角色的安全性(假设它是一个web应用程序)。您可以添加角色“Tier 1”和“Tier 2”,也可以为层允许用户使用的每个功能添加角色。然后,在实现分层功能的页面上,如果用户.IsInRole(“featurename”),则显示该功能。

这取决于您希望阻止用户使用哪些功能。
如果您的所有功能都是独立的,那么Bramha的解决方案是一个好的解决方案,但是如果您的功能不是独立的,那么这是一个完全不同的故事,您需要开发一个内部“框架”,允许对每个功能进行抽象。

最简单的方法是创建一个包含所有功能的程序,并根据产品密钥启用/禁用它们

第二种选择是为您的程序创建一个minumsceleton,并使用外接程序体系结构添加更多功能。这意味着您只能部署您正在部署的版本所需的部分


使用.net,您可以查看System.AddIn命名空间或反射内容…

我会选择更简单的解决方案:

  • 将代码放入程序集中
  • 创建仅包含主窗体的shell项目,每个版本都有菜单和工具栏。菜单和工具栏只能从程序集激活窗体/功能
通过这种方式,您不需要配置文件来启用/禁用功能,如果您将所有内容都放在一个应用程序中,就不会有“功能访问”代码。此外,您的用户不可能侵入您的应用程序或密钥,并访问他未付费的功能


缺点是,您不能仅仅通过发送新密钥将用户从“标准”升级到“专业”,用户必须下载并安装新的应用程序。

我可能会使用编译器指令分离这些功能。这样,您就有了一个代码库,但可以在应用程序中“编译”多个不同的功能。如果您在中编译所有内容并使用不同的串行密钥分离功能,那么盗版将非常容易。毕竟,如果dodgey serials没有这些功能,它们就无法解锁。

从软件盗版的角度来看,您可能希望使用条件编译(使用)或单独的程序集-基本上是:如果某个功能在标准版或试用版中不可用,请不要禁用它,而是完全删除它

如果您尝试使用某种全局枚举“LICENSETYPE{Standard,Enterprise}”,请记住,它看起来像exist,允许轻松地更改它


另一方面:只有一个包含所有功能的可执行文件,并根据每个键启用/禁用它们,这使得部署和版本管理变得更加容易。

Gary,您有没有什么像样的文章可以阅读,以便了解如何在VS.Net 2008项目中做到这一点?这是我一直在寻找的,但是还没有找到任何合适的.Windows窗体/WPF应用程序。