2

我正在与一位同事就在插件或工作流程中使用 Web 服务进行辩论

他说使用动态实体是微软建议的最佳实践,因为网络服务需要身份验证。

我认为使用 wsdl 和强类型实体更干净,更不容易出错,并且身份验证延迟可以忽略不计

此外,我们计划更新到 CRM 2011

那么,我们中的哪一个是对的?

4

2 回答 2

1

动态实体和强类型实体都需要身份验证。我不相信两者之间的身份验证存在延迟。

如果您正在编写可应用于其他 CRM 组织(如 ISV 那样)的通用代码,那么动态实体是您的最佳选择。否则我会建议强类型实体是更好的选择,因为代码更干净,更易读,正如你所说。

两组代码都需要在 CRM 2011 中重新工作。

祝一切顺利,

于 2012-08-02T13:41:54.983 回答
1

强类型实体和动态实体都使用 Web 服务,它们都需要身份验证,因此没有真正的区别。

在升级到 Crm 2011 方面,Web 服务在 2011 年发生了变化,因此如果您想重新编码,您可以,但两者都必须重新编码。或者您可以继续使用 Crm 4 网络服务而不重新编码。所以再次没有真正的区别。

我找不到任何来自微软的东西说他们更喜欢动态实体。在使用 Microsoft Dynamics CRM 2011 进行开发的最佳实践中,他们实际上说要根据您的情况使用这两种方法。

当您的代码必须处理编写代码时未知的实体和属性时,请使用 Entity 类。但是,这种灵活性有一个缺点,因为您无法在编译时验证实体和属性名称。如果您的实体已在代码时定义,则应使用可通过使用 CrmSvcUtil 工具生成的早期绑定类型。有关详细信息,请参阅在代码中使用早期绑定实体类。

我认为这主要归结为风格和偏好(没有人是对的)——我个人更喜欢动态实体。

强类型 - 优点:

  • 智能感知
  • 设计\编译时验证
  • 您不必检查 Crm 的所有实体、字段和关系名称
  • 编译后的可执行文件包含调用类型的属性、方法和事件所需的代码

强类型 - 缺点:

  • 您必须生成 WSDL(并在每次 Crm 更改时不断重新生成它)
  • 上次检查时生成的类没有通过代码分析
  • 它可能有点“笨拙”,例如,使用动态实体创建新记录通常需要几行代码。必须生成数百个强类型类来编写几行代码似乎有点过头了。
于 2012-08-04T15:17:07.037 回答