Extensibility Overview
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 Developer Tooling
- 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 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
Plug-ins
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.
- Introduction to the Microsoft Dataverse Event Framework
- 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
Azure Integrations
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
Creating and using Custom APIs and Actions
Use Custom APIs to create your own APIs in Dataverse. With a Custom API you can consolidate a group of operations into an API that you and other developers can call in their code.
- Introduction to the Microsoft Dataverse Event Framework
- Executing messages via the Web API
- Executing Functions and Actions using the Web API
- Creating Custom Actions
- Creating Custom APIs
- Registering and testing Custom APIs using XrmToolBox
- Using Custom APIs and Actions with the Web API
- Using Custom APIs and Actions in Power Automate
- LAB: Implementing a Custom API
client scripting in model-driven apps using JavaScript
Client-side scripting using JavaScript is one of the ways to apply custom business process logic for displaying data on a form in a model-driven app.
In this chapter you will learn how the JavaScript Client API of a model-driven app can be used to interact with forms and views
- Creating JavaScript Web Resources
- 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 represent files that can be used to extend the Dataverse web application such as html files, JavaScript, and CSS, and several image formats.
- Web resources overview
- Building custom HTML Web Resources
- Using the Xrm.WebApi JavaScript object model to access, create and manage records
- LAB: Working with Xrm.WebApi in custom HTML web resources
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.
Although Microsoft Dynamics 365 for Customer Engagement has quite some out of the box customization options, many companies have requirements which can only be met by extending the existing feature set of Microsoft Dynamics 365 for Customer Engagement.
This training course is designed to help .NET and JavaScript developers learn the various development features of both Microsoft Dynamics 365 for Customer Engagement Online and On-Premise.
This course is targeting developers who have none or very limited Dynamics 365 for Customer Engagement development skills.
Before attending the course, delegates must have the following prerequisite knowledge
and experience:
- Understanding of Web development and design
- Knowledge of a .NET programming language (C# or Visual Basic .NET) and JavaScript
- Working knowledge of Microsoft Dynamics 365 for Customer Engagement (power-user perspective)