Skip to content

Commit 68f1a93

Browse files
committed
Merge branch 'main' into 2739677
2 parents 77d7f30 + 4e9cfd0 commit 68f1a93

File tree

5 files changed

+122
-22
lines changed

5 files changed

+122
-22
lines changed

powerapps-docs/developer/data-platform/TOC.yml

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@
408408
href: isv-app-usage-analytics.md
409409
- name: Install failures analytics
410410
href: isv-install-failure-analytics.md
411-
- name: Create client applications
411+
- name: Create applications
412412
href: connect-dataverse.md
413413
items:
414414
- name: Authenticate apps and services with Microsoft Dataverse
@@ -420,25 +420,29 @@
420420
href: authenticate-oauth.md
421421
- name: Use of Office365 (WS-Trust) authentication
422422
href: authenticate-office365-deprecation.md
423-
- name: "Tutorial: Register an app with Azure Active Directory"
424-
href: walkthrough-register-app-azure-active-directory.md
425-
- name: "Tutorial: Create an ASP.NET Core Blazor WebAssembly App"
426-
href: walkthrough-blazor-webassembly-single-tenant.md
427-
- name: Build web applications using Server-to-Server (S2S) authentication
428-
href: build-web-applications-server-server-s2s-authentication.md
429-
items:
430-
- name: Use Multi-Tenant Server-to-server authentication
431-
href: use-multi-tenant-server-server-authentication.md
432-
- name: Use Single-Tenant Server-to-server authentication
433-
href: use-single-tenant-server-server-authentication.md
434-
- name: Use OAuth with Cross-Origin Resource Sharing to connect a Single Page Application
435-
href: oauth-cross-origin-resource-sharing-connect-single-page-application.md
436-
- name: "Tutorial: Register and configuring a SPA application with adal.js"
437-
href: walkthrough-registering-configuring-simplespa-application-adal-js.md
423+
- name: Build web applications using Server-to-Server (S2S) authentication
424+
href: build-web-applications-server-server-s2s-authentication.md
425+
items:
426+
- name: Use Multi-Tenant Server-to-server authentication
427+
href: use-multi-tenant-server-server-authentication.md
428+
- name: Use Single-Tenant Server-to-server authentication
429+
href: use-single-tenant-server-server-authentication.md
430+
- name: Use OAuth with Cross-Origin Resource Sharing to connect a Single Page Application
431+
href: oauth-cross-origin-resource-sharing-connect-single-page-application.md
438432
- name: Build Windows client apps using XRM tools
439433
href: xrm-tooling/
440434
- name: Discover user organizations
441435
href: discovery-service.md
436+
- name: Tutorials
437+
items:
438+
- name: "Tutorial: Register an app with Azure Active Directory"
439+
href: walkthrough-register-app-azure-active-directory.md
440+
- name: "Tutorial: Create an ASP.NET Core Blazor WebAssembly App"
441+
href: walkthrough-blazor-webassembly-single-tenant.md
442+
- name: "Tutorial: Register and configuring a SPA application with adal.js"
443+
href: walkthrough-registering-configuring-simplespa-application-adal-js.md
444+
- name: Transition apps to Dataverse ServiceClient
445+
href: sdk-client-transition.md
442446
- name: Best practices
443447
href: best-practices/index.md
444448
- name: Online Management API

powerapps-docs/developer/data-platform/developer-tools.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ The following tools are distributed in NuGet packages. The [Developer Guide: Dow
3939
|Plug-in Registration tool `PluginRegistration.exe`|A tool used to subscribe .NET assembly plug-in classes to data transaction events. <br />More information: <br />[Create a plug-in](apply-business-logic-with-code.md#create-a-plug-in)<br />[Register a plug-in](register-plug-in.md)|
4040
|SolutionPackager tool `SolutionPackager.exe`|A tool that can reversibly decompose a Dataverse compressed solution file into multiple XML files and other files so that these files can be easily managed by a source control system.<br /> More information: <br />[Team development](/power-platform/alm/team-development-alm)<br />[Use the SolutionPackager tool to compress and extract a solution file](/dynamics365/customer-engagement/developer/compress-extract-solution-file-solutionpackager)|
4141

42-
## .NET SDK Assemblies
42+
## Dataverse SDK for .NET
4343

44-
The following are assemblies .NET developers can use. The latest versions are available to download in the corresponding NuGet packages.
44+
The following describes available Dataverse SDK assemblies for .NET code development. The latest versions are available to download in the corresponding NuGet packages.
4545

4646
### Work with data
4747

48-
Use these assemblies to interact with the Organization service and Discovery services.
48+
Use these assemblies to interact with the Organization service and Discovery service.
4949

5050
More information: [Use the Dataverse Organization service](/dynamics365/customer-engagement/developer/use-microsoft-dynamics-365-organization-service)
5151

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
---
2+
title: "Transition client applications to Dataverse ServiceClient | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
3+
description: "Learn about the benefits of and the changes needed to transitions your client application to use Dataverse ServiceClient class for web service connections." # 115-145 characters including spaces. This abstract displays in the search result.
4+
ms.custom: ""
5+
ms.date: 06/01/2022
6+
ms.reviewer: "pehecke"
7+
ms.topic: "article"
8+
author: "phecke" # GitHub ID
9+
ms.service: powerapps
10+
ms.subservice: dataverse-developer
11+
ms.author: "pehecke" # MSFT alias of Microsoft employees only
12+
manager: "kvivek" # MSFT alias of manager or PM counterpart
13+
search.audienceType:
14+
- developer
15+
search.app:
16+
- PowerApps
17+
- D365CE
18+
---
19+
20+
# Transition apps to Dataverse ServiceClient
21+
22+
We are transitioning from [Microsoft Dataverse SDK for .NET](developer-tools.md#dataverse-sdk-for-net) to include a new web service client that uses MSAL for authentication. This article contains the information you need to understand why we are making these changes, what is impacted, and how to update your client applications so they continue to function as expected.
23+
24+
> [!NOTE]
25+
> All our existing developer documentation and sample code use the Dataverse SDK APIs found in the [CoreAssemblies](https://www.nuget.org/packages/Microsoft.CrmSdk.CoreAssemblies/) NuGet package. Only this article that you are reading describes the newer [Dataverse.Client](https://www.nuget.org/packages/Microsoft.PowerPlatform.Dataverse.Client/) NuGet package and the changes required to make use of it. More documentation and sample code updates are coming.
26+
27+
## Why the change?
28+
29+
There are quite a few good reasons for the changes to the Dataverse SDK for .NET. A few are called out below.
30+
31+
### Cross-platform application support
32+
33+
The new Dataverse [ServiceClient](xref:Microsoft.PowerPlatform.Dataverse.Client.ServiceClient) class supports .NET Core development. Navigate to [Microsoft.PowerPlatform.Dataverse.Client](https://www.nuget.org/packages/Microsoft.PowerPlatform.Dataverse.Client/) and select the **Frameworks** tab to see what build targets are supported.
34+
35+
### MSAL authentication
36+
37+
Microsoft Azure Active Directory Authentication Library (ADAL) support ends soon. Microsoft Authentication Library (MSAL) is the recommended authentication API going forward. Our new [ServiceClient](xref:Microsoft.PowerPlatform.Dataverse.Client.ServiceClient) API use MSAL while our older [CrmServiceClient](xref:Microsoft.Xrm.Tooling.Connector.CrmServiceClient) API uses ADAL.
38+
39+
### Performance and functional benefits
40+
41+
The Dataverse `ServiceClient` class supports a smaller interface surface, inline authentication by instance, and `ILogger`. As for inline authentication, you can pass a custom authentication handler function to the `ServiceClient` constructor. In this way you can have one authentication handler per web service connection instead of just one per process.
42+
43+
## What is impacted?
44+
45+
Below is a quick summary of the impact to certain types of coding projects.
46+
47+
- Plug-ins or custom workflow activities - no changes, just business as usual
48+
49+
- New or existing online applications - this article is definitely for you
50+
51+
- On-premise applications - this article is not for you, yet
52+
53+
## What do you need to do?
54+
55+
The good news is that the class member signatures of `ServiceClient` and `CrmServiceClient` are the same, except for the class names themselves being slightly different. Application code should not need any significant changes.
56+
57+
### .NET Framework based (online) application projects
58+
59+
To update your application projects, follow these steps.
60+
61+
1. Remove the older [CoreAssemblies](https://www.nuget.org/packages/Microsoft.CrmSdk.CoreAssemblies/) (and related) NuGet packages from your project.
62+
1. Add the newer [Dataverse.Client](https://www.nuget.org/packages/Microsoft.PowerPlatform.Dataverse.Client/) NuGet package to your project.
63+
1. Change every mention of the [CrmServiceClient](xref:Microsoft.Xrm.Tooling.Connector.CrmServiceClient) class to [ServiceClient](xref:Microsoft.PowerPlatform.Dataverse.Client.ServiceClient) in your code.
64+
1. Fix any namespace mismatch as the new `ServiceClient` class is now in the `Microsoft.PowerPlatform.Dataverse.Client` namespace.
65+
66+
### .NET Core based (online) projects
67+
68+
Simply add the [Dataverse.Client](https://www.nuget.org/packages/Microsoft.PowerPlatform.Dataverse.Client/) NuGet package to your projects, add code to call the Dataverse SDK APIs, and build.
69+
70+
### Plug-ins or custom workflow activities
71+
72+
Nothing really for you to do here. Continue using the [Microsoft.CrmSdk.CoreAssemblies](https://www.nuget.org/packages/Microsoft.CrmSdk.CoreAssemblies/) (and related) NuGet packages with .NET Framework 4.6.2.
73+
74+
### On-premise clients
75+
76+
Leave your application projects and code as is. Continue using the Microsoft.CrmSdk.CoreAssemblies NuGet package and `CrmServiceClient`class. However, plan to update your projects from using any custom service clients to instead use the `CrmServiceClient` or `ServiceClient` in the near future. See the planned [timeline](#timeline) for 2011 SOAP endpoint shutdown below.
77+
78+
> [!NOTE]
79+
> If you are using custom authentication with `CrmServiceClient`, you can continue to use your custom authentication code with `ServiceClient`.
80+
81+
## Timeline
82+
83+
The following table lists some important dates to keep in mind.
84+
85+
| Timeframe | Event |
86+
| --- | --- |
87+
|June 2022|GA release of the [Microsoft.PowerPlatform.Dataverse.Client](https://www.nuget.org/packages/Microsoft.PowerPlatform.Dataverse.Client/) NuGet package|
88+
|Fall 2022|Planned shutdown of the 2011 SOAP endpoint for access by client applications not using our service clients (`CrmServiceClient` or `ServiceClient`)|
89+
|December 2022|Microsoft support for ADAL ends|
90+
91+
### See also
92+
93+
[ServiceClient code samples](https://github.com/microsoft/PowerApps-Samples/tree/master/cds/orgsvc/C%23-NETCore/ServiceClient)
94+
[Overview of the Microsoft Authentication Library (MSAL)](/azure/active-directory/develop/msal-overview)
95+
[Migrate applications to the Microsoft Authentication Library (MSAL)](/azure/active-directory/develop/msal-migration)
96+
97+
[!INCLUDE[footer-include](../../includes/footer-banner.md)]

powerapps-docs/maker/data-platform/azure-synapse-link-advanced-configuration.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ description: "Learn about the advance configuration options and concepts in Azur
44
ms.custom: ""
55
ms.date: 07/07/2021
66
ms.reviewer: "Mattp123"
7-
87
ms.suite: ""
98
ms.tgt_pltfrm: ""
109
ms.topic: "conceptual"
@@ -68,7 +67,7 @@ You can toggle the **Show advanced configuration settings** under **Advanced** i
6867

6968
## Data partitioning
7069

71-
When you Dataverse table data to Azure data lake storage using Azure Synapse Link, the tables are partitioned (instead of a single file) in the lake based on the `createdOn` value on each row in the source. The default partition strategy is by month and data is partitioned in Azure data lake on a monthly basis.
70+
When you write Dataverse table data to Azure data lake storage using Azure Synapse Link, the tables are partitioned (instead of a single file) in the lake based on the `createdOn` value on each row in the source. The default partition strategy is by month and data is partitioned in Azure data lake on a monthly basis.
7271

7372
Based on the Dataverse table volume and data distribution, you can choose to partition your data by year. With this option, when Dataverse table data is written to the Azure data lake, it will be partitioned on a yearly basis based on the `createdOn` value on each row in the source. For tables without the `createdOn` column, the rows of data are partitioned into a new file every five million records. This is a per table setting and is available as a checkbox under **Advanced** > **Show advanced configuration settings**.
7473

powerapps-docs/maker/data-platform/azure-synapse-link-synapse.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ If you deleted the file system when unlinking, follow the steps above to relink
136136

137137
[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)]
138138

139-
After creating an Azure Synapse Link, two versions of the table data will be synchronized in Azure Synapse Analytics and/or Azure Data Lake Storage Gen2 in your Azure subscription to ensure you can reliably consume updated data in the lake at any given time:
139+
After creating an Azure Synapse Link, two versions of the table data will be synchronized in Azure Synapse Analytics and/or Azure Data Lake Storage Gen2 in your Azure subscription by default to ensure you can reliably consume updated data in the lake at any given time:
140140

141141
- Near real-time data: Provides a copy of data synchronized from Dataverse via Synapse Link in an efficient manner by detecting what data has changed since it was initially extracted or last synchronized.
142142
- Snapshot data: Provides a read-only copy of near real-time data that is updated at regular intervals (in this case every hour). 

0 commit comments

Comments
 (0)