Apps umstellen auf Dataverse ServiceClient

Microsoft wechselt vom Microsoft Dataverse SDK für .NET zu einem neuen Webdienstclient, der Microsoft Authentication Library (MSAL) (MSAL) für die Authentifizierung verwendet. In diesem Artikel wird erläutert, warum Microsoft diese Änderungen vornehmen, was betroffen ist und wie Sie Ihre Clientanwendungen aktualisieren, damit sie weiterhin wie erwartet funktionieren.

Anmerkung

Einige vorhandene Entwicklerdokumentation und Beispielcode verwenden die Dataverse SDK-APIs im CoreAssemblies NuGet-Paket. Dieser Artikel, beschreibt und empfiehlt das neue Dataverse .Client NuGet Paket und die Änderungen, die erforderlich sind, um es zu verwenden. Microsoft aktualisiert dokumentations- und Beispielcode im Laufe der Zeit.

Warum die Änderung?

Mehrere Gründe rechtfertigen die Änderungen am Dataverse SDK für .NET. Einige Gründe werden in den folgenden Abschnitten beschrieben.

Unterstützung für plattformübergreifende Anwendungen

Der neue Dataverse ServiceClient Klasse unterstützt die .NET Core-Entwicklung. Um zu sehen, welche Buildziele unterstützt werden, wechseln Sie zu Microsoft. PowerPlatform.Dataverse.Client und wählen Sie die Registerkarte "Frameworks" aus.

MSAL-Authentifizierung

Die Microsoft Azure Active Directory-Authentifizierungsbibliothek (ADAL.NET) erhält keinen Support. Microsoft Authentifizierungsbibliothek (MSAL.NET) ist die empfohlene Authentifizierungs-API für die Zukunft. Die neue ServiceClient-API verwendet MSAL, während die ältere CrmServiceClient-API ADAL verwendet.

Leistungs- und Funktionsvorteile

Die Dataverse ServiceClient-Klasse unterstützt eine kleinere Schnittstellenoberfläche, Inline-Authentifizierung nach Instanz und Microsoft.Extensions.Logging.ILogger. Bei der Inlineauthentifizierung können Sie eine benutzerdefinierte Authentifizierungshandlerfunktion an den ServiceClient Konstruktor übergeben. Mit diesem Ansatz können Sie einen Authentifizierungshandler pro Webdienstverbindung anstelle von nur einem Prozess verwenden.

Was ist betroffen?

In der folgenden Liste werden die Auswirkungen auf verschiedene Arten von Codierungsprojekten zusammengefasst.

  • Plug-ins oder benutzerdefinierte Workflow-Aktivitäten – keine Änderungen

  • Neue oder bestehende Online-Anwendungen – dieser Artikel ist etwas für Sie

  • Lokale Anwendungen – dieser Artikel ist noch nicht für Sie bestimmt.

Was müssen Sie tun?

Die Klassenelementsignaturen von ServiceClient und CrmServiceClient sind identisch, mit Ausnahme der Klassennamen (in einigen Fällen). Sie sollten keine wesentlichen Änderungen an Ihrem Anwendungscode vornehmen müssen.

.NET Framework basierte (Online-)Anwendungsprojekte

Führen Sie die folgenden Schritte aus, um Ihre Anwendungsprojekte zu aktualisieren:

  1. Entfernen Sie die älteren CoreAssemblies (und die damit verbundenen) NuGet Pakete aus Ihrem Projekt.
  2. Fügen Sie das neuere Dataverse .Client NuGet Paket zu Ihrem Projekt hinzu.
  3. Ändern Sie jede Erwähnung der CrmServiceClient Klasse zu ServiceClient in Ihrem Code.
  4. Korrigieren Sie alle nicht übereinstimmenden Namespaces, da die neue ServiceClient Klasse jetzt im Microsoft.PowerPlatform.Dataverse.Client Namespace ist.

.NET Core-basierte (Online-)Projekte

Fügen Sie das Dataverse.Client NuGet-Paket zu Ihren Projekten hinzu, fügen Sie Code hinzu, um die Dataverse SDK-APIs aufzurufen und zu erstellen.

Plug-ins oder benutzerdefinierte Workflowaktivitäten

Jetzt, da das Event Framework (in der Sandbox) mit .NET Framework 4.8 erstellten Code unterstützt, kompilieren Sie Ihre vorhandenen Plug-Ins und benutzerdefinierten Workflowaktivitäten neu, um .NET Framework 4.8 als Zielframework festzulegen. Da Dataverse jedoch weiterhin Ältere Versionen (4.6.2, 4.7, 4.7.x) von .NET Framework unterstützt, können Sie festlegen, dass Ihre benutzerdefinierten Codebuildziele jetzt auf diese älteren Versionen festgelegt sind.

Verwenden Sie weiterhin die Microsoft.CrmSdk.CoreAssemblies-NuGet-Pakete (und zugehörige Pakete).

Lokale Clients

Lassen Sie Ihre Anwendungsprojekte und Ihren Code unverändert. Verwenden Sie weiterhin das NuGet-Paket Microsoft.CrmSdk.CoreAssemblies und die Klasse CrmServiceClient. Planen Sie jedoch, Ihre Projekte in naher Zukunft von benutzerdefinierten Service-Clients auf die Verwendung von CrmServiceClient oder ServiceClient umzustellen. Den geplanten Zeitplan für die Abschaltung des SOAP-Endpunkts im Jahr 2011 finden Sie unten.

Anmerkung

Wenn Sie die benutzerdefinierte Authentifizierung mit CrmServiceClient verwenden, können Sie Ihren benutzerdefinierten Authentifizierungscode mit ServiceClient weiterhin verwenden.

Codebeispiele

Hier verfügbar: ServiceClient-Codebeispiele

Zeitskala

In der folgenden Tabelle sind einige wichtige Termine aufgeführt, die Sie beachten sollten.

Zeitrahmen Veranstaltung
Juni 2022 GA-Release des Microsoft.PowerPlatform.Dataverse.Client-NuGet-Pakets
Dezember 2022 Microsoft-Support für ADAL endet
Zu einem späteren Zeitpunkt Geplante Abschaltung des SOAP-Endpunkts 2011 für den Zugriff von Clientanwendungen, die nicht unsere Serviceclients verwenden (CrmServiceClient oder ServiceClient)

Wichtig

Die CrmServiceClient Klasse funktioniert weiterhin wie dokumentiert, auch nachdem die ADAL-Authentifizierung deaktiviert wurde. Beide Dienstclientklassen funktionieren weiterhin wie dokumentiert, nachdem der SOAP-Endpunkt 2011 deaktiviert wurde. Falls erforderlich, kann Microsoft eine aktualisierte Assembly veröffentlichen, die überarbeitete Dienstclients enthält, die von Ihrer Anwendung zur Laufzeit geladen werden müssen.

Siehe auch

Übersicht über die Microsoft Authentication Library (MSAL) (MSAL)
Anwendungen zur Microsoft Authentication Library (MSAL) (MSAL) migrieren