2012-08-02 38 views
2

我上关于插件或工作流使用WebServices的VS使用动态实体在Microsoft CRM 4.0

使用WebServices的同事辩论,他说使用动态的entites是由微软提出,作为最佳实践网络服务需要认证。

我认为使用WSDL和强类型的实体是清洁,不易出错,认证延迟是微不足道的

同时,我们也正在计划更新至2011年CRM

左右,其中一个我们是对的?

回答

1

两个强类型和动态实体使用Web服务,这都需要认证,所以世界上没有真正的有差异。

在升级到CRM 2011年而言,Web服务已经在2011年改变,因此,如果你想重新编码你可以,但两者必须被重新编码。或者你可以继续使用Crm 4的web服务,而不是重新编码。所以再次没有真正的区别。

我无法找到任何来自微软表示他们更喜欢动态实体。在Best Practices for Developing with Microsoft Dynamics CRM 2011他们实际上说要使用两者取决于你的情况。

使用该实体类时,你的代码必须在实体和未在编写代码时已知 属性工作。 但是,这种灵活性具有缺点,因为在编译时您无法验证实体和属性名称。如果你的实体 已经在代码中定义的时间,你应该使用早期绑定类型 ,你可以通过使用CrmSvcUtil工具生成。有关更多 信息,请参阅使用代码中的早期绑定实体类。

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

强类型 - 优点:

  • 智能感知
  • 设计\编译时验证
  • 你不必检查CRM为所有实体,领域和关系名
  • 编译的可执行文件包含了调用类型属性,方法和事件所需的代码

强类型 - 缺点:

  • 你必须生成WSDL(并保持再生它每次CRM改变)
  • 生成的类不通过代码分析,我查了最后一次
  • 它可以是一个有点“重手” ,例如用动态实体创建新记录通常是几行。不得不生成数百个强类型类来编写几行代码看起来像是一种矫枉过正的行为。
1

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

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

的代码这两套将需要与CRM 2011年重新工作

一切顺利,

相关问题