I’m regularly blown away by the progress made in the .NET platform. A huge amount of work as gone into making it faster and adding support for more platforms.
Moving to .NET Core was unblocked for us by the release of Microsoft’s Dataverse client and allowed us to move systems away from the older .NET Framework. But this didn’t give us the support we needed for on-premise instances, so I released the Data8.PowerPlatform.Dataverse.Client package last year to help.
After the initial release that supported claims-based authentication and Internet Facing Deployments (IFD) only, I later extended it to cover native Windows authentication as well. But even though this ran on .NET Core, it still needed to run on Windows as it used the underlying Windows APIs.
Now with the (hopefully) imminent release of .NET 7 I’ve now taken the next step, using the new APIs to make this a truly cross-platform library.
With the new version 2.2 of this package it now supports:
|Server Authentication Type|
Note: Windows authentication from a Linux client only works when using .NET 7, currently in preview. The
gss-ntlmssp package must also be installed.
You can now use exactly the same code to connect regardless of the platform you’re running on:
var svc = new OnPremiseClient("https://crm.contoso.com/org/XRMServices/2011/OrganizationService.svc", "AD\\username", "password"); var qry = new QueryExpression("contact"); qry.Criteria.AddCondition("firstname", ConditionOperator.Equal, "Mark"); qry.Criteria.AddCondition("lastname", ConditionOperator.Equal, "Carrington"); var results = svc.RetrieveMultiple(qry);
To give it a try, install the .NET 7 preview SDK and build your app using version 2.2 of the Data8.PowerPlatform.Dataverse.Client package.
I hope this helps expand how you can deploy Dynamics CRM / 365 integrations. For me it’s time to start getting more comfortable with Linux administration!