访问云端 Microsoft Dynamics 365 数据的正确方法是什么? SDK 与 Web Api

What is the correct way to access Microsoft Dynamics 365 data on the cloud? SDK vs Web Api

我是 .NET Web 开发人员,是 Microsoft CRM 的新手,请耐心等待。我正在尝试找到连接到 Microsoft Dynamics 365 并检索一些 PDF 文件的正确方法。我需要知道这样做的正确方法是什么。我有一些关于谷歌搜索的主题的问题,但对我来说没有意义。

通过SDK访问

我找到了 this Microsoft documentation,它解释了 SDK。然而,有一个注释说这已经随着 2016 年的更新而改变,并且谷歌搜索更多,似乎是不再使用它的 SDK。我错了?

使用 Web 访问数据API

还有一个 Microsoft documentation 试图解释通过 Web 连接的方式 Api,但是从一开始,它就说:“本节包含参考文档构成 Microsoft Dataverse 和 Dynamics 365 Customer Engagement 的 Web API 的类型、功能和操作 (本地)".

“本地”评论让我很困扰。我不想学习对我不起作用的东西。为什么网络 api 似乎只能在前提下工作?为什么不在云中使用 Dynamics?

对于您所看到的,我完全不明白我究竟如何才能访问数据以通过基于 Microsoft Dynamics 365 云的 C# 代码以编程方式检索文件。

拜托,如果你能给我指明正确的方向,我将不胜感激。

谢谢!

如果你的语言是C#,你可以使用微软提供的SDK,它适用于在线(云)版本。

如果您使用的是 .NET Framework,则可以使用此 NuGet 包: https://www.nuget.org/packages/Microsoft.CrmSdk.XrmTooling.CoreAssembly/

如果您使用的是 .NET Core/.NET 5.0+,则可以使用此 NuGet 包(但在 public 预览版中): https://www.nuget.org/packages/Microsoft.PowerPlatform.Dataverse.Client/

这里有一些关于这些包的详细信息:https://www.crmanswers.net/2021/05/microsoftpowerplatformdataverseclient.html

除了 Guido 的出色信息外,还有一些其他注意事项:

插件和自定义工作流是您将在其中使用 SDK 的自定义 .NET 程序集。他们目前仅支持完整的 .NET Framework。

要从表单上的 JavaScript 库调用系统(a.k.a。客户端脚本),您需要使用 WebAPI.

对于控制台应用程序、Web 应用程序和其他外部代码,您可以在 SDK 和 WebAPI 之间进行选择。 (正如 Guido 指出的那样,SDK 的 .NET Core 版本处于预览状态)。

使用 SDK 时,有两种可能的编码方法:Early Bound 和 Late Bound。
通过早期绑定,您可以为 DataVerse 表生成代理 类。 类 每个 column/attribute 都有属性,可以启用智能感知。

对于后期绑定,您可以使用表和属性的字符串名称。 This article 有更多信息。

用于生成早期绑定的工具 类 包括 Microsoft 的 CrmSvcUtil.exe, Daryl LaBar's Early Bound Generator in the XrmToolbox, 以及 DataVerse XrmToolkit.

的商业 Visual Studio 附加组件

如果您打算使用 WebAPI,David Yack's API Helper 可能会让您感兴趣。