At long last a version of the CDS SDK is available with .NET Core 3.0 and 3.1 as target frameworks! This release marks a lot of significant change as well with the SDK to align with how CDS and Dynamics are marketed and sold. Gone are the days of XRM and CRM, welcome to the SDK aligning now with Power Platform and CDS.

The Warnings

This is an ALPHA release

Use at your own risk

There is no support

Namespace/class names may and will change through releases

Only OAuth, Certificate, Client Secret authentication types (for .NET Core)

(for .NET Core) Do not use this in production

The Packages

Microsoft.Powerplatform.Cds.Client

Effectively the Xrm Tooling library but instead of CrmServiceClient it is CdsServiceClient in a new namespace. Removes items that are specific to Dynamics 1st party apps, only contains items for “CDS naked”, i.e. no Dynamics 1st party like lead messages, case messages, etc.

Microsoft.Powerplatform.Cds.Client.Dynamics

A helper library with the Dynamics 1st party specific items for Sales and Service.

Microsoft.Dynamics.Sdk.Messages

A helper library for Sales, Service and Marketing Dynamics 1st party applications.

Getting the Packages

If you are using NuGet Package Manager and searching for these packages you might not find them and that is because they are all flagged as pre-release packages being that they are alpha releases.

Within NuGet Package Manager ensure you select the checkbox “Include prerelease” when you are searching and you should then see them appear.

Including prerelease packages in NuGet Package Manager

Breaking it down…

Right off the bat from the packages you can see just as CDS and Dynamics are now sold as separate items, the SDK follows that pattern. The Cds.Client library contains ONLY the CDS specific items it needs to and gone is everything related to Dynamics 1st party apps. So if you are building right on CDS all you need is the Cds.Client library. This is great as the profile of the core client library gets a lot smaller and allows for the potential of faster iteration of that library without all the bulk of the other functions that the 1st party applications bring.

When you import the Cds.Client library you will notice it still also has a dependency to ADAL 3.x. This is likely the reason behind the lack of support for username/password on .NET Core. It is very likely that as the preview goes on this is something that could change to at least the latest version of ADAL or even MSAL, the new version of ADAL that has been out for a while now. This is an alpha and it looks like a very straight forward port of the existing Xrm.Tooling library with all the same version dependencies.

I have played with CdsServiceClient and it works just like CrmServiceClient. I have CDS Azure Functions running on Linux (😜 so cool).

CDS Client SDK in an Azure Function 3.0 running on Linux

Why is this cool?

The following are my top why its cool items but I am sure others will have a bunch more as well.

Azure Functions 2.0/3.0 support

Azure Functions 2.0 removed .NET Framework support so if you were building functions with CDS and wanted to use the tooling then you were stuck on 1.0 functions. Azure Functions 1.0 haven’t be upgraded or touched and you can’t benefit from the advancements made in later versions

ASP.NET Core 3.x support

When ASP.NET Core 3.x released it killed support for .NET Framework as well. Previously you could only do up to ASP.NET Core 2.2 while using CDS/Dynamics SDK.

Multi-platform

You can build CDS applications that run from platforms other than Windows using the SDK.

Questions/Resources

I am sure this brings with it a lot of questions from developers.

Can you use this to build plugins? No .

. Does CrmSvcUtil still work to build strongly typed classes? Yes.

The spot to post your questions and interact with others using this alpha release is on the Power Apps component framework, ALM & Pro Dev Forums.

Matt B has posted an announcement about the release as well, Announcing the .net Core SDK for Common Data Service (CDS) – External Client Development.

Update March 6 2020: The CDS Platform Team has created a Git Repo to track issues for the alpha release. So if you have a problem or want to review outstanding issues then head over the new repo!

https://github.com/microsoft/PowerPlatform-CdsServiceClient

This is great to see this release so early and the SDK team interested in the engagement from the community. A huge thank you to them for considering to do this and really look forward to more opportunity for this type of early access publicly. Go out there, use it and provide your feedback to help shape the changes you want and need in the SDK.