Data8.PowerPlatform.Dataverse.Client 2.0.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package Data8.PowerPlatform.Dataverse.Client --version 2.0.2
NuGet\Install-Package Data8.PowerPlatform.Dataverse.Client -Version 2.0.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Data8.PowerPlatform.Dataverse.Client" Version="2.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Data8.PowerPlatform.Dataverse.Client --version 2.0.2
#r "nuget: Data8.PowerPlatform.Dataverse.Client, 2.0.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Data8.PowerPlatform.Dataverse.Client as a Cake Addin
#addin nuget:?package=Data8.PowerPlatform.Dataverse.Client&version=2.0.2

// Install Data8.PowerPlatform.Dataverse.Client as a Cake Tool
#tool nuget:?package=Data8.PowerPlatform.Dataverse.Client&version=2.0.2

Data8 .NET Core Client SDK for On-Premise Dynamics 365/CRM

The Microsoft.PowerPlatform.Dataverse.Client package provides an SDK for connecting to Dataverse & Dynamics 365 instances from .NET Core, but relies on OAuth authentication. This poses a problem when you need to connect to an on-premise instance that either does not support OAuth, or where the OAuth tokens regularly expire and cannot be automatically refreshed.

This package Data8.PowerPlatform.Dataverse.Client builds on top of the Microsoft one and offers an alternative IOrganizationService implementation using WS-Trust. This allows you to connect using the URL of the organization service, username and password without any additional configuration.

Because this OnPremiseClient implements the same IOrganizationService as the standard ServiceClient implementation your code can work with either as shown in the sample code below.

Sample

using Data8.PowerPlatform.Dataverse.Client;
using Microsoft.PowerPlatform.Dataverse.Client;
using Microsoft.Xrm.Sdk;

var onPremIfd = new OnPremiseClient("https://org.crm.contoso.com/XRMServices/2011/Organization.svc", "AD\\username", "password!");
var onPremAD = new OnPremiseClient("https://crm.contoso.com/org/XRMServices/2011/Organization.svc", "AD\\username", "password!");
var online = new ServiceClient("AuthType=ClientSecret;Url=https://contoso.crm.dynamics.com;ClientId=637C79F7-AE71-4E9A-BD5B-1EC5EC9F397A;ClientSecret=p1UiydoIWwUH5AdMbiVBOrEYn8t4RXud");

CreateRecord(onPremIfd);
CreateRecord(onPremAD);
CreateRecord(online);

void CreateRecord(IOrganizationService svc)
{
	var entity = new Entity("account")
	{
		["name"] = "Data8"
	};

	entity.Id = svc.Create(entity);
}

Compatibility

This package is designed to be used with on-premise Dynamics 365 instances. Supported authentication types are:

  • Integrated Windows Authentication
  • Claims-Based Authentication
  • Internet Facing Deployment

The package targets .NET Core 3.1 or later.

Notes on Integrated Windows Authentication

If claims-based authentication is not configured on your Dynamics 365 instance, you will be using Integrated Windows Authentication. This library can authenticate to these instances, but only where the client is running on Windows.

You can choose to supply a username (in the format DOMAIN\Username or username@domain) and password, or leave both blank to authenticate as the currently logged on user.

Thanks

Many thanks to Data8 for the time to develop this library and release it for public use.

This project builds on the work of the NSspi library to handle the internals of working with the Windows authentication functions. Unfortunately the latest release of NSspi was missing a few required methods, so it is currently including some code from a fork of that library.

Support and Contributing

This package is not officially supported, either by Data8 or Microsoft. We will attempt to provide support on a best-efforts basis via GitHub issues but can't guarantee we will be able to resolve any specific issues you may have.

Contributions to the package are welcome in the form of suggestions via Issues or bug fixes/enhancements via Pull Requests.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.1 is compatible. 
.NET Framework net462 is compatible.  net463 was computed.  net47 was computed.  net471 was computed.  net472 is compatible.  net48 is compatible.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.4.1 9,515 9/26/2023
2.4.0 3,418 9/5/2023
2.3.2 4,422 8/24/2023
2.3.1 20,274 11/18/2022
2.3.0 9,399 10/21/2022
2.2.0 3,695 9/12/2022
2.1.1 2,683 6/16/2022
2.1.0 633 5/19/2022
2.0.2 2,451 4/25/2022
2.0.1 749 3/24/2022
2.0.0 469 3/10/2022
1.0.0 527 11/15/2021
0.2.2 331 11/10/2021
0.2.1 324 11/9/2021
0.2.0 317 11/9/2021
0.1.0 363 11/9/2021

Added support for AD authentication