关于许可CRM4(ISV)附加组件的技术方法的建议

时间:2010-04-26 13:36:29

标签: dynamics-crm dynamics-crm-4

我正在与之合作的团队创建了一个CRM4附加组件,其中包含了“标准”CRM定制(例如修改现有实体,添加我们自己的自定义实体),报告,插件和我们自己的网页(在IFrames)和Web服务。所有非常典型的东西。

我正在编写所有必需的安装代码以简化/自动化安装过程,以便我们的ISV插件可供任何人下载和试用,但已被要求考虑适当的方式限制功能 - 鼓励人们购买许可证。

对于.net应用程序(特别是CRM4附加组件)的'许可',我不熟悉概念/最佳实践/陷阱,所以我问你是否有任何建议。我们正在寻找一些相当简单的东西,并且应该合理地“破解”,因为我们认为必须输入许可证代码通常是PITA。

  • CRM API是否可以为ISV开发人员提供任何服务? (我看到有人能够对许可证实体进行审讯,但我认为这是针对CRM许可证本身的)
  • 是否有适合使用或实施的现有代码示例/项目/框架?
  • 我很想在安装附加组件时创建一个注册表项,如果一个月后没有输入正确的许可证密钥,则会限制功能。这是最好的方法吗?您是否看到过其他任何附加组件以不同/更好的方式执行此操作?
  • 在限制功能方面,我正在考虑抛出InvalidPluginExecutionExceptions。当然必须有更“优雅”的方式来做到这一点?

所有的想法和建议都得到了赞赏。

此致 彼得。

1 个答案:

答案 0 :(得分:1)

我的想法:

  • 是的,您可以查询许可证实体以获取许可用户的数量,这是我所见的常见许可证类型。许多第三方供应商按许可用户的数量收费,无论这些用户中有多少实际使用自定义。我试图远离这些因为许可证成本通常对企业部署而言过高。
  • 不是我知道的。
  • 我喜欢这个选项,并且已经看到至少有一个第三方工具使用此方法。它们允许您在.config文件中声明许可证密钥,如果它们的运行时没有找到它,则会检查已知的注册表项。该工具附带一个应用程序,可以为您注册注册表中的许可证密钥。我会小心测试并确保您的自定义代码可以在最小特权环境中读取注册表。
  • 抛出异常肯定不优雅,但它确实证明了你的观点。 :)除此之外,只是直接跳过你的代码是另一种可能性,虽然这可能有数据含义。如果你必须抛出异常,我建议尝试在你的实体的表单加载上运行一些javascript,警告用户他们的许可证已过期,并且保存将导致错误。一些更邪恶的方案可能包括Thread.Sleep,有点像旧的共享软件nagscreens。 :)

另一个想法 - 您是否可以设置企业IFD部署,以便您可以让客户远程访问您的演示,包括他们自己的演示组织?这取决于您的受众,但您的客户可能没有下载和安装试用版的奢侈品(时间,开发环境)。他们可能只是想看到它的实际效果 - 一旦你符合销售条件,也许你提供免费的远程安装,而不是花费这么多时间在一个完美的安装包上?同样,取决于您的受众和您希望销售的许可证数量。从技术上讲,您可以使用SDK动态配置组织,并使在线试用过程完全自动化。当然这是一项巨大的投资,但允许您保持对演示/ IP的绝对控制。

希望有所帮助!