This course will teach developers how they can extend Dynamics 365 for Customer Engagement. Dynamics 365 for Customer Engagement refers to the applications that make up the CRM portion of Dynamics 365, which includes the Sales, Customer Service, Field Service, and Project Service Automation applications.
Developing Microsoft Dynamics 365 Solutions
Who should attend this course?
This 5-day course is intended for power users, consultants and key users new to Dynamics 365 for Customer Engagement or Model-Driven Apps.
The goal of this module is to provide participants with an overview of the Microsoft Dataverse architecture and where the extension points are as a developer.
- Introduction to Dataverse
- Overview of the Dataverse extensibility model
- overview of the Power Platform SDKs that are available from Microsoft via NuGet
- Introducing XrmToolBox
- LAB: Setting up your development machine.
Working with the Dataverse Web API
The Dataverse Web API is one of two web services you can use to work with data and metadata in Dataverse. The other is the Organization Service. The Dataverse Web API provides a development experience that can be used across a wide variety of programming languages, platforms, and devices to access the Dataverse data and functionality. In this module, students will learn about the authentication and authorization options with the Dataverse Web API.
- Introduction to the Dataverse Web API
- Registering client applications with Azure Active Directory
- Authenticate with the Dataverse Web API using OAuth 2.0 and MSAL
- Performing a simple Create operation using the Dataverse Web API
- Composing HTTP requests and error handling
- Dataverse Web API URL and versions
- The different HTTP methods and headers
- Executing your first HTTP requests
- LAB: Creating and configuring a client application for Dataverse using .NET 5.0
Using the Dataverse Web API
The Dataverse Web API provides a modern, RESTful web service you can use to interact with data and metadata in Dataverse using a wide variety of platforms, programming languages and devices. This module teaches students how they can execute CRUD operations, Actions and Functions using the Dataverse Web API.
- Query Data using the Dataverse Web API
- Creating, Updating and Deleting rows in tables
- Executing Actions and Functions
- Executing batches
- Impersonate another user using the Dataverse Web API
- Detect duplicate data using the Dataverse Web API
- LAB: Using Postman with the Dataverse Web API
Working with the Microsoft Dataverse Organization Service
This chapter introduces participants to the Dataverse Organization Service endpoint and will teach them how to do CRUD operations in .NET using late or early binding. The chapter also talks about the how the XRM Tooling SDK can be used to build Windows Application and what the future of the XRM Tooling will be
- What is the Organization Service endpoint in Dataverse
- The IOrganizationService Interface
- The OrganizationServiceProxy class
- Early versus late binding when accessing table rows
- An introduction to XRM Tooling and it’s future in the Power Platform
- Working with CrmServiceClient
- Use connection strings in XRM Tooling to connect to Dataverse
- Create, update, delete and retrieve table rows using XRM Tooling
- Retrieving data using the QueryExpression and QueryByAttribute classes
- LAB: Writing a Dataverse client application using XRM Tooling
Querying Microsoft Dataverse with FetchXML
When accessing Dataverse as a developer you have several ways to query for data. In this chapter you will learn the syntax of the FetchXML language to query Dataverse.
- Introduction to FetchXML
- Writing FetchXML queries
- Using XrmToolBox FetchXML Builder to create FetchXML queries
- Executing FetchXML queries using the Dataverse Web API
- Executing FetchXML queries using the Dataverse XRM Tooling
- LAB: Creating and executing FetchXML queries
A plug-in is custom business logic that you can deploy inside Dataverse to modify or augment the standard behavior of Dataverse. This chapter teaches students how they can write a custom Plug-in in .NET and deploy it to Dataverse. Students also learn how to debug Plug-ins in Dataverse.
- Plug-in overview
- Writing custom plug-ins
- Register and deploy plug-ins using the Plug-In Registration Tool
- Debugging plug-ins in the Dataverse
- Deploying Plug-Ins with Solutions
- Automate Plug-in deployment using Spkl
- Using Plugin Trace Viewer in XrmToolBox
- LAB: Creating and deploying a Plug-in
Microsoft Dataverse supports integration with Azure. Developers can register plug-ins with Dataverse that can pass runtime message data, known as the execution context, to one or more Azure solutions in the cloud. Besides writing a custom Plugin, Azure is the only other supported solutions for communicating runtime context to external line-of-business (LOB) applications.
- Overview of the Azure integration with the Dataverse
- Integration with Azure Service Bus
- Configuring the Azure-aware OOB plug-in
- Write a custom Azure-aware plug-in
- Integration between the Dataverse and Web Hooks
Implementing Business Processes
As a developer or power user you can automate common tasks inside Microsoft Dataverse using processes. What you can do inside a process is limited by default. I In this chapter participants learn how to write custom activities that extend the process engine of Dataverse with extra capabilities.
- Creating processes
- Writing custom Workflow activities
- Deploying and debugging custom workflow activities
- Creating Custom Actions
- Using Custom Actions with the Web API
- Using Custom Actions in Power Automate
- LAB: Implementing a custom Workflow Activity
- Handling Form/View and Field events
- Root objects in the Client API object model
- Working with the Client API execution context object
- The Client API Form context object
- Interacting with forms and attributes using the Client API object model
- The Client API grid context object
- The Client API Xrm object
- Best practices in writing client-side Code
- LAB: Using client-side scripting in table forms
Customizing the Command Bar in a model-driven app
The Command Bar is displayed above every form or view in a model-driven app. In this chapter you will learn about how you can customize the Command Bar by adding or removing Commands.
- Overview of the Command Bar
- Available Command Bars in model-driven apps
- Working with Display and Enable rules
- Creating a custom Ribbon Action
- Pass data or URL parameters to a Ribbon Action
- Adding or removing Commands in the Command Bar
- Working with URL addressable forms and views
- Using Ribbon Workbench to customize the command Bar
- LAB: Using Ribbon Workbench to customize the command bar
Creating Web Resources
- Web resources overview
- Building custom HTML Web Resources
- LAB: Working with Xrm.WebApi in custom HTML web resources
An Introduction to Power Apps Component Framework
The Power Apps component framework enables developers create code components for model-driven and canvas apps to provide enhanced user experience for the users to work with data on forms, views, and dashboards.
- Install the Microsoft Power Apps CLI
- Using the Microsoft Power Apps CLI
- Create and build a code component
- Package a code component in a Solution