Skip to content

Commit 6549b58

Browse files
authored
Merge pull request #6464 from MicrosoftDocs/main
Live publish
2 parents e72e93d + 4e9cfd0 commit 6549b58

34 files changed

+320
-104
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/TOC.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1208,7 +1208,7 @@
12081208
href: ./canvas-apps/map-component-input-fields.md
12091209
- name: Add multimedia to a component
12101210
href: ./canvas-apps/component-multimedia.md
1211-
- name: Behavior formulas
1211+
- name: Behavior formulas (experimental)
12121212
href: ./canvas-apps/component-behavior.md
12131213
- name: Performance and optimization
12141214
items:

powerapps-docs/maker/canvas-apps/app-from-image.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn about how to use your own designs saved in image formats and
44
author: norliu
55
ms.topic: article
66
ms.custom: canvas
7-
ms.date: 05/24/2022
7+
ms.date: 06/01/2022
88
ms.subservice: canvas-maker
99
ms.author: norliu
1010
ms.reviewer: tapanm
@@ -32,6 +32,7 @@ With the **Image to app** feature, you can now create an app from a visual desig
3232
> [!NOTE]
3333
> - The styling of the components in the app, such as fonts and colors, will be based on the **Office Blue** theme in Power Apps.
3434
> - If you want the exact design styles to be preserved when you create your app, consider creating a [canvas app from Figma](figma/overview.md).
35+
> - Power Apps doesn't persist the image that you upload. The uploaded image is only processed in-memory to generate the app.
3536
3637
## Prerequisites
3738

@@ -57,7 +58,7 @@ With the **Image to app** feature, you can now create an app from a visual desig
5758
1. Upload your own image. If you don't have an image ready, you can also use one of the available sample images.
5859

5960
> [!NOTE]
60-
> When using your own image, ensure the image meets the image requirements mentioned in the prerequisites.
61+
> When using your own image, ensure the image meets the image requirements mentioned in [Image requirements](#image-requirements).
6162
6263
For example, here are two sample images with acceptable and unacceptable qualities:
6364

@@ -129,11 +130,19 @@ With the **Image to app** feature, you can now create an app from a visual desig
129130

130131
1. [Save and publish](save-publish-app.md) the app.
131132

133+
## Image requirements
134+
135+
- The image you want to upload must have the file extension of .jpg or .png. If you have a design image with another file extension, save the image file with .jpg or .png file extension in order to use it with this feature.
136+
- Image size must be less than 4 MB.
137+
- If you're using screenshots or digital sketches, alter the background to light, pure-color if white is not available.
138+
- If you're taking a picture, use higher contrast or make it brighter. Make sure the part you want to tag is clear and bright.
139+
- If you're taking a picture using a camera or phone, use higher contrast to favor light backgrounds. You can use any available photo editing apps to edit the picture contrast.
140+
- If you're using hand-drawn images, try to use **white** sketch pad without any lines on it.
141+
132142
## Limitations
133143

134144
- Supported components: [Button](controls/control-button.md), [Check box](controls/control-check-box.md), [Data cards](working-with-cards.md), [Date picker](controls/control-date-picker.md), [Drop down](controls/control-drop-down.md), [Edit form](controls/control-form-detail.md), [Label](controls/control-text-box.md), [Radio](controls/control-radio.md), [Rating](controls/control-rating.md), [Slider](controls/control-slider.md), [Text input](controls/control-text-input.md), [Toggle](controls/control-toggle.md)
135145
- Only canvas apps are supported.
136-
- Only images with the file extension of .jpg or .png are supported. If you have a design image with another file extension, save the image file with .jpg or .png file extension in order to use it with this feature.
137146
- You can upload only one image at a time to create an app.
138147
- Complex forms, forms with colored backgrounds, multi-page forms, and forms with underlined input boxes aren't supported.
139148
- Support for styles is limited. The styling of the components in the app, such as fonts and colors will be based on the **Office Blue** theme in Power Apps.

powerapps-docs/maker/canvas-apps/component-behavior.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Behavior formulas for components
2+
title: Behavior formulas for components (experimental)
33
description: Do one or more tasks in canvas app when a component-based action occurs.
44
author: hemantgaur
55
ms.subservice: canvas-developer
@@ -16,12 +16,20 @@ contributors:
1616
- tapanm-msft
1717
---
1818

19-
# Behavior formulas for components
19+
# Behavior formulas for components (experimental)
2020

21-
Specify one or more [behavior formulas](working-with-formulas-in-depth.md) that run when an event triggers a change in component instances.
21+
[This article is pre-release documentation and is subject to change.]
22+
23+
> [!IMPORTANT]
24+
> This is an experimental feature. For more information, see [Experimental and preview features](working-with-experimental-preview.md).
25+
26+
Specify one or more [behavior formulas](working-with-formulas-in-depth.md) that run when an event triggers a change in component instances.
2227

2328
For example, set a component's **OnReset** property to one or more formulas that do initialization and clear input. Reset values when the **Reset** function runs on the component instances.
2429

30+
> [!NOTE]
31+
> The feature to create custom behavioral properties is currently experimental. However, you can use the default **OnReset** property that is available on all components in your production environment.
32+
2533
## OnReset
2634

2735
With a component master selected, select **OnReset** in the drop-down list of properties (on the left side of the formula bar), and then enter one or more formulas.

0 commit comments

Comments
 (0)