我正在通过OData Web Api调用Dynamics 365,我想知道我可以使用哪个客户端库来简化编程。
我的用例是,我主要必须使用一个实体:联系人。我想检索一些数据,编辑数据并创建新的联系人。我正在以类似方式使用的另一种实体类型是地址。一个联系人可以有多个地址。
货币我正在使用简单的HTTP Client类与Dynamics进行通信。
我正在为Linux主机开发.NET Core应用程序,因此,我无法使用Dynamics CRM SDK(SOAP端点)。
我的问题是您的建议是:我应该使用Microsoft.OData.Client还是Simple.OData.Client?还是其他任何图书馆?
我尝试使用Microsoft.OData.Client并根据本文https://blogs.msdn.microsoft.com/odatateam/2014/03/11/tutorial-sample-how-to-use-odata-client-code-generator-to-generate-client-side-proxy-class/
生成了一个客户端(代理/包装器)此问题是它生成的文件大小为86 MB的.cs文件。也许以后使用此客户端可能是一种解决方案,但是在我们的项目中拥有如此大的源文件似乎太错误了。我想避免它,但是我没有找到生成它的选项。如果我不小心打开它,Visual Studio崩溃,Intellisense变慢了一些,如果打开了ReSharper,则VS大大降低了速度,等等... < / p>
我检查了Simple.OData.Client,似乎有不错的文档和API。例如:https://github.com/object/Simple.OData.Client/wiki/Retrieving-data
对于Microsoft.OData.Client,我找不到如何在不生成整个客户端的情况下以类型化方式使用它的文档。那可能吗?我只在使用生成的上下文的地方找到了它:http://odata.github.io/odata.net/v6/#04-01-basic-crud-operations
我认为使用Simple.OData.Client似乎是一个更好的选择,但我更喜欢使用Microsoft库。 你有什么建议吗?
答案 0 :(得分:0)
Microsoft已经引入了Web API,这是一种RESTful Web服务,您可以使用它来使用各种平台,编程语言和设备与Dynamics 365中的数据进行交互。
这是通过编程方式与Dynamics 365进行通信的新方式。
有几个可用的库。从下面的文章中,您可以找到这些内容。
我个人使用过David Yack的图书馆。
希望这会有所帮助。
答案 1 :(得分:0)
我刚刚实现了从Azure应用服务中运行的.Net Core Web App到POC Dynamics 365 Web API的集成。 这包括读取参考数据(连接不同实体)和使用参考数据列修改实体。
我发现完整的OData接口生成有问题:
经过大量研究,我开始使用Simple.OData.Client,因为这允许我
您必须自己创建类型化的fluent API中使用的实体类
如果希望CRM / C#代码之间的CRM实体名称不同,请使用DataContract属性。 然后,在进行Http调用时,Simple.OData将使用DataContract属性。
不幸的是,当我开始更深入地研究OAuth2授权和导航属性等问题时,并没有找到所有如此有见地的文档,但是确实在诸如github问题和一些高级教程等辅助资源中找到了所有答案。 https://www.odata.org/blog/advanced-odata-tutorial-with-simple-odata-client/
此外,使用Fiddler来回查看通讯情况对于了解正在发生的事情非常有用。